// redux/slices/kabelueberwachungChartSlice.ts import { createSlice, PayloadAction } from "@reduxjs/toolkit"; // Definition des Interface für den Zustand des TDR-Charts interface TDRData { timestamp: string; tdr: number; } // Definition des Interface für den gesamten Zustand der Kabelüberwachung interface KabelueberwachungChartState { loopMeasurementCurveChartData: any[]; vonDatum: string; bisDatum: string; selectedMode: "DIA0" | "DIA1" | "DIA2"; selectedSlotType: "isolationswiderstand" | "schleifenwiderstand"; isChartOpen: boolean; slotNumber: number | null; tdrChartData: TDRData[]; // Hinzufügen des TDR-Datenzustands } // Initialer Zustand des Slices const initialState: KabelueberwachungChartState = { loopMeasurementCurveChartData: [], vonDatum: "2025-02-01", bisDatum: "2025-02-28", selectedMode: "DIA0", selectedSlotType: "schleifenwiderstand", isChartOpen: false, slotNumber: null, tdrChartData: [], // Initialisierung mit leerem Array }; // Erstellung des Slices const kabelueberwachungChartSlice = createSlice({ name: "kabelueberwachungChart", initialState, reducers: { // Aktion zum Setzen der Slot-Nummer setSlotNumber: (state, action: PayloadAction) => { state.slotNumber = action.payload; }, // Aktion zum Setzen der Schleifenmesskurven-Daten setLoopMeasurementCurveChartData: (state, action: PayloadAction) => { state.loopMeasurementCurveChartData = action.payload; }, // Aktion zum Setzen des Startdatums setVonDatum: (state, action: PayloadAction) => { state.vonDatum = action.payload.replace(/-/g, ";"); }, // Aktion zum Setzen des Enddatums setBisDatum: (state, action: PayloadAction) => { state.bisDatum = action.payload.replace(/-/g, ";"); }, // Aktion zum Setzen des ausgewählten Modus setSelectedMode: ( state, action: PayloadAction<"DIA0" | "DIA1" | "DIA2"> ) => { state.selectedMode = action.payload; }, // Aktion zum Setzen des ausgewählten Slot-Typs setSelectedSlotType: ( state, action: PayloadAction<"isolationswiderstand" | "schleifenwiderstand"> ) => { state.selectedSlotType = action.payload; }, // Aktion zum Öffnen oder Schließen des Charts setChartOpen: (state, action: PayloadAction) => { state.isChartOpen = action.payload; }, // Aktion zum Setzen der TDR-Charts-Daten setTDRChartData: ( state, action: PayloadAction<{ timestamp: string; tdr: number }[]> ) => { state.tdrChartData = action.payload; }, }, }); // Export der Aktionen export const { setSlotNumber, setLoopMeasurementCurveChartData, setVonDatum, setBisDatum, setSelectedMode, setSelectedSlotType, setChartOpen, setTDRChartData, } = kabelueberwachungChartSlice.actions; // Export des Reducers export default kabelueberwachungChartSlice.reducer;