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
This commit is contained in:
ISA
2025-02-21 11:18:05 +01:00
parent cdf5ca6d6e
commit 0faf506763
4 changed files with 42 additions and 18 deletions

View File

@@ -9,15 +9,15 @@ import {
setChartData,
setSelectedMode,
setSelectedSlotType,
setChartOpen,
} from "../../../../../../redux/slices/kabelueberwachungChartSlice";
const LoopChartActionBar: React.FC = () => {
const dispatch = useDispatch();
// Redux-Status abrufen
const { vonDatum, bisDatum, selectedMode, selectedSlotType } = useSelector(
(state: RootState) => state.kabelueberwachungChart
);
const { vonDatum, bisDatum, selectedMode, selectedSlotType, isChartOpen } =
useSelector((state: RootState) => state.kabelueberwachungChart);
/**
* API-URL-Erstellung für Entwicklung und Produktion
@@ -46,6 +46,15 @@ const LoopChartActionBar: React.FC = () => {
if (Array.isArray(jsonData)) {
dispatch(setChartData(jsonData));
// Falls das Chart zum ersten Mal geöffnet wird, setze vonDatum & bisDatum
if (!isChartOpen && jsonData.length > 0) {
const firstDate = new Date(jsonData[jsonData.length - 1].t);
const lastDate = new Date(jsonData[0].t);
dispatch(setVonDatum(firstDate.toISOString().split("T")[0]));
dispatch(setBisDatum(lastDate.toISOString().split("T")[0]));
dispatch(setChartOpen(true)); // Setze den Schalter auf "geöffnet"
}
} else {
console.error("Erwartetes Array, aber erhalten:", jsonData);
}
@@ -95,14 +104,6 @@ const LoopChartActionBar: React.FC = () => {
<option value="schleifenwiderstand">Schleifenwiderstand</option>
<option value="isolationswiderstand">Isolationswiderstand</option>
</select>
{/* Daten abrufen */}
<button
onClick={handleFetchData}
className="px-3 py-1 bg-green-500 text-white rounded text-sm"
>
Daten Laden
</button>
</div>
);
};