UNPKG

next-sanity

Version:
32 lines (31 loc) 895 B
import { useRouter } from "next/navigation"; import { useEffect } from "react"; const focusThrottleInterval = 5e3; function RefreshOnFocus() { const router = useRouter(); useEffect(() => { const controller = new AbortController(); let nextFocusRevalidatedAt = 0; const callback = () => { const now = Date.now(); if (now > nextFocusRevalidatedAt && document.visibilityState !== "hidden") { router.refresh(); nextFocusRevalidatedAt = now + focusThrottleInterval; } }; const { signal } = controller; document.addEventListener("visibilitychange", callback, { passive: true, signal }); window.addEventListener("focus", callback, { passive: true, signal }); return () => controller.abort(); }, [router]); return null; } RefreshOnFocus.displayName = "RefreshOnFocus"; export { RefreshOnFocus as default }; //# sourceMappingURL=RefreshOnFocus.js.map