diff --git a/scripts/AnimeNotifier.ts b/scripts/AnimeNotifier.ts index ccceb9c0..e761dbb3 100644 --- a/scripts/AnimeNotifier.ts +++ b/scripts/AnimeNotifier.ts @@ -137,7 +137,7 @@ export class AnimeNotifier { } async updatePushUI() { - if(!this.pushManager.pushSupported) { + if(!this.pushManager.pushSupported || !this.app.currentPath.includes("/settings")) { return } diff --git a/sw/service-worker.ts b/sw/service-worker.ts index a1d9a31e..70f4c6af 100644 --- a/sw/service-worker.ts +++ b/sw/service-worker.ts @@ -3,6 +3,7 @@ const CACHE = "v-1" const RELOADS = new Map>() const ETAGS = new Map() +const CACHEREFRESH = new Map>() self.addEventListener("install", (evt: InstallEvent) => { console.log("Service worker install") @@ -72,7 +73,15 @@ self.addEventListener("message", (evt: any) => { url } - return evt.source.postMessage(JSON.stringify(message)) + let cacheRefresh = CACHEREFRESH.get(url) + + if(!cacheRefresh) { + return evt.source.postMessage(JSON.stringify(message)) + } + + return cacheRefresh.then(() => { + evt.source.postMessage(JSON.stringify(message)) + }) }) ) }) @@ -99,10 +108,12 @@ self.addEventListener("fetch", async (evt: FetchEvent) => { let clone = response.clone() // Save the new version of the resource in the cache - caches.open(CACHE).then(cache => { + let cacheRefresh = caches.open(CACHE).then(cache => { return cache.put(request, clone) }) + CACHEREFRESH.set(request.url, cacheRefresh) + return response })