mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-05 07:10:30 +01:00
fix: remove superfluous service-worker code
This commit is contained in:
@@ -27,65 +27,3 @@ self.addEventListener('fetch', function (event) {
|
||||
return response;
|
||||
}));
|
||||
});
|
||||
|
||||
/**
|
||||
* The following code is used by nodebb-plugin-web-push
|
||||
* There is a very strong argument to be made that this is plugin-specific
|
||||
* code and does not belong in core.
|
||||
*
|
||||
* Additional R&D is required to determine how to allow plugins to inject
|
||||
* code into the service worker.
|
||||
*/
|
||||
|
||||
// Register event listener for the 'push' event.
|
||||
self.addEventListener('push', function (event) {
|
||||
// Keep the service worker alive until the notification is created.
|
||||
const { title, body, tag, data } = event.data.json();
|
||||
|
||||
if (title && body) {
|
||||
const icon = data.icon;
|
||||
delete data.icon;
|
||||
const badge = data.badge;
|
||||
delete data.badge;
|
||||
|
||||
event.waitUntil(
|
||||
self.registration.showNotification(title, { body, tag, data, icon, badge })
|
||||
);
|
||||
} else if (tag) {
|
||||
event.waitUntil(
|
||||
self.registration.getNotifications({ tag }).then((notifications) => {
|
||||
notifications.forEach((notification) => {
|
||||
notification.close();
|
||||
});
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('notificationclick', (event) => {
|
||||
event.notification.close();
|
||||
let target;
|
||||
if (event.notification.data && event.notification.data.url) {
|
||||
target = new URL(event.notification.data.url);
|
||||
}
|
||||
|
||||
// This looks to see if the current is already open and focuses if it is
|
||||
event.waitUntil(
|
||||
self.clients
|
||||
.matchAll({ type: 'window' })
|
||||
.then((clientList) => {
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const client of clientList) {
|
||||
const { hostname } = new URL(client.url);
|
||||
if (target && hostname === target.hostname && 'focus' in client) {
|
||||
client.postMessage({
|
||||
action: 'ajaxify',
|
||||
url: target.pathname,
|
||||
});
|
||||
return client.focus();
|
||||
}
|
||||
}
|
||||
if (self.clients.openWindow) return self.clients.openWindow(target.pathname);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user