import { useEffect, useState } from 'react'; export function useCountdown(endsAt) { const [remaining, setRemaining] = useState(0); useEffect(() => { if (!endsAt) { setRemaining(0); return undefined; } const tick = () => { const ms = new Date(endsAt).getTime() - Date.now(); setRemaining(Math.max(0, Math.ceil(ms / 1000))); }; tick(); const id = setInterval(tick, 250); return () => clearInterval(id); }, [endsAt]); const mm = String(Math.floor(remaining / 60)).padStart(2, '0'); const ss = String(remaining % 60).padStart(2, '0'); return { remaining, label: `${mm}:${ss}` }; }