// Metro module 12016 (f12017). import { useEffect, useState } from "react"; import Durations from "../../../utils/Durations"; import { formatTimestampToA11yLabel } from "../../content_inventory/utils"; import { Interval } from "../../../_bundle/Timeout"; export default function useActivityTimer({ start, end }) { let setState; setState = void 0; const [state] = useState(new Interval()); let state2; [state2, setState] = useState(() => Date.now()); useEffect(() => { state.start(Durations.Millis.HALF_SECOND, () => setState(Date.now())); return () => state.stop(); }, [state]); const duration = (end - start) / Durations.Millis.SECOND; const elapsed = Math.max(Math.min((state2 - start) / Durations.Millis.SECOND, duration), 0); return { elapsed, duration, percentage: Math.max(Math.min(elapsed / duration, 1), 0) }; }; export function formatTime(a0) { const r23 = Math.floor(a0) % Durations.Seconds.MINUTE; const r34 = Math.floor(a0 / Durations.Seconds.MINUTE) % Durations.Seconds.MINUTE; const r42 = Math.floor(a0 / Durations.Seconds.HOUR); return r42 === 0 ? `${String(r34).padStart(2, "0")}:${String(r23).padStart(2, "0")}` : `${String(r42).padStart(2, "0")}:${String(r34).padStart(2, "0")}:${String(r23).padStart(2, "0")}`; } export function formatTimeForA11yLabel(a0) { const seconds = Math.floor(a0) % Durations.Seconds.MINUTE; const minutes = Math.floor(a0 / Durations.Seconds.MINUTE) % Durations.Seconds.MINUTE; return formatTimestampToA11yLabel({ hours: Math.floor(a0 / Durations.Seconds.HOUR), minutes, seconds }); }