Files
securebit-chat/src/scripts/pwa-register.js
lockbitchat 65cc136b99 chore: remove debug logging and disable debug mode for production
- Removed temporary console logs used for debugging
- Disabled DEBUG_MODE flag
- Updated configuration to run in production mode
- Cleaned up leftover debug utilities to reduce noise in console
2025-10-02 01:43:32 -04:00

100 lines
3.3 KiB
JavaScript

// PWA Service Worker Registration
if ('serviceWorker' in navigator) {
window.addEventListener('load', async () => {
try {
const registration = await navigator.serviceWorker.register('./sw.js', {
scope: './',
});
// Store registration for use in other modules
window.swRegistration = registration;
// Listen for updates
registration.addEventListener('updatefound', () => {
const newWorker = registration.installing;
newWorker.addEventListener('statechange', () => {
if (newWorker.state === 'installed' && navigator.serviceWorker.controller) {
const isPWAInstalled =
window.matchMedia('(display-mode: standalone)').matches ||
window.navigator.standalone === true ||
(window.pwaInstallPrompt && window.pwaInstallPrompt.isInstalled);
if (isPWAInstalled) {
// If this is PWA, show update notification
if (typeof window.showUpdateNotification === 'function') {
window.showUpdateNotification();
}
} else {
// If this is browser, show install prompt
if (window.pwaInstallPrompt && !window.pwaInstallPrompt.isInstalled) {
setTimeout(() => {
window.pwaInstallPrompt.showInstallOptions();
}, 2000);
}
}
}
});
});
} catch (error) {
console.error('❌ PWA: Service Worker registration failed:', error);
if (window.DEBUG_MODE) {
setTimeout(() => {
if (typeof window.showServiceWorkerError === 'function') {
window.showServiceWorkerError(error);
}
}, 2000);
}
}
});
}
if ('serviceWorker' in navigator) {
navigator.serviceWorker.ready.then((registration) => {
const isPWAInstalled =
window.matchMedia('(display-mode: standalone)').matches ||
window.navigator.standalone === true;
if (window.pwaInstallPrompt && window.pwaInstallPrompt.setServiceWorkerRegistration) {
window.pwaInstallPrompt.setServiceWorkerRegistration(registration);
if (isPWAInstalled && !window.pwaInstallPrompt.isInstalled) {
console.log('✅ PWA already installed, updating status');
window.pwaInstallPrompt.isInstalled = true;
window.pwaInstallPrompt.hideInstallPrompts();
}
}
if (window.pwaOfflineManager && window.pwaOfflineManager.setServiceWorkerRegistration) {
window.pwaOfflineManager.setServiceWorkerRegistration(registration);
}
});
// Listen to Service Worker messages
navigator.serviceWorker.addEventListener('message', (event) => {
if (event.data && event.data.type === 'SW_ACTIVATED') {
const isPWAInstalled =
window.matchMedia('(display-mode: standalone)').matches ||
window.navigator.standalone === true ||
(window.pwaInstallPrompt && window.pwaInstallPrompt.isInstalled);
if (isPWAInstalled) {
setTimeout(() => {
if (typeof window.showUpdateNotification === 'function') {
window.showUpdateNotification();
}
}, 1000);
} else {
if (window.pwaInstallPrompt && !window.pwaInstallPrompt.isInstalled) {
setTimeout(() => {
window.pwaInstallPrompt.showInstallOptions();
}, 2000);
}
}
}
});
}