- useEffect-Logik aus Kue705FO.tsx in eigene Hooks ausgelagert: - useKueVersion.ts für die KUE-Version - useAlarmStatus.ts für den Alarmstatus - useIsoDisplay.ts für die Anzeige der Isolationswerte - useLoopDisplay.ts für den Schleifenwiderstand - useChartPlugin.ts für Chart.js Plugin-Handling - useChartData.ts für Redux-Chart-Datenverwaltung - useModulName.ts für den Modulnamen mit Setter-Funktion - Code in Kue705FO.tsx optimiert und modularisiert - Fehler mit `setCurrentModulName` behoben durch Rückgabe der Setter-Funktion in useModulName.ts
33 lines
958 B
TypeScript
33 lines
958 B
TypeScript
// components/main/kabelueberwachung/kue705FO/hooks/useAlarmStatus.ts
|
|
import { useEffect, useState } from "react";
|
|
|
|
const useAlarmStatus = (
|
|
slotIndex: number,
|
|
kueAlarm1: any,
|
|
kueAlarm2: any,
|
|
kueCableBreak: any,
|
|
kueGroundFault: any
|
|
) => {
|
|
const [currentAlarmStatus, setCurrentAlarmStatus] = useState(false);
|
|
|
|
useEffect(() => {
|
|
const updateAlarmStatus = () => {
|
|
const alarmStatus =
|
|
(kueAlarm1 && Number(kueAlarm1[slotIndex])) ||
|
|
(kueAlarm2 && Number(kueAlarm2[slotIndex])) ||
|
|
(kueCableBreak && Number(kueCableBreak[slotIndex])) ||
|
|
(kueGroundFault && Number(kueGroundFault[slotIndex]));
|
|
|
|
setCurrentAlarmStatus(!!alarmStatus);
|
|
};
|
|
|
|
updateAlarmStatus();
|
|
const interval = setInterval(updateAlarmStatus, 10000);
|
|
return () => clearInterval(interval);
|
|
}, [slotIndex, kueAlarm1, kueAlarm2, kueCableBreak, kueGroundFault]);
|
|
|
|
return currentAlarmStatus;
|
|
};
|
|
|
|
export default useAlarmStatus;
|