diff --git a/app/javascript/controllers/notifications_controller.js b/app/javascript/controllers/notifications_controller.js index 02fce86d7..304bb279d 100644 --- a/app/javascript/controllers/notifications_controller.js +++ b/app/javascript/controllers/notifications_controller.js @@ -11,8 +11,7 @@ export default class extends Controller { switch(Notification.permission) { case "default": - this.subscribeButtonTarget.hidden = false - this.explainerTarget.hidden = true + this.#showButtonToSubscribe() break case "granted": const registration = await this.#getServiceWorkerRegistration() @@ -20,6 +19,8 @@ export default class extends Controller { if (registration && subscription) { this.element.classList.add(this.enabledClass) + } else { + this.#showButtonToSubscribe() } break } @@ -76,6 +77,11 @@ export default class extends Controller { } } + #showButtonToSubscribe() { + this.subscribeButtonTarget.hidden = false + this.explainerTarget.hidden = true + } + async #requestPermissionAndSubscribe(registration) { const permission = await Notification.requestPermission() if (permission === "granted") this.#subscribe(registration)