feat(AnalogInputsChart): Zeitraum im DatePicker und Redux initialisieren und synchronisieren

- Initialwert für Zeitraum (letzte 30 Tage) im Redux-Store gesetzt
- DatePicker-Änderungen werden im Redux gespeichert
- Fetch-Button verwendet Zeitraum aus Redux und loggt die Fetch-URL
- Chart zeigt Daten entsprechend ausgewähltem Zeitraum
This commit is contained in:
ISA
2025-07-21 15:20:04 +02:00
parent 697cae9848
commit 03ee4fb08e
6 changed files with 40 additions and 16 deletions

View File

@@ -74,17 +74,37 @@ export default function AnalogInputsChart() {
setLocalZeitraum(zeitraum);
}, [zeitraum]);
// Initialisiere Zeitraum im Redux-Store, falls leer
const vonDatumRedux = useSelector(
(state: RootState) => state.dateRangePicker.vonDatum
);
const bisDatumRedux = useSelector(
(state: RootState) => state.dateRangePicker.bisDatum
);
useEffect(() => {
if (!vonDatumRedux || !bisDatumRedux) {
const today = new Date();
const toDate = today.toISOString().slice(0, 10);
const fromDateObj = new Date(today);
fromDateObj.setDate(today.getDate() - 30);
const fromDate = fromDateObj.toISOString().slice(0, 10);
dispatch(setVonDatum(fromDate));
dispatch(setBisDatum(toDate));
}
}, [vonDatumRedux, bisDatumRedux, dispatch]);
// ✅ Button-Klick → Fetch auslösen
const handleFetchData = () => {
if (!selectedAnalogInput?.id) return;
// Sicherstellen, dass die neuesten Werte aus dem DateRangePicker verwendet werden
const latestVonDatum = vonDatum || new Date().toISOString().slice(0, 10);
const latestBisDatum = bisDatum || new Date().toISOString().slice(0, 10);
// Zeitauswahl ins Redux übernehmen
// Zeitraum aus Redux holen
const latestVonDatum =
vonDatumRedux || new Date().toISOString().slice(0, 10);
const latestBisDatum =
bisDatumRedux || new Date().toISOString().slice(0, 10);
dispatch(setZeitraum(localZeitraum));
// Debug: Fetch-URL loggen
const debugUrl = `/api/cpl/getAnalogInputsHistory?eingang=${selectedAnalogInput.id}&zeitraum=${localZeitraum}&von=${latestVonDatum}&bis=${latestBisDatum}`;
console.log("Fetch-URL:", debugUrl);
dispatch(
getAnalogInputsHistoryThunk({
eingang: selectedAnalogInput.id,
@@ -146,9 +166,8 @@ export default function AnalogInputsChart() {
// ✅ Zeitbereich anwenden (nur Anzeige gefiltert)
const filteredData = inputData.filter((point) => {
const date = new Date(point.t);
const from = vonDatum ? new Date(vonDatum) : null;
const to = bisDatum ? new Date(bisDatum) : null;
const from = vonDatumRedux ? new Date(vonDatumRedux) : null;
const to = bisDatumRedux ? new Date(bisDatumRedux) : null;
return (!from || date >= from) && (!to || date <= to);
});
useEffect(() => {
@@ -327,7 +346,7 @@ export default function AnalogInputsChart() {
},
},
};
// DateRangePicker Event → Redux-Datum setzen (aber KEIN Fetch!)
// DateRangePicker Event → Redux-Datum setzen (aber KEIN Fetch!)
const handleDateChange = (from: string, to: string) => {
dispatch(setVonDatum(from));
dispatch(setBisDatum(to));