import { useCallback, useEffect, useState } from 'react'; export function useCooldownTimer(seconds = 0, enabled = true) { const [cooldown, setCooldown] = useState(seconds); useEffect(() => { if (!enabled || cooldown <= 0) { return; } const timer = globalThis.setInterval(() => { setCooldown((prev) => (prev > 0 ? prev - 1 : 0)); }, 1000); return () => { globalThis.clearInterval(timer); }; }, [enabled, cooldown]); const startCooldown = useCallback((seconds: number) => { setCooldown(Math.max(0, Math.floor(seconds))); }, []); return { cooldown, startCooldown, }; }