"use client"; import * as React from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { geraetEinrichten, geraeteangaben, geraetVergessen } from "@/lib/kiosk/geraet"; /** * Einrichtung des Terminals. * * Einmal je Tablet: Gerätegeheimnis und Kurzname der Wehr. Beides steht in der * `.env` des Servers (`KIOSK_DEVICE_SECRET`) beziehungsweise in den Stammdaten * der Wehr. * * Damit das nicht abgetippt werden muss, nimmt die Seite beides auch aus der * Adresse entgegen: * * /kiosk/einrichten?wehr=ff-musterhausen&schluessel=… * * Der Administrator schickt sich diesen Link einmal selbst — etwa als QR-Code * vom eigenen Rechner — und ruft ihn am Tablet auf. */ export function EinrichtenFormular() { const router = useRouter(); const parameter = useSearchParams(); const [schluessel, setSchluessel] = React.useState(""); const [wehr, setWehr] = React.useState(""); const [bestehend, setBestehend] = React.useState(null); React.useEffect(() => { const vorhanden = geraeteangaben(); if (vorhanden) setBestehend(vorhanden.organisationSlug); const ausAdresse = parameter.get("schluessel"); const wehrAusAdresse = parameter.get("wehr"); if (ausAdresse) setSchluessel(ausAdresse); if (wehrAusAdresse) setWehr(wehrAusAdresse); }, [parameter]); return (

Terminal einrichten

Einmal je Tablet. Danach meldet sich jeder mit Ausweis, QR-Code oder PIN an.

{bestehend && (

Dieses Tablet ist bereits für {bestehend} eingerichtet.

)}
{ ereignis.preventDefault(); geraetEinrichten({ geraeteSchluessel: schluessel.trim(), organisationSlug: wehr.trim(), }); router.push("/kiosk"); router.refresh(); }} >
setWehr(ereignis.target.value)} placeholder="ff-musterhausen" required />
setSchluessel(ereignis.target.value)} required />

Steht als KIOSK_DEVICE_SECRET in der .env des Servers. Es bleibt auf diesem Tablet und geht nur beim Anmelden mit.

); }