UNPKG

@coin-voyage/paykit

Version:

Seamless crypto payments. Onboard users from any chain, any coin into your app with one click.

24 lines (23 loc) 750 B
import { useEffect, useState } from "react"; export function useCountdown(expirationS) { const [nowS, setNowS] = useState(0); const [initialRemaining] = useState(() => { if (!expirationS) return 0; return Math.max(0, expirationS - Math.floor(Date.now() / 1000)); }); useEffect(() => { if (!expirationS) return; const tick = () => { setNowS(Math.floor(Date.now() / 1000)); }; tick(); const id = setInterval(tick, 1000); return () => clearInterval(id); }, [expirationS]); if (!expirationS || nowS === 0) return [0, 0]; const remainingS = Math.max(0, expirationS - nowS); return [remainingS, initialRemaining]; }