import { useEffect, useState } from "react"; /** Live elapsed seconds since `startedAt`, ticking every second. */ export function useRunningElapsed(startedAt?: string | Date | null) { const [elapsed, setElapsed] = useState(0); useEffect(() => { if (!startedAt) { setElapsed(0); return; } const startMs = new Date(startedAt).getTime(); if (Number.isNaN(startMs)) { setElapsed(0); return; } const tick = () => { setElapsed(Math.max(0, Math.floor((Date.now() - startMs) / 1000))); }; tick(); const id = setInterval(tick, 1000); return () => clearInterval(id); }, [startedAt]); return elapsed; }