mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-15 20:33:47 +00:00
b384284175
* chore: migrate and upgrade state dependencies * refactor(eventlist): get data from store * refactor(messagecontrol): get data from store * refactor(playbackcontrol): get data from store * refactor(info): get data from store * refactor(messagecontrol): handle mutations in hook * feat(playbackcontrol): get data from store * refactor(playbackcontrol): handle mutations in hook * refactor(playbackcontrol): simplify object * refactor: simplify interfaces * refactor(InputRow): mixed control + styles * refactor(socket): cleanup unused endpoints * refactor(table): prepare table socket endpoint * refactor(timer): extract timer to own endpoint * refactor(table): get data from store * chore: update tests * refactor(socket): update sockets on cycle * refactor: remove unnecessary safeguards
45 lines
1.3 KiB
React
45 lines
1.3 KiB
React
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
|
|
import PauseIconBtn from '../../../common/components/buttons/PauseIconBtn';
|
|
import RollIconBtn from '../../../common/components/buttons/RollIconBtn';
|
|
import StartIconBtn from '../../../common/components/buttons/StartIconBtn';
|
|
|
|
import style from './PlaybackControl.module.scss';
|
|
|
|
export default function Playback(props) {
|
|
const { playback, selectedId, playbackControl, noEvents } = props;
|
|
const isRolling = playback === 'roll';
|
|
|
|
return (
|
|
<div className={style.playbackContainer}>
|
|
<StartIconBtn
|
|
active={playback === 'start'}
|
|
clickhandler={() => playbackControl.start()}
|
|
disabled={!selectedId || isRolling || noEvents}
|
|
/>
|
|
<PauseIconBtn
|
|
active={playback === 'pause'}
|
|
clickhandler={() => playbackControl.pause()}
|
|
disabled={!selectedId || isRolling || noEvents || playback !== 'start'}
|
|
/>
|
|
<RollIconBtn
|
|
active={playback === 'roll'}
|
|
disabled={playback === 'roll' || noEvents}
|
|
clickhandler={() => playbackControl.roll()}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
Playback.propTypes = {
|
|
playback: PropTypes.string,
|
|
selectedId: PropTypes.string,
|
|
playbackControl: PropTypes.shape({
|
|
start: PropTypes.func,
|
|
pause: PropTypes.func,
|
|
roll: PropTypes.func,
|
|
}).isRequired,
|
|
noEvents: PropTypes.bool.isRequired,
|
|
};
|