// Service Worker pro Web Push notifikace (připomínka výběru oběda) self.addEventListener('push', (event) => { const data = event.data?.json() ?? { title: 'Luncher', body: 'Ještě nemáte zvolený oběd!' }; event.waitUntil( self.registration.showNotification(data.title, { body: data.body, icon: '/favicon.ico', tag: 'lunch-reminder', }) ); }); self.addEventListener('notificationclick', (event) => { event.notification.close(); event.waitUntil( self.clients.matchAll({ type: 'window' }).then((clientList) => { // Pokud je již otevřené okno, zaostříme na něj for (const client of clientList) { if (client.url.includes(self.location.origin) && 'focus' in client) { return client.focus(); } } // Jinak otevřeme nové return self.clients.openWindow('/'); }) ); });