import { HStack, StackSeparator } from '@chakra-ui/react'; import React from 'react'; import { SECOND } from 'toolkit/utils/consts'; import BlockCountdownTimerItem from './BlockCountdownTimerItem'; import splitSecondsInPeriods from './splitSecondsInPeriods'; interface Props { value: number; onFinish: () => void; } const BlockCountdownTimer = ({ value: initialValue, onFinish }: Props) => { const [ value, setValue ] = React.useState(initialValue); React.useEffect(() => { const intervalId = window.setInterval(() => { setValue((prev) => { if (prev > 1) { return prev - 1; } onFinish(); return 0; }); }, SECOND); return () => { window.clearInterval(intervalId); }; }, [ initialValue, onFinish ]); const periods = splitSecondsInPeriods(value); return ( } > ); }; export default React.memo(BlockCountdownTimer);