mirror of
https://github.com/elisiariocouto/leggen.git
synced 2025-12-14 19:02:26 +00:00
fix(frontend): Fix PWA caching system, remove prompts.
This commit is contained in:
@@ -5,6 +5,7 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { ThemeProvider } from "./contexts/ThemeContext";
|
||||
import "./index.css";
|
||||
import { routeTree } from "./routeTree.gen";
|
||||
import { registerSW } from "virtual:pwa-register";
|
||||
|
||||
const router = createRouter({ routeTree });
|
||||
|
||||
@@ -17,6 +18,57 @@ const queryClient = new QueryClient({
|
||||
},
|
||||
});
|
||||
|
||||
const intervalMS = 60 * 60 * 1000;
|
||||
|
||||
registerSW({
|
||||
onRegisteredSW(swUrl, r) {
|
||||
console.log("[PWA] Service worker registered successfully");
|
||||
|
||||
if (r) {
|
||||
setInterval(async () => {
|
||||
console.log("[PWA] Checking for updates...");
|
||||
|
||||
if (r.installing) {
|
||||
console.log("[PWA] Update already installing, skipping check");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!navigator) {
|
||||
console.log("[PWA] Navigator not available, skipping check");
|
||||
return;
|
||||
}
|
||||
|
||||
if ("connection" in navigator && !navigator.onLine) {
|
||||
console.log("[PWA] Device is offline, skipping check");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const resp = await fetch(swUrl, {
|
||||
cache: "no-store",
|
||||
headers: {
|
||||
cache: "no-store",
|
||||
"cache-control": "no-cache",
|
||||
},
|
||||
});
|
||||
|
||||
if (resp?.status === 200) {
|
||||
console.log("[PWA] Update check successful, triggering update");
|
||||
await r.update();
|
||||
} else {
|
||||
console.log(`[PWA] Update check returned status: ${resp?.status}`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("[PWA] Error checking for updates:", error);
|
||||
}
|
||||
}, intervalMS);
|
||||
}
|
||||
},
|
||||
onOfflineReady() {
|
||||
console.log("[PWA] App ready to work offline");
|
||||
},
|
||||
});
|
||||
|
||||
createRoot(document.getElementById("root")!).render(
|
||||
<StrictMode>
|
||||
<QueryClientProvider client={queryClient}>
|
||||
|
||||
Reference in New Issue
Block a user