"use client"; import { useEffect } from "react"; // Registers the offline service worker (public/sw.js) after load. Rendered once // in the root layout. No-op where service workers are unavailable (older // browsers, insecure origins) — the site still works online-only. export function ServiceWorkerRegister() { useEffect(() => { // Only register in production builds. A SW caching assets/data in dev fights // hot-reload and the e2e suite's request mocking; the deployed static export // is where offline support matters. if (process.env.NODE_ENV !== "production") return; if (typeof navigator === "undefined" || !("serviceWorker" in navigator)) { return; } const register = () => { navigator.serviceWorker.register("/sw.js").catch(() => { // Registration failures are non-fatal (e.g. SW disabled) — stay online. }); }; if (document.readyState === "complete") register(); else { window.addEventListener("load", register, { once: true }); return () => window.removeEventListener("load", register); } }, []); return null; }