diff --git a/assets/public/custom/pushMessages.js b/assets/public/custom/pushMessages.js index e5c66f0b..8bbf05d6 100644 --- a/assets/public/custom/pushMessages.js +++ b/assets/public/custom/pushMessages.js @@ -6,16 +6,10 @@ function checkServiceWorkerSupport() { async function isPushRegistered() { checkServiceWorkerSupport(); try { - const registrations = await navigator.serviceWorker.getRegistrations(); - if (!registrations || registrations.length === 0) return false; - - for (let reg of registrations) { - const subscription = await reg.pushManager.getSubscription(); - if (subscription) return true; - } - - return false; - } catch (error) { + const reg = await navigator.serviceWorker.ready; + const sub = await reg.pushManager.getSubscription(); + return !!sub; + } catch { return false; } } @@ -23,18 +17,19 @@ async function isPushRegistered() { async function unregisterPush() { checkServiceWorkerSupport(); try { - const registrations = await navigator.serviceWorker.getRegistrations(); - if (!registrations || registrations.length === 0) return; + const reg = await navigator.serviceWorker.ready; + const sub = await reg.pushManager.getSubscription(); - for (let i = 0; i < registrations.length; i++) { - const reg = registrations[i]; - const sub = await reg.pushManager.getSubscription(); - - if (sub) await sub.unsubscribe(); + if (sub) { + await sub.unsubscribe(); + } + + if (!window.isIOS()) { await reg.unregister(); } } catch (err) { - console.error("Failed to unregister push:", err); + alert("Failed to unregister push"); + console.error(err); } } diff --git a/assets/public/custom/serviceWorker.js b/assets/public/custom/serviceWorker.js index 7fe61552..b67d3f02 100644 --- a/assets/public/custom/serviceWorker.js +++ b/assets/public/custom/serviceWorker.js @@ -37,4 +37,12 @@ self.addEventListener("notificationclick", (event) => { return clients.openWindow(targetUrl); }) ); +}); + +self.addEventListener("install", () => { + self.skipWaiting(); +}); + +self.addEventListener("activate", (event) => { + event.waitUntil(self.clients.claim()); }); \ No newline at end of file diff --git a/assets/public/custom/web/main.js b/assets/public/custom/web/main.js index 950cff0e..5c064168 100644 --- a/assets/public/custom/web/main.js +++ b/assets/public/custom/web/main.js @@ -16,10 +16,6 @@ "hsl(139, calc(var(--saturation-factor, 1) * 47.3%), 43.9%)": "#43B581", // Online (green) }; - const IS_MOBILE = window - .matchMedia("(pointer: coarse)") - .matches; - const TAB_CONTENT = `