import React, { memo } from 'react'; import { Button } from '@chakra-ui/button'; import { Tooltip } from '@chakra-ui/react'; import TimerDisplay from 'common/components/countdown/TimerDisplay'; import PropTypes from 'prop-types'; import { useTimerProvider } from '../../../common/hooks/useSocketProvider'; import { millisToSeconds } from '../../../common/utils/dateConfig'; import { stringFromMillis } from '../../../common/utils/time'; import { tooltipDelayMid } from '../../../ontimeConfig'; import style from './PlaybackControl.module.scss'; const areEqual = (prevProps, nextProps) => { return ( prevProps.playback === nextProps.playback && prevProps.selectedId === nextProps.selectedId ); }; const incrementProps = { size: 'sm', width: '2.9em', colorScheme: 'white', variant: 'outline', }; const PlaybackTimer = (props) => { const { playback, handleIncrement, selectedId } = props; const timerData = useTimerProvider(); const started = stringFromMillis(timerData.startedAt, true); const finish = stringFromMillis(timerData.expectedFinish, true); const isRolling = playback === 'roll'; const isWaiting = timerData.secondaryTimer > 0 && timerData.current == null; const disableButtons = selectedId == null || isRolling; const isOvertime = timerData.current < 0; return (
{isWaiting ? (
Roll: Countdown to start FIX
) : ( <>
Started at {started}
Finish at {finish}
)}
); }; export default memo(PlaybackTimer, areEqual); PlaybackTimer.propTypes = { playback: PropTypes.string, handleIncrement: PropTypes.func.isRequired, selectedId: PropTypes.string, };