merlyn/frontend/public/service-workers/push-notifications.js
Timothy Carambat 2c513ae396
Web push notifications (#4942)
* WIP push notifications

* testing push

* cleanup for web-push bootstrapping
2026-02-02 10:56:58 -08:00

26 lines
848 B
JavaScript

function parseEventData(event) {
try {
return event.data.json();
} catch (e) {
console.error('Failed to parse event data - is payload valid? .text():\n', event.data.text());
return null
}
}
self.addEventListener('push', function (event) {
const payload = parseEventData(event);
if (!payload) return;
// options: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification#options
self.registration.showNotification(payload.title || 'AnythingLLM', {
...payload,
icon: '/favicon.png',
});
});
self.addEventListener('notificationclick', function (event) {
event.notification.close();
const { onClickUrl = null } = event.notification.data || {};
if (!onClickUrl) return;
event.waitUntil(clients.openWindow(onClickUrl));
});