You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
55 lines
1.4 KiB
/* eslint-disable no-console */
|
|
|
|
import { register } from "register-service-worker";
|
|
|
|
// Check if we're in an Electron environment
|
|
const isElectron =
|
|
process.env.VITE_PLATFORM === "electron" ||
|
|
process.env.VITE_DISABLE_PWA === "true" ||
|
|
window.navigator.userAgent.toLowerCase().includes("electron");
|
|
|
|
// Only register service worker if:
|
|
// 1. Not in Electron
|
|
// 2. PWA is explicitly enabled
|
|
// 3. In production mode
|
|
if (
|
|
!isElectron &&
|
|
process.env.VITE_PWA_ENABLED === "true" &&
|
|
process.env.NODE_ENV === "production"
|
|
) {
|
|
register(`${process.env.BASE_URL}sw.js`, {
|
|
ready() {
|
|
console.log("Service worker is active.");
|
|
},
|
|
registered() {
|
|
console.log("Service worker has been registered.");
|
|
},
|
|
cached() {
|
|
console.log("Content has been cached for offline use.");
|
|
},
|
|
updatefound() {
|
|
console.log("New content is downloading.");
|
|
},
|
|
updated() {
|
|
console.log("New content is available; please refresh.");
|
|
},
|
|
offline() {
|
|
console.log(
|
|
"No internet connection found. App is running in offline mode.",
|
|
);
|
|
},
|
|
error(error) {
|
|
console.error("Error during service worker registration:", error);
|
|
},
|
|
});
|
|
} else {
|
|
console.log(
|
|
`Service worker registration skipped - ${
|
|
isElectron
|
|
? "running in Electron"
|
|
: process.env.VITE_PWA_ENABLED !== "true"
|
|
? "PWA not enabled"
|
|
: "not in production mode"
|
|
}`,
|
|
);
|
|
}
|
|
|