self.addEventListener('push', function (event) { console.log('[SW] Push received'); let payload = {}; if (event.data) { try { payload = event.data.json(); } catch (e) { payload = { body: event.data.text() }; } } const title = payload.title || 'Notification'; const options = { body: payload.body || '', icon: payload.icon || '/pwa-192x192.png', badge: payload.icon || '/pwa-192x192.png', data: payload.data || {}, }; event.waitUntil( self.registration.showNotification(title, options) ); }); self.addEventListener('notificationclick', function (event) { event.notification.close(); const url = event.notification.data?.url || '/admin'; event.waitUntil( clients.openWindow(url) ); });