From 118eb7f2b25b3f9d6e9c25e02ccc15401286fd22 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 25 Jul 2024 04:25:22 -0700 Subject: fix(service-worker): only show default notification if client visible --- src/service-worker.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/service-worker.ts b/src/service-worker.ts index 18c839b1..0de69bdf 100644 --- a/src/service-worker.ts +++ b/src/service-worker.ts @@ -127,7 +127,12 @@ sw.addEventListener('push', async (event: PushEvent) => { console.error(error); } - if (navigator.userAgent.includes('Chrome')) { + if ( + navigator.userAgent.includes('Chrome') && + !(await sw.clients.matchAll({ type: 'window', includeUncontrolled: true })).some( + (client) => client.visibilityState === 'visible' + ) + ) { await sw.registration.showNotification('due.moe', { body: 'No new notifications', icon: '/favicon-196x196.png', -- cgit v1.2.3