"use client"; import * as React from "react"; /** * Es allein noch einmal versuchen. * * Die Offline-Seite erscheint auch dann, wenn nur eine einzelne Anfrage * unterwegs abgebrochen ist — ein kurzer Aussetzer des Repeaters genügt. * Ohne diesen Baustein bliebe das Terminal danach auf dieser Seite stehen, * bis jemand vorbeikommt und tippt. Am Hallenmonitor, den niemand bedient, * hieße das: bis zum nächsten Dienstabend. * * Also versucht die Seite es selbst — sofort, wenn der Browser wieder Netz * meldet, und sonst alle paar Sekunden. */ const ABSTAND_MS = 10_000; export function ErneutVersuchen() { const [versuche, setVersuche] = React.useState(0); React.useEffect(() => { const nochmal = () => { setVersuche((wert) => wert + 1); window.location.reload(); }; window.addEventListener("online", nochmal); const zeitgeber = setInterval(() => { // Ohne Netz spart der Versuch nichts — dann wartet die Seite auf das // "online"-Ereignis darüber. if (navigator.onLine) nochmal(); }, ABSTAND_MS); return () => { window.removeEventListener("online", nochmal); clearInterval(zeitgeber); }; }, []); return (

Das Terminal versucht es alle {ABSTAND_MS / 1000} Sekunden von selbst {versuche > 0 ? ` (${versuche}. Versuch)` : ""}.

); }