10 lines
370 B
TypeScript
10 lines
370 B
TypeScript
import { useEffect, useState } from "react";
|
|
|
|
export function useElapsed(startedAt: number, duration: number): number {
|
|
const [now, setNow] = useState(() => Date.now() / 1000);
|
|
useEffect(() => {
|
|
const t = setInterval(() => setNow(Date.now() / 1000), 200);
|
|
return () => clearInterval(t);
|
|
}, []);
|
|
return Math.min(duration, Math.max(0, now - startedAt));
|
|
}
|