import { createSlice, PayloadAction } from "@reduxjs/toolkit"; interface KabelueberwachungChartState { chartData: any[]; vonDatum: string; bisDatum: string; selectedMode: "DIA0" | "DIA1" | "DIA2"; selectedSlotType: "isolationswiderstand" | "schleifenwiderstand"; isChartOpen: boolean; // NEU: Schalter für das erste Öffnen des Charts } const initialState: KabelueberwachungChartState = { chartData: [], vonDatum: "2025-02-01", bisDatum: "2025-02-28", selectedMode: "DIA0", selectedSlotType: "schleifenwiderstand", isChartOpen: false, // Standard: Chart ist beim ersten Laden geschlossen }; const kabelueberwachungChartSlice = createSlice({ name: "kabelueberwachungChart", initialState, reducers: { setChartData: (state, action: PayloadAction) => { state.chartData = action.payload; // Falls das Chart das erste Mal geöffnet wird, setze vonDatum & bisDatum if (!state.isChartOpen && action.payload.length > 0) { const firstDate = new Date(action.payload[action.payload.length - 1].t); const lastDate = new Date(action.payload[0].t); state.vonDatum = firstDate.toISOString().split("T")[0]; state.bisDatum = lastDate.toISOString().split("T")[0]; state.isChartOpen = true; // Schalter setzen, damit es nicht erneut passiert } }, setVonDatum: (state, action: PayloadAction) => { state.vonDatum = action.payload; }, setBisDatum: (state, action: PayloadAction) => { state.bisDatum = action.payload; }, setSelectedMode: ( state, action: PayloadAction<"DIA0" | "DIA1" | "DIA2"> ) => { state.selectedMode = action.payload; }, setSelectedSlotType: ( state, action: PayloadAction<"isolationswiderstand" | "schleifenwiderstand"> ) => { state.selectedSlotType = action.payload; }, setChartOpen: (state, action: PayloadAction) => { state.isChartOpen = action.payload; }, }, }); export const { setChartData, setVonDatum, setBisDatum, setSelectedMode, setSelectedSlotType, setChartOpen, } = kabelueberwachungChartSlice.actions; export default kabelueberwachungChartSlice.reducer;