File size: 743 Bytes
ece5841 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import { useEffect, useState } from 'react'
const useCountDown = (timeLimit, isTimerOn) => {
const [timeLeft, setTimeLeft] = useState(timeLimit * 60 * 1000);
useEffect(() => {
if (!isTimerOn) {
return;
}
if (timeLeft > 0) {
const interval = setInterval(() => {
setTimeLeft((prev) => prev - 1000);
}, 1000);
return () => {
clearInterval(interval)
}
}
}, [timeLeft]);
return getFormattedTime(timeLeft)
}
function getFormattedTime(time) {
let minutes = Math.floor(time / (1000 * 60));
let seconds = Math.floor(time / (1000)) % 60;
return [seconds, minutes];
}
export default useCountDown |