summaryrefslogtreecommitdiffstats
path: root/web_src/js/features/notification.js
diff options
context:
space:
mode:
Diffstat (limited to 'web_src/js/features/notification.js')
-rw-r--r--web_src/js/features/notification.js72
1 files changed, 35 insertions, 37 deletions
diff --git a/web_src/js/features/notification.js b/web_src/js/features/notification.js
index b0cc1cda44..a0793d2286 100644
--- a/web_src/js/features/notification.js
+++ b/web_src/js/features/notification.js
@@ -43,53 +43,51 @@ export async function initNotificationCount() {
return;
}
- if (NotificationSettings.EventSourceUpdateTime > 0 && !!window.EventSource) {
+ if (NotificationSettings.EventSourceUpdateTime > 0 && !!window.EventSource && window.SharedWorker) {
// Try to connect to the event source via the shared worker first
- if (window.SharedWorker) {
- const worker = new SharedWorker(`${__webpack_public_path__}js/eventsource.sharedworker.js`, 'notification-worker');
- worker.addEventListener('error', (event) => {
+ const worker = new SharedWorker(`${__webpack_public_path__}js/eventsource.sharedworker.js`, 'notification-worker');
+ worker.addEventListener('error', (event) => {
+ console.error(event);
+ });
+ worker.port.onmessageerror = () => {
+ console.error('Unable to deserialize message');
+ };
+ worker.port.postMessage({
+ type: 'start',
+ url: `${window.location.origin}${AppSubUrl}/user/events`,
+ });
+ worker.port.addEventListener('message', (event) => {
+ if (!event.data || !event.data.type) {
console.error(event);
- });
- worker.port.onmessageerror = () => {
- console.error('Unable to deserialize message');
- };
- worker.port.postMessage({
- type: 'start',
- url: `${window.location.origin}${AppSubUrl}/user/events`,
- });
- worker.port.addEventListener('message', (event) => {
- if (!event.data || !event.data.type) {
- console.error(event);
+ return;
+ }
+ if (event.data.type === 'notification-count') {
+ receiveUpdateCount(event.data);
+ } else if (event.data.type === 'error') {
+ console.error(event.data);
+ } else if (event.data.type === 'logout') {
+ if (event.data !== 'here') {
return;
}
- if (event.data.type === 'notification-count') {
- receiveUpdateCount(event.data);
- } else if (event.data.type === 'error') {
- console.error(event.data);
- } else if (event.data.type === 'logout') {
- if (event.data !== 'here') {
- return;
- }
- worker.port.postMessage({
- type: 'close',
- });
- worker.port.close();
- window.location.href = AppSubUrl;
- }
- });
- worker.port.addEventListener('error', (e) => {
- console.error(e);
- });
- worker.port.start();
- window.addEventListener('beforeunload', () => {
worker.port.postMessage({
type: 'close',
});
worker.port.close();
+ window.location.href = AppSubUrl;
+ }
+ });
+ worker.port.addEventListener('error', (e) => {
+ console.error(e);
+ });
+ worker.port.start();
+ window.addEventListener('beforeunload', () => {
+ worker.port.postMessage({
+ type: 'close',
});
+ worker.port.close();
+ });
- return;
- }
+ return;
}
if (NotificationSettings.MinTimeout <= 0) {