'use client'; import { useEffect } from 'react'; export default function ServiceWorkerRegistration() { useEffect(() => { if ('serviceWorker' in navigator) { // Register service worker navigator.serviceWorker .register('/sw.js') .then((registration) => { console.log('Service Worker registered with scope:', registration.scope); // Check for updates periodically setInterval(() => { registration.update(); }, 60000); // Check every minute // Listen for updates registration.addEventListener('updatefound', () => { const newWorker = registration.installing; if (newWorker) { newWorker.addEventListener('statechange', () => { if (newWorker.state === 'installed' && navigator.serviceWorker.controller) { // New service worker available, could show update notification console.log('New service worker available'); } }); } }); }) .catch((error) => { console.error('Service Worker registration failed:', error); }); // Listen for controller change (new service worker activated) navigator.serviceWorker.addEventListener('controllerchange', () => { console.log('Service Worker controller changed'); }); } }, []); return null; // This component doesn't render anything }