Files
CPLv4.0/components/main/kabelueberwachung/kue705FO/hooks/useAlarmStatus.ts
ISA 91103b28ec feat: useEffect-Hooks ausgelagert in separate Hook-Dateien
- 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
2025-02-24 14:13:53 +01:00

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;