"use client"; import * as React from "react"; /** * Meldet den Service Worker an. * * Bewusst eine eigene, winzige Komponente statt eines Pakets: `sw.js` liegt * fertig in `public/`, und alles, was es hier zu tun gibt, sind fünf Zeilen. * * Zwei Feinheiten: * * * Nur unter HTTPS oder auf localhost — anderswo lehnt der Browser die * Anmeldung ohnehin ab, und die Fehlermeldung in der Konsole wäre nur * Rauschen. * * Erst nach dem Laden der Seite. Die Anmeldung konkurriert sonst mit dem * ersten Rendern, und das Tablet in der Halle ist kein schnelles Gerät. */ export function ServiceWorkerAnmeldung() { React.useEffect(() => { if (!("serviceWorker" in navigator)) return; const sicher = window.isSecureContext || window.location.hostname === "localhost"; if (!sicher) return; const anmelden = () => { navigator.serviceWorker.register("/sw.js", { scope: "/" }).catch((fehler) => { console.warn("[kiosk] Service Worker ließ sich nicht anmelden:", fehler); }); }; if (document.readyState === "complete") { anmelden(); return; } window.addEventListener("load", anmelden); return () => window.removeEventListener("load", anmelden); }, []); return null; }