feat: Redux-Integration für Datumsauswahl und Chart-Zoom verbessert

- `DateRangePicker.tsx` angepasst, um `vonDatum` und `bisDatum` direkt in Redux zu aktualisieren
- `LoopMeasurementChart.tsx` verbessert, sodass `vonDatum` und `bisDatum` beim Zoomen mit Mausrad automatisch in Redux gespeichert werden
- Chart.js `onZoom` korrekt implementiert, um Änderungen in der X-Achse sofort zu übernehmen
- Redux-Updates optimiert, um unnötige `dispatch`-Aufrufe zu vermeiden
This commit is contained in:
ISA
2025-02-25 11:55:37 +01:00
parent cddb5e7a7f
commit 9424a6cc43
4 changed files with 67 additions and 82 deletions

View File

@@ -74,7 +74,7 @@ const LoopChartActionBar: React.FC = () => {
console.log("✅ Daten erfolgreich geladen:", jsonData);
if (Array.isArray(jsonData)) {
dispatch(setLoopMeasurementCurveChartData(jsonData));
dispatch(setLoopMeasurementCurveChartData([...jsonData])); // Erzwingt eine neue Referenz
// Falls das Chart zum ersten Mal geöffnet wird, setze vonDatum & bisDatum
if (!isChartOpen && jsonData.length > 0) {
@@ -101,12 +101,14 @@ const LoopChartActionBar: React.FC = () => {
<div className="flex justify-end items-center p-2 bg-gray-100 rounded-lg space-x-2">
{/* Datumsauswahl */}
<DateRangePicker
setVonDatum={(date) =>
dispatch(setVonDatum(date.toISOString().split("T")[0]))
}
setBisDatum={(date) =>
dispatch(setBisDatum(date.toISOString().split("T")[0]))
}
setVonDatum={(date) => {
const isoDate = date.toISOString().split("T")[0];
if (isoDate !== vonDatum) dispatch(setVonDatum(isoDate));
}}
setBisDatum={(date) => {
const isoDate = date.toISOString().split("T")[0];
if (isoDate !== bisDatum) dispatch(setBisDatum(isoDate));
}}
/>
{/* Dropdown für DIA-Modus */}