Add install banner

This commit is contained in:
Ettore
2026-05-06 18:35:29 +02:00
parent a7ccada0b5
commit 70691dcd4a
3 changed files with 111 additions and 1 deletions

View File

@@ -187,3 +187,34 @@ document.getElementById("logout-btn").addEventListener("click", () => {
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js").catch(() => {});
}
// ── PWA install banner ────────────────────────────────────────────────────────
const INSTALL_DISMISSED_KEY = "lg_install_dismissed";
let _deferredInstallPrompt = null;
window.addEventListener("beforeinstallprompt", (e) => {
e.preventDefault();
if (sessionStorage.getItem(INSTALL_DISMISSED_KEY)) return;
_deferredInstallPrompt = e;
document.getElementById("install-banner").classList.remove("hidden");
});
document.getElementById("install-btn").addEventListener("click", async () => {
const banner = document.getElementById("install-banner");
banner.classList.add("hidden");
if (!_deferredInstallPrompt) return;
_deferredInstallPrompt.prompt();
await _deferredInstallPrompt.userChoice;
_deferredInstallPrompt = null;
});
document.getElementById("install-dismiss").addEventListener("click", () => {
document.getElementById("install-banner").classList.add("hidden");
sessionStorage.setItem(INSTALL_DISMISSED_KEY, "1");
_deferredInstallPrompt = null;
});
window.addEventListener("appinstalled", () => {
document.getElementById("install-banner").classList.add("hidden");
_deferredInstallPrompt = null;
});