diff --git a/src/lesson/presentation/hooks/useCountDown.ts b/src/lesson/presentation/hooks/useCountDown.ts index aa9e211a..802ce5c3 100644 --- a/src/lesson/presentation/hooks/useCountDown.ts +++ b/src/lesson/presentation/hooks/useCountDown.ts @@ -1,22 +1,22 @@ -import {useState} from 'react'; +import {useCallback, useState} from 'react'; export const useCountDown = (countDownTime: number) => { const [time, setTime] = useState(countDownTime); - const start = () => { + const start = useCallback(() => { const interval = setInterval(() => { setTime(prev => (prev < 0 ? 0 : prev - 1)); }, 1000); return interval; - }; + }, [countDownTime]); - const stop = (interval: NodeJS.Timeout) => { + const stop = useCallback((interval: NodeJS.Timeout) => { clearInterval(interval); - }; + }, [countDownTime]); - const reset = () => { + const reset = useCallback(() => { setTime(countDownTime); - }; + }, [countDownTime]); return {time, start, stop, reset, setTime}; }; diff --git a/src/lesson/presentation/hooks/useSettingLesson.ts b/src/lesson/presentation/hooks/useSettingLesson.ts index bff66dda..fc043788 100644 --- a/src/lesson/presentation/hooks/useSettingLesson.ts +++ b/src/lesson/presentation/hooks/useSettingLesson.ts @@ -160,7 +160,8 @@ export const useSettingLesson = ({ setIsSubmitting(true); try { - resetLearning(); + intervalRef.current && stop(intervalRef.current); + intervalRef.current = start(); resetTesting(); stopRecord(); clearSpeechResult();