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:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user