aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/services/sw/sw.js8
-rw-r--r--src/sw.js6
2 files changed, 11 insertions, 3 deletions
diff --git a/src/services/sw/sw.js b/src/services/sw/sw.js
index 3b62bac8..7de490fe 100644
--- a/src/services/sw/sw.js
+++ b/src/services/sw/sw.js
@@ -82,9 +82,13 @@ function sendSubscriptionToBackEnd (subscription, token, notificationVisibility)
return responseData
})
}
-export function initServiceWorker () {
+export async function initServiceWorker () {
if (!isSWSupported()) return
- getOrCreateServiceWorker()
+ await getOrCreateServiceWorker()
+ navigator.serviceWorker.addEventListener('message', (event) => {
+ console.log('SW MESSAGE', event)
+ // TODO actually act upon click (open drawer on mobile for now)
+ })
}
export async function showDesktopNotification (content) {
diff --git a/src/sw.js b/src/sw.js
index 1b08fe69..b95d56a4 100644
--- a/src/sw.js
+++ b/src/sw.js
@@ -56,7 +56,6 @@ self.addEventListener('push', async (event) => {
self.addEventListener('message', async (event) => {
const { type, content } = event.data
- console.log(event)
if (type === 'desktopNotification') {
const { title, ...rest } = content
@@ -81,6 +80,11 @@ self.addEventListener('notificationclick', (event) => {
event.waitUntil(getWindowClients().then((list) => {
for (let i = 0; i < list.length; i++) {
const client = list[i]
+ client.postMessage({ type: 'notificationClicked', id: event.notification.tag })
+ }
+
+ for (let i = 0; i < list.length; i++) {
+ const client = list[i]
if (state.lastFocused === null || client.id === state.lastFocused) {
if ('focus' in client) return client.focus()
}