/* * Service Worker for Push Notifications */ self.addEventListener('push', function(event) { if (event.data) { const data = event.data.json(); const options = { body: data.body, icon: data.icon || '/logo.png', badge: '/badge.png', vibrate: [100, 50, 100], data: { dateOfArrival: Date.now(), primaryKey: '1' }, actions: [ { action: 'explore', title: 'Ouvrir le Dashboard', icon: '/check-mark.png' }, { action: 'close', title: 'Fermer', icon: '/x-mark.png' }, ] }; event.waitUntil( self.registration.showNotification(data.title, options) ); } }); self.addEventListener('notificationclick', function(event) { event.notification.close(); if (event.action === 'explore' || !event.action) { // Open the dashboard event.waitUntil( clients.openWindow('/') ); } });