"use client"; declare global { interface Window { win_kueID?: string[]; win_kueLimit1?: number[]; win_kueDelay1?: number[]; win_kueLimit2Low?: number[]; win_kueLimit2High?: number[]; win_kueLoopInterval?: number[]; win_memoryInterval?: number[]; } } import { useDispatch, useSelector } from "react-redux"; import type { RootState } from "../../../../../redux/store"; import { setKueData } from "../../../../../redux/slices/kueDataSlice"; import handleSave, { OriginalValues } from "../handlers/handleSave"; import handleDisplayEinschalten from "../handlers/handleDisplayEinschalten"; import firmwareUpdate from "../handlers/firmwareUpdate"; import { useAdminAuth } from "../../../settingsPageComponents/hooks/useAdminAuth"; interface Props { slot: number; onClose?: () => void; onModulNameChange?: (id: string) => void; } const memoryIntervalOptions = [ { value: 0, label: "Kein" }, { value: 1, label: "1 Minute" }, { value: 5, label: "5 Minuten" }, { value: 10, label: "10 Minuten" }, { value: 15, label: "15 Minuten" }, { value: 30, label: "30 Minuten" }, { value: 60, label: "60 Minuten" }, { value: 360, label: "6 Stunden" }, { value: 720, label: "12 Stunden" }, ]; export default function KueEinstellung({ slot, onClose = () => {}, onModulNameChange = () => {}, }: Props) { const dispatch = useDispatch(); const { kueID, kueLimit1, kueDelay1, kueLimit2Low, kueLimit2High, kueLoopInterval, memoryInterval, } = useSelector((state: RootState) => state.kueDataSlice); const { isAdminLoggedIn } = useAdminAuth(true); const handleSaveWrapper = () => { const originalValues: OriginalValues = { kueID: [...(window.win_kueID ?? [])], isolationsgrenzwerte: [...(window.win_kueLimit1 ?? [])], verzoegerung: [...(window.win_kueDelay1 ?? [])], untereSchleifenGrenzwerte: [...(window.win_kueLimit2Low ?? [])], obereSchleifenGrenzwerte: [...(window.win_kueLimit2High ?? [])], schleifenintervall: [...(window.win_kueLoopInterval ?? [])], speicherintervall: [...(window.win_memoryInterval ?? [])], }; handleSave({ ids: [...kueID], isolationsgrenzwerte: [...kueLimit1], verzoegerung: [...kueDelay1], untereSchleifenGrenzwerte: [...kueLimit2Low], obereSchleifenGrenzwerte: [...kueLimit2High], schleifenintervall: [...kueLoopInterval], speicherintervall: [...memoryInterval], originalValues, slot, dispatch, onModulNameChange, onClose, }); }; const updateArray = ( key: keyof RootState["kueDataSlice"], array: number[], value: number ) => { const updated = [...array]; updated[slot] = value; dispatch(setKueData({ [key]: updated })); }; return (
{ const newIds = [...kueID]; newIds[slot] = e.target.value; dispatch(setKueData({ kueID: newIds })); }} />

Isolationsmessung

Grenzwert (MOhm) Verzögerung (sek)
updateArray( "kueLimit1", kueLimit1, parseFloat(e.target.value) ) } /> updateArray( "kueDelay1", kueDelay1, parseFloat(e.target.value) ) } />

Schleifenmessung

Grenzwert (kOhm) Schleifenintervall (h)
updateArray( "kueLimit2Low", kueLimit2Low, parseFloat(e.target.value) ) } /> updateArray( "kueLoopInterval", kueLoopInterval, parseFloat(e.target.value) ) } />
{isAdminLoggedIn && ( )}
); }