Fix update behaviour
This commit is contained in:
		
							parent
							
								
									55eed868fa
								
							
						
					
					
						commit
						9fa1288dbc
					
				
					 3 changed files with 32 additions and 1 deletions
				
			
		|  | @ -2,6 +2,7 @@ | |||
| import { cleanupOutdatedCaches, createHandlerBoundToURL, precacheAndRoute } from "workbox-precaching"; | ||||
| import { NavigationRoute, registerRoute } from "workbox-routing"; | ||||
| import { NetworkFirst } from "workbox-strategies"; | ||||
| import { clientsClaim } from "workbox-core"; | ||||
| 
 | ||||
| import { dbAsync } from "../src/app/db"; | ||||
| 
 | ||||
|  | @ -224,6 +225,8 @@ precacheAndRoute( | |||
|   self.__WB_MANIFEST | ||||
| ); | ||||
| 
 | ||||
| // Claim all open windows
 | ||||
| clientsClaim(); | ||||
| // Delete any cached old dist files from previous service worker versions
 | ||||
| cleanupOutdatedCaches(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,34 @@ | |||
| import * as React from "react"; | ||||
| import { createRoot } from "react-dom/client"; | ||||
| // eslint-disable-next-line import/no-unresolved | ||||
| import { registerSW } from "virtual:pwa-register"; | ||||
| import App from "./components/App"; | ||||
| 
 | ||||
| // fetch new sw every hour, i.e. update app every hour while running | ||||
| const intervalMS = 60 * 60 * 1000; | ||||
| 
 | ||||
| // https://vite-pwa-org.netlify.app/guide/periodic-sw-updates.html | ||||
| registerSW({ | ||||
|   onRegisteredSW(swUrl, registration) { | ||||
|     if (!registration) { | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
|     setInterval(async () => { | ||||
|       if (registration.installing || navigator?.onLine === false) return; | ||||
| 
 | ||||
|       const resp = await fetch(swUrl, { | ||||
|         cache: "no-store", | ||||
|         headers: { | ||||
|           cache: "no-store", | ||||
|           "cache-control": "no-cache", | ||||
|         }, | ||||
|       }); | ||||
| 
 | ||||
|       if (resp?.status === 200) await registration.update(); | ||||
|     }, intervalMS); | ||||
|   }, | ||||
| }); | ||||
| 
 | ||||
| const root = createRoot(document.querySelector("#root")); | ||||
| root.render(<App />); | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ export default defineConfig(({ mode }) => ({ | |||
|     react(), | ||||
|     VitePWA({ | ||||
|       registerType: "autoUpdate", | ||||
|       injectRegister: "inline", | ||||
|       injectRegister: null, | ||||
|       strategies: "injectManifest", | ||||
|       devOptions: { | ||||
|         enabled: true, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue