diff --git a/src/web/common/Countdown.jsx b/src/web/common/Countdown.jsx index 48e692cb803d0..0abd0a5c43129 100644 --- a/src/web/common/Countdown.jsx +++ b/src/web/common/Countdown.jsx @@ -1,31 +1,27 @@ import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; +import { duration } from 'moment'; function Countdown({ callback, className, timeInSeconds, paused }) { - const [currentTime, setCurrentTime] = useState('00:00'); + let tickTock = timeInSeconds; let logInterval; - let duration = timeInSeconds; - const startCountdown = () => { - let minutes; - let seconds; + const defaultDuration = duration(timeInSeconds, 'seconds').format('mm:ss'); + const [currentTime, setCurrentTime] = useState(defaultDuration); + const startCountdown = () => { logInterval = setInterval(() => { - minutes = parseInt(duration / 60, 10); - seconds = parseInt(duration % 60, 10); - - minutes = minutes < 10 ? `0${minutes}` : minutes; - seconds = seconds < 10 ? `0${seconds}` : seconds; + tickTock -= 1; - duration -= 1; + const currentDuration = duration(tickTock, 'seconds').format('mm:ss', { trim: false }); - if (duration < 0) { - duration = timeInSeconds; - setCurrentTime('00:00'); + if (tickTock < 0) { + tickTock = timeInSeconds; + setCurrentTime(defaultDuration); clearInterval(logInterval); callback(); } else { - setCurrentTime(`${minutes}:${seconds}`); + setCurrentTime(currentDuration); } }, 1000); };