From 0628aac664be4ccce361d319fad201c44d9257fe Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 26 Oct 2023 15:42:21 +0300 Subject: fallback to old notification method, don't spam if old way of creating notification fails, try to use favicon --- .../desktop_notification_utils.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/services/desktop_notification_utils/desktop_notification_utils.js') diff --git a/src/services/desktop_notification_utils/desktop_notification_utils.js b/src/services/desktop_notification_utils/desktop_notification_utils.js index c31a1030..eb58f39b 100644 --- a/src/services/desktop_notification_utils/desktop_notification_utils.js +++ b/src/services/desktop_notification_utils/desktop_notification_utils.js @@ -1,8 +1,18 @@ -import { showDesktopNotification as swDesktopNotification } from '../sw/sw.js' +import { showDesktopNotification as swDesktopNotification, isSWSupported } from '../sw/sw.js' +const state = { failCreateNotif: false } export const showDesktopNotification = (rootState, desktopNotificationOpts) => { if (!('Notification' in window && window.Notification.permission === 'granted')) return if (rootState.statuses.notifications.desktopNotificationSilence) { return } - swDesktopNotification(desktopNotificationOpts) + if (isSWSupported()) { + swDesktopNotification(desktopNotificationOpts) + } else if (!state.failCreateNotif) { + try { + const desktopNotification = new window.Notification(desktopNotificationOpts.title, desktopNotificationOpts) + setTimeout(desktopNotification.close.bind(desktopNotification), 5000) + } catch { + state.failCreateNotif = true + } + } } -- cgit v1.2.3-70-g09d2