diff --git a/src/hooks/useServiceWorker.ts b/src/hooks/useServiceWorker.ts index 414e896f8..5bebd2499 100644 --- a/src/hooks/useServiceWorker.ts +++ b/src/hooks/useServiceWorker.ts @@ -18,10 +18,12 @@ export const useServiceWorker = (timeout: number) => { registrationRef.current = registration; }; - const onUpdateFound = () => setUpdateAvailable(true); + const onUpdate = (registration: ServiceWorkerRegistration) => { + setUpdateAvailable(!!registration?.waiting); + }; const update = useCallback(() => { - if (updateAvailable) { + if (updateAvailable && registrationRef.current?.waiting) { registrationRef.current.waiting.postMessage("update"); } }, [updateAvailable]); @@ -29,7 +31,7 @@ export const useServiceWorker = (timeout: number) => { useEffect(() => { register("/sw.js", { registered: onRegistered, - updatefound: onUpdateFound + updated: onUpdate }); }, []);