self.addEventListener('push', (event) => { const data = event.data?.json() ?? {}; event.waitUntil( self.registration.showNotification(data.title ?? 'oO', { body: data.body ?? '', icon: '/icon-192.png', badge: '/icon-192.png', data: { url: data.url ?? '/tip' }, }) ); }); self.addEventListener('notificationclick', (event) => { event.notification.close(); event.waitUntil( clients.matchAll({ type: 'window', includeUncontrolled: true }).then((list) => { for (const client of list) { if (client.url.includes(self.location.origin) && 'focus' in client) { return client.focus(); } } return clients.openWindow(event.notification.data?.url ?? '/tip'); }) ); });