From cdcff88649ad24fef88631318ed78a18edf550e5 Mon Sep 17 00:00:00 2001 From: Karina Kwiatek Date: Thu, 23 Feb 2023 16:52:33 +0100 Subject: [PATCH] Always register PWA This is required for installability. --- app/javascript/retrospring/common.ts | 2 ++ app/javascript/retrospring/features/webpush/enable.ts | 6 +++--- app/javascript/retrospring/initializers/serviceWorker.ts | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 app/javascript/retrospring/initializers/serviceWorker.ts diff --git a/app/javascript/retrospring/common.ts b/app/javascript/retrospring/common.ts index 811e9a8a..a0b37013 100644 --- a/app/javascript/retrospring/common.ts +++ b/app/javascript/retrospring/common.ts @@ -1,10 +1,12 @@ import '@hotwired/turbo-rails'; import initializeBootstrap from './initializers/bootstrap'; +import initializeServiceWorker from './initializers/serviceWorker'; import initializeStimulus from './initializers/stimulus'; export default function start(): void { try { initializeBootstrap(); + initializeServiceWorker(); initializeStimulus(); } catch (e) { // initialization errors diff --git a/app/javascript/retrospring/features/webpush/enable.ts b/app/javascript/retrospring/features/webpush/enable.ts index 332a76ec..c92aed64 100644 --- a/app/javascript/retrospring/features/webpush/enable.ts +++ b/app/javascript/retrospring/features/webpush/enable.ts @@ -8,7 +8,7 @@ export function enableHandler (event: Event): void { const sender = event.target as HTMLButtonElement; try { - installServiceWorker() + getServiceWorker() .then(subscribe) .then(async subscription => { return Notification.requestPermission().then(permission => { @@ -51,8 +51,8 @@ export function enableHandler (event: Event): void { } } -async function installServiceWorker(): Promise { - return navigator.serviceWorker.register("/service_worker.js", { scope: "/" }); +async function getServiceWorker(): Promise { + return navigator.serviceWorker.getRegistration("/"); } async function getServerKey(): Promise { diff --git a/app/javascript/retrospring/initializers/serviceWorker.ts b/app/javascript/retrospring/initializers/serviceWorker.ts new file mode 100644 index 00000000..fdf5f1ff --- /dev/null +++ b/app/javascript/retrospring/initializers/serviceWorker.ts @@ -0,0 +1,3 @@ +export default function (): void { + navigator.serviceWorker.register("/service_worker.js", { scope: "/" }); +}