useTimeLeft.ts
1 import { useEffect, useState } from 'react' 2 3 export function useTimeLeft(timeEndAt: number): number { 4 const [timeLeft, setTimeLeft] = useState(timeEndAt - Math.floor(Date.now() / 1000)) 5 6 useEffect(() => { 7 const timer = setInterval(() => setTimeLeft(timeEndAt - Math.floor(Date.now() / 1000)), 1000) 8 9 return () => clearInterval(timer) 10 }, []) 11 12 return timeLeft 13 }