import { Tooltip } from '@chakra-ui/react'; import { Playback } from 'ontime-types'; import TimerDisplay from '../../../common/components/timer-display/TimerDisplay'; import { setPlayback, useTimer } from '../../../common/hooks/useSocket'; import { millisToMinutes } from '../../../common/utils/dateConfig'; import { tooltipDelayMid } from '../../../ontimeConfig'; import TapButton from './TapButton'; import style from './PlaybackControl.module.scss'; import { millisToString } from 'ontime-utils'; interface PlaybackTimerProps { playback: Playback; } export default function PlaybackTimer(props: PlaybackTimerProps) { const { playback } = props; const data = useTimer(); // TODO: checkout typescript in utilities const started = millisToString(data.timer.startedAt); const finish = millisToString(data.timer.expectedFinish); const isRolling = playback === Playback.Roll; const isStopped = playback === Playback.Stop; const isWaiting = data.timer.secondaryTimer !== null && data.timer.secondaryTimer > 0 && data.timer.current === null; const disableButtons = isStopped || isRolling; const isOvertime = data.timer.current !== null && data.timer.current < 0; const hasAddedTime = Boolean(data.timer.addedTime); const rollLabel = isRolling ? 'Roll mode active' : ''; const addedTimeLabel = hasAddedTime ? `Added ${millisToMinutes(data.timer.addedTime)} minutes` : ''; return (
{isWaiting ? (
Roll: Countdown to start
) : ( <>
Started at {started}
Finish at {finish}
)}
setPlayback.delay(-1)} disabled={disableButtons} square> -1 setPlayback.delay(1)} disabled={disableButtons} square> +1 setPlayback.delay(-5)} disabled={disableButtons} square> -5 setPlayback.delay(+5)} disabled={disableButtons} square> +5
); }