Files
CPLv4.0/redux/slices/kabelueberwachungChartSlice.ts
ISA 4c55e9e9fa feat: Fullscreen-Zustand mit Redux verwaltet
- `isFullScreen` zum Redux-Slice hinzugefügt
- `ChartSwitcher.tsx` angepasst, um Redux zu nutzen
- `LoopMeasurementChart.tsx` & `TDRChart.tsx` auf Redux umgestellt
- Fullscreen-Zustand bleibt jetzt persistent
2025-02-25 10:00:24 +01:00

104 lines
3.1 KiB
TypeScript

// 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
isFullScreen: boolean;
}
// 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
isFullScreen: false,
};
// Erstellung des Slices
const kabelueberwachungChartSlice = createSlice({
name: "kabelueberwachungChart",
initialState,
reducers: {
// Aktion zum Setzen der Slot-Nummer
setSlotNumber: (state, action: PayloadAction<number | null>) => {
state.slotNumber = action.payload;
},
// Aktion zum Setzen der Schleifenmesskurven-Daten
setLoopMeasurementCurveChartData: (state, action: PayloadAction<any[]>) => {
state.loopMeasurementCurveChartData = action.payload;
},
// Aktion zum Setzen des Startdatums
setVonDatum: (state, action: PayloadAction<string>) => {
state.vonDatum = action.payload.replace(/-/g, ";");
},
// Aktion zum Setzen des Enddatums
setBisDatum: (state, action: PayloadAction<string>) => {
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<boolean>) => {
state.isChartOpen = action.payload;
},
// Aktion zum Setzen der TDR-Charts-Daten
setTDRChartData: (
state,
action: PayloadAction<{ timestamp: string; tdr: number }[]>
) => {
state.tdrChartData = action.payload;
},
setFullScreen: (state, action: PayloadAction<boolean>) => {
state.isFullScreen = action.payload; // **⬅️ Neue Action für Fullscreen**
},
},
});
// Export der Aktionen
export const {
setSlotNumber,
setLoopMeasurementCurveChartData,
setVonDatum,
setBisDatum,
setSelectedMode,
setSelectedSlotType,
setChartOpen,
setTDRChartData,
setFullScreen,
} = kabelueberwachungChartSlice.actions;
// Export des Reducers
export default kabelueberwachungChartSlice.reducer;