Files
TeleSec/dist/pwa.js
2025-07-30 19:13:16 +02:00

44 lines
1.1 KiB
JavaScript

let newWorker;
function showUpdateBar() {
let snackbar = document.getElementById("snackbar");
snackbar.className = "show";
}
// The click event on the pop up notification
document.getElementById("reload").addEventListener("click", function () {
setTimeout(() => {
removeCache();
}, 1000);
newWorker.postMessage({ action: "skipWaiting" });
});
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js").then((reg) => {
reg.addEventListener("updatefound", () => {
// A wild service worker has appeared in reg.installing!
newWorker = reg.installing;
newWorker.addEventListener("statechange", () => {
// Has network.state changed?
switch (newWorker.state) {
case "installed":
if (navigator.serviceWorker.controller) {
// new update available
showUpdateBar();
}
// No update available
break;
}
});
});
});
let refreshing;
navigator.serviceWorker.addEventListener("controllerchange", function () {
if (refreshing) return;
window.location.reload();
refreshing = true;
});
}