// PWA Service Worker Registration if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/static/sw.js') .then(registration => { console.log('ServiceWorker registered:', registration); }) .catch(error => { console.log('ServiceWorker registration failed:', error); }); }); } // Install prompt let deferredPrompt; window.addEventListener('beforeinstallprompt', (e) => { e.preventDefault(); deferredPrompt = e; // Show install button if you have one const installBtn = document.getElementById('install-btn'); if (installBtn) { installBtn.style.display = 'block'; installBtn.addEventListener('click', () => { installBtn.style.display = 'none'; deferredPrompt.prompt(); deferredPrompt.userChoice.then((choiceResult) => { if (choiceResult.outcome === 'accepted') { console.log('User accepted the install prompt'); } deferredPrompt = null; }); }); } }); // Check if app is installed window.addEventListener('appinstalled', () => { console.log('FINA has been installed'); showToast('FINA installed successfully!', 'success'); }); // Online/Offline status window.addEventListener('online', () => { showToast('You are back online', 'success'); }); window.addEventListener('offline', () => { showToast('You are offline. Some features may be limited.', 'warning'); });