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(); } })();