Files
CPLv4.0/redux/slices/kabelueberwachungChartSlice.ts
ISA 0faf506763 feat: Chart-Status zurücksetzen, wenn das Modal geschlossen wird
- Redux-Slice `kabelueberwachungChartSlice.ts` erweitert, um `isChartOpen` beim Schließen zurückzusetzen
- `ChartSwitcher.tsx` so angepasst, dass `setChartOpen(false)` beim Schließen des Modals (`onClose`) aufgerufen wird
- `handleClose` als zentrale Schließen-Funktion eingeführt, um sowohl das Modal zu schließen als auch den Redux-Status zu aktualisieren
- Sicherstellt, dass `vonDatum` und `bisDatum` beim erneuten Öffnen korrekt aktualisiert werden
2025-02-21 11:18:05 +01:00

72 lines
2.2 KiB
TypeScript

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<any[]>) => {
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<string>) => {
state.vonDatum = action.payload;
},
setBisDatum: (state, action: PayloadAction<string>) => {
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<boolean>) => {
state.isChartOpen = action.payload;
},
},
});
export const {
setChartData,
setVonDatum,
setBisDatum,
setSelectedMode,
setSelectedSlotType,
setChartOpen,
} = kabelueberwachungChartSlice.actions;
export default kabelueberwachungChartSlice.reducer;