From 3ddb5e536e561c0514a822c5aabbdf7c4b6df5bd Mon Sep 17 00:00:00 2001 From: Jason Zimdars Date: Thu, 17 Jul 2025 17:29:20 -0500 Subject: [PATCH] Use async method instead of getter, use root scope --- .../controllers/notifications_controller.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/javascript/controllers/notifications_controller.js b/app/javascript/controllers/notifications_controller.js index 74ede838e..ee3e1711e 100644 --- a/app/javascript/controllers/notifications_controller.js +++ b/app/javascript/controllers/notifications_controller.js @@ -22,7 +22,7 @@ export default class extends Controller { async attemptToSubscribe() { if (this.#allowed) { - const registration = await this.#serviceWorkerRegistration || await this.#registerServiceWorker() + const registration = await this.#getServiceWorkerRegistration() || await this.#registerServiceWorker() switch(Notification.permission) { case "denied": { console.log("Notification.permission: denied"); break } @@ -36,11 +36,12 @@ export default class extends Controller { async isEnabled() { if (this.#allowed) { - const registration = await this.#serviceWorkerRegistration + const registration = await this.#getServiceWorkerRegistration() const existingSubscription = await registration?.pushManager?.getSubscription() return Notification.permission == "granted" && registration && existingSubscription } else { + console.log("Not alllowed") return false } } @@ -49,12 +50,12 @@ export default class extends Controller { return navigator.serviceWorker && window.Notification } - get #serviceWorkerRegistration() { - return navigator.serviceWorker.getRegistration("/service-worker.js", { scope: window.location.pathname.split('/')[1]}) + async #getServiceWorkerRegistration() { + return navigator.serviceWorker.getRegistration("/service-worker.js", { scope: "/" }) } #registerServiceWorker() { - return navigator.serviceWorker.register("/service-worker.js", { scope: window.location.pathname.split('/')[1]}) + return navigator.serviceWorker.register("/service-worker.js", { scope: "/" }) } async #subscribe(registration) {