"use client"; declare global { interface Window { win_kueID?: string[]; win_kueLimit1?: number[]; win_kueDelay1?: number[]; win_kueLimit2Low?: number[]; win_kueLimit2High?: number[]; win_kueLoopInterval?: 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"; interface Props { slot: number; onClose?: () => void; onModulNameChange?: (id: string) => void; } export default function KueEinstellung({ slot, onClose = () => {}, onModulNameChange = () => {}, }: Props) { const dispatch = useDispatch(); const { kueID, kueLimit1, kueDelay1, kueLimit2Low, kueLoopInterval, kueLimit2High, } = useSelector((state: RootState) => state.kueDataSlice); const isAdminLoggedIn = useSelector( (state: any) => state.authSlice.isAdminLoggedIn ); 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 ?? [])], }; handleSave({ ids: [...kueID], isolationsgrenzwerte: [...kueLimit1], verzoegerung: [...kueDelay1], untereSchleifenGrenzwerte: [...kueLimit2Low], obereSchleifenGrenzwerte: [...kueLimit2High], schleifenintervall: [...kueLoopInterval], 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 && ( )}
); }