SHiNE-server/shine-UI/firebase-messaging-sw.js
AidarKC cfc92beec0 14-04-2026
То что дела ай и то во что надо влить изменнеия
2026-04-14 21:51:16 +03:00

40 lines
985 B
JavaScript

self.addEventListener('install', () => self.skipWaiting());
self.addEventListener('activate', (event) => event.waitUntil(self.clients.claim()));
async function broadcastToClients(payload) {
const clients = await self.clients.matchAll({ type: 'window', includeUncontrolled: true });
clients.forEach((client) => {
client.postMessage({
type: 'SHINE_WEB_PUSH_EVENT',
payload,
});
});
}
self.addEventListener('push', (event) => {
let body = 'Новое сообщение SHiNE';
let rawText = '';
try {
if (event.data) {
const text = event.data.text();
rawText = text || '';
body = rawText || body;
}
} catch {
// ignore
}
event.waitUntil(Promise.all([
self.registration.showNotification('SHiNE: входящее сообщение', {
body,
tag: 'shine-direct-message',
renotify: true,
}),
broadcastToClients({
body,
rawText,
receivedAt: Date.now(),
}),
]));
});