aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-03-06 23:04:10 -0800
committerAdam Soltys <[email protected]>2026-03-06 23:04:10 -0800
commit1f63d97f6a5969e5da8dcb946ba91c05407e9e2f (patch)
treebfb8c1a9ed8a43414e713a49dcd925e6689be17a
parentd0c5fde6c95fecedebae9fdf1a9d5e92dd1faaa2 (diff)
downloadcoinos-ui-1f63d97f6a5969e5da8dcb946ba91c05407e9e2f.tar.gz
coinos-ui-1f63d97f6a5969e5da8dcb946ba91c05407e9e2f.zip
wait for service worker activation before accessing pushManager
Co-Authored-By: Claude Opus 4.6 <[email protected]>
-rw-r--r--src/routes/(app)/settings/account/+page.svelte9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/routes/(app)/settings/account/+page.svelte b/src/routes/(app)/settings/account/+page.svelte
index 86d6c7f4..61450b18 100644
--- a/src/routes/(app)/settings/account/+page.svelte
+++ b/src/routes/(app)/settings/account/+page.svelte
@@ -35,6 +35,15 @@
if (!navigator?.serviceWorker) { pmReady = true; return; }
let reg = await navigator.serviceWorker.getRegistration();
if (!reg) reg = await navigator.serviceWorker.register("/service-worker.js");
+ if (reg && !reg.active) {
+ await new Promise<void>((resolve) => {
+ const sw = reg.installing || reg.waiting;
+ if (!sw) { resolve(); return; }
+ sw.addEventListener("statechange", () => {
+ if (sw.state === "activated") resolve();
+ });
+ });
+ }
pm = reg?.pushManager;
if (!pm) { pmReady = true; return; }