From 0faf50676361702e82f23a102b385e30c4f677a3 Mon Sep 17 00:00:00 2001 From: ISA Date: Fri, 21 Feb 2025 11:18:05 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20Chart-Status=20zur=C3=BCcksetzen,=20wen?= =?UTF-8?q?n=20das=20Modal=20geschlossen=20wird?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- .../kue705FO/Charts/ChartSwitcher.tsx | 19 ++++++++++----- .../LoopChartActionBar.tsx | 23 ++++++++++--------- config/webVersion.ts | 2 +- redux/slices/kabelueberwachungChartSlice.ts | 16 +++++++++++++ 4 files changed, 42 insertions(+), 18 deletions(-) diff --git a/components/main/kabelueberwachung/kue705FO/Charts/ChartSwitcher.tsx b/components/main/kabelueberwachung/kue705FO/Charts/ChartSwitcher.tsx index 8d585c9..b557e87 100644 --- a/components/main/kabelueberwachung/kue705FO/Charts/ChartSwitcher.tsx +++ b/components/main/kabelueberwachung/kue705FO/Charts/ChartSwitcher.tsx @@ -5,8 +5,9 @@ import LoopChartActionBar from "./LoopMeasurementChart/LoopChartActionBar"; import TDRChartActionBar from "./TDRChart/TDRChartActionBar"; import LoopMeasurementChart from "./LoopMeasurementChart/LoopMeasurementChart"; import TDRChart from "./TDRChart/TDRChart"; -import { useSelector } from "react-redux"; +import { useSelector, useDispatch } from "react-redux"; import { RootState } from "../../../../../redux/store"; +import { setChartOpen } from "../../../../../redux/slices/kabelueberwachungChartSlice"; interface ChartSwitcherProps { isOpen: boolean; @@ -14,21 +15,27 @@ interface ChartSwitcherProps { } const ChartSwitcher: React.FC = ({ isOpen, onClose }) => { + const dispatch = useDispatch(); const activeMode = useSelector( (state: RootState) => state.chartData.activeMode ); + // **Neue Funktion: Modal schließen + Redux-Status zurücksetzen** + const handleClose = () => { + dispatch(setChartOpen(false)); // Schalter zurücksetzen + onClose(); // Originale Schließen-Funktion aufrufen + }; + return ( = ({ isOpen, onClose }) => { }} > ); }; diff --git a/config/webVersion.ts b/config/webVersion.ts index bcba7c5..e296a5f 100644 --- a/config/webVersion.ts +++ b/config/webVersion.ts @@ -6,5 +6,5 @@ 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). */ -const webVersion = "1.6.77"; +const webVersion = "1.6.78"; export default webVersion; diff --git a/redux/slices/kabelueberwachungChartSlice.ts b/redux/slices/kabelueberwachungChartSlice.ts index b073390..4c11615 100644 --- a/redux/slices/kabelueberwachungChartSlice.ts +++ b/redux/slices/kabelueberwachungChartSlice.ts @@ -6,6 +6,7 @@ interface KabelueberwachungChartState { bisDatum: string; selectedMode: "DIA0" | "DIA1" | "DIA2"; selectedSlotType: "isolationswiderstand" | "schleifenwiderstand"; + isChartOpen: boolean; // NEU: Schalter für das erste Öffnen des Charts } const initialState: KabelueberwachungChartState = { @@ -14,6 +15,7 @@ const initialState: KabelueberwachungChartState = { bisDatum: "2025-02-28", selectedMode: "DIA0", selectedSlotType: "schleifenwiderstand", + isChartOpen: false, // Standard: Chart ist beim ersten Laden geschlossen }; const kabelueberwachungChartSlice = createSlice({ @@ -22,6 +24,16 @@ const kabelueberwachungChartSlice = createSlice({ 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; @@ -41,6 +53,9 @@ const kabelueberwachungChartSlice = createSlice({ ) => { state.selectedSlotType = action.payload; }, + setChartOpen: (state, action: PayloadAction) => { + state.isChartOpen = action.payload; + }, }, }); @@ -50,6 +65,7 @@ export const { setBisDatum, setSelectedMode, setSelectedSlotType, + setChartOpen, } = kabelueberwachungChartSlice.actions; export default kabelueberwachungChartSlice.reducer;