Add install banner
This commit is contained in:
@@ -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;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user