"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 }));
}}
/>
Schleifenmessung
{isAdminLoggedIn && (
)}
);
}