console.log("pwa.js loaded", new Date().toISOString());
(function () {
function init() {
const dismissed = localStorage.getItem("pwa_shortcut_bar_dismissed") === "1";
if (dismissed) return;
const isStandalone =
window.matchMedia("(display-mode: standalone)").matches ||
window.navigator.standalone === true;
if (isStandalone) return;
const isIOS = /iphone|ipad|ipod/i.test(navigator.userAgent);
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
let deferredPrompt = null;
function showBar() {
if (document.getElementById("pwaShortcutBar")) return;
const bar = document.createElement("div");
bar.id = "pwaShortcutBar";
bar.style.cssText = `
position:fixed;left:0;right:0;bottom:0;z-index:999999;
background:rgba(17,17,17,.96);color:#fff;
padding:12px 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;
box-shadow:0 -8px 30px rgba(0,0,0,.25);
`;
bar.innerHTML = `
Instalează aplicația ListaFirme
Icon pe ecranul principal
`;
document.body.appendChild(bar);
// Ripple pentru elemente inserate dinamic
const btnAdd = bar.querySelector("#pwaAddBtn");
if (window.mdb && window.mdb.Ripple && btnAdd) {
try { window.mdb.Ripple.getOrCreateInstance(btnAdd); } catch (e) {}
}
bar.querySelector("#pwaCloseBtn").addEventListener("click", (ev) => {
ev.preventDefault();
ev.stopPropagation();
localStorage.setItem("pwa_shortcut_bar_dismissed", "1");
bar.remove();
});
btnAdd.addEventListener("click", async (ev) => {
ev.preventDefault();
ev.stopPropagation();
// iOS: doar instrucțiuni (nu există prompt)
if (isIOS && isSafari && !deferredPrompt) {
alert("Pe iPhone/iPad: Share → Add to Home Screen.");
return;
}
// Android/Chrome: prompt doar dacă există
if (!deferredPrompt) return;
deferredPrompt.prompt();
try { await deferredPrompt.userChoice; } catch (e) {}
deferredPrompt = null;
bar.remove();
});
}
// Android/Chrome: bară doar când browserul zice “ok, e installable”
window.addEventListener("beforeinstallprompt", (e) => {
e.preventDefault();
deferredPrompt = e;
showBar();
});
// iOS: bară mereu (nu există beforeinstallprompt)
if (isIOS && isSafari) {
showBar();
}
// după instalare, doar ascundem (nu setăm dismissed)
window.addEventListener("appinstalled", () => {
const bar = document.getElementById("pwaShortcutBar");
if (bar) bar.remove();
});
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", init);
} else {
init();
}
})();