diff --git a/public_html/assets/js/jarvis-app.js b/public_html/assets/js/jarvis-app.js index e887c2a..6d45719 100644 --- a/public_html/assets/js/jarvis-app.js +++ b/public_html/assets/js/jarvis-app.js @@ -1754,3 +1754,50 @@ document.addEventListener('keydown', function(e) { }); } }); + +// ── KIOSK MODE ─────────────────────────────────────────────────────────────────────── +let _wakeLock = null; + +async function toggleKiosk() { + const btn = document.getElementById("kioskBtn"); + const isFs = !!(document.fullscreenElement || document.webkitFullscreenElement); + + if (!isFs) { + const el = document.documentElement; + const req = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen; + if (req) req.call(el).catch(() => {}); + // Screen Wake Lock — keeps tablet display on + if ("wakeLock" in navigator) { + try { _wakeLock = await navigator.wakeLock.request("screen"); } catch(e) {} + } + if (btn) { btn.textContent = "⛶ EXIT"; btn.style.color = "var(--cyan)"; } + } else { + const ex = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen; + if (ex) ex.call(document).catch(() => {}); + if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; } + if (btn) { btn.textContent = "⛶ KIOSK"; btn.style.color = ""; } + } +} + +// Re-acquire wake lock if released by system (e.g. tab switch) +document.addEventListener("visibilitychange", async () => { + if (_wakeLock && document.visibilityState === "visible") { + try { _wakeLock = await navigator.wakeLock.request("screen"); } catch(e) {} + } +}); + +// Sync button label when fullscreen is exited via Esc key +document.addEventListener("fullscreenchange", () => { + const btn = document.getElementById("kioskBtn"); + if (!document.fullscreenElement && !document.webkitFullscreenElement) { + if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; } + if (btn) { btn.textContent = "⛶ KIOSK"; btn.style.color = ""; } + } +}); +document.addEventListener("webkitfullscreenchange", () => { + const btn = document.getElementById("kioskBtn"); + if (!document.webkitFullscreenElement && !document.fullscreenElement) { + if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; } + if (btn) { btn.textContent = "⛶ KIOSK"; btn.style.color = ""; } + } +}); diff --git a/public_html/index.html b/public_html/index.html index f13c53c..ff1da6d 100644 --- a/public_html/index.html +++ b/public_html/index.html @@ -65,6 +65,7 @@
+