fix: Zeitbereich beim Schließen des Chart-Modals zurücksetzen

- vonDatum und bisDatum werden beim Schließen auf die letzten 30 Tage gesetzt
- verbessert Wiederverwendbarkeit beim nächsten Öffnen
This commit is contained in:
Ismail Ali
2025-04-09 19:40:35 +02:00
parent b6e83ec1e5
commit 506d767b35
2 changed files with 29 additions and 2 deletions

View File

@@ -21,6 +21,11 @@ import { resetBrushRange } from "../../../../../redux/slices/brushSlice";
import { fetchTDMDataBySlotThunk } from "../../../../../redux/thunks/fetchTDMListBySlotThunk";
import { useLoopChartLoader } from "./LoopMeasurementChart/LoopChartActionBar";
import {
setVonDatum,
setBisDatum,
} from "../../../../../redux/slices/kabelueberwachungChartSlice";
interface ChartSwitcherProps {
isOpen: boolean;
onClose: () => void;
@@ -47,6 +52,15 @@ const ChartSwitcher: React.FC<ChartSwitcherProps> = ({
// **Modal schließen + Redux-Status zurücksetzen**
const handleClose = () => {
// Zeitbereich zurücksetzen
const today = new Date();
const thirtyDaysAgo = new Date();
thirtyDaysAgo.setDate(today.getDate() - 30);
const toISO = (date: Date) => date.toLocaleDateString("sv-SE");
dispatch(setVonDatum(toISO(thirtyDaysAgo)));
dispatch(setBisDatum(toISO(today)));
dispatch(setChartOpen(false));
dispatch(setFullScreen(false));
dispatch(resetBrushRange());
@@ -87,9 +101,22 @@ const ChartSwitcher: React.FC<ChartSwitcherProps> = ({
(state: RootState) => state.kabelueberwachungChartSlice.slotNumber
);
// immmer beim önnen das Modal die letzte 30 Tage anzeigen
useEffect(() => {
if (isOpen && activeMode === "Schleife" && slotNumber !== null) {
loadLoopChartData();
const today = new Date();
const thirtyDaysAgo = new Date();
thirtyDaysAgo.setDate(today.getDate() - 30);
const toISO = (date: Date) => date.toLocaleDateString("sv-SE"); // YYYY-MM-DD
dispatch(setVonDatum(toISO(thirtyDaysAgo)));
dispatch(setBisDatum(toISO(today)));
// Warten, bis Redux gesetzt ist → dann Daten laden
setTimeout(() => {
loadLoopChartData();
}, 10); // kleiner Delay, damit Redux-State sicher aktualisiert ist
}
}, [isOpen, activeMode, slotNumber]);