import React, { useEffect, useState } from 'react'; import { useMatchGame } from 'context/MatchGameContext'; import { getTimeString } from 'src/utils'; import cls from './Timer.module.scss' type TimerProps = { startTime: number; isStarted: boolean; isFinished: boolean; changeTime?: (time: number) => void; } const Timer: React.FC = ({startTime, isStarted, isFinished, changeTime}) => { const [time, setTime] = useState(startTime); const [timeInterval, setTimeInterval] = useState(null) useEffect(() => { if (!isStarted) return; setTimeInterval(setInterval(() => setTime(prev => prev + 1000), 1000)); }, [isStarted]) useEffect(() => { clearInterval(timeInterval as NodeJS.Timeout); }, [isFinished]) useEffect(() => { changeTime?.(time); }, [time]) return (

{getTimeString(new Date(time))}

); }; export default Timer;