'use client'; import { useEffect, useRef, useState } from 'react'; const MODE_DURATION_MS = 2000; export const useRestart30s = () => { const [isBreatheMode, setBreatheMode] = useState(false); const resetTimerRef = useRef(null); const clearTimers = () => { if (resetTimerRef.current !== null) { window.clearTimeout(resetTimerRef.current); resetTimerRef.current = null; } }; useEffect(() => { return () => { clearTimers(); }; }, []); const triggerRestart = () => { clearTimers(); setBreatheMode(true); resetTimerRef.current = window.setTimeout(() => { setBreatheMode(false); }, MODE_DURATION_MS); }; return { isBreatheMode, triggerRestart, }; };