feat(analogInputs): automatisches Laden der Chart-Daten bei Tabellenklick via Redux

- analogInputsHistorySlice um `autoLoad` erweitert, um automatisches Laden zu triggern
- handleSelect in AnalogInputsTable dispatcht jetzt `setAutoLoad(true)`
- AnalogInputsChart lauscht auf `autoLoad` + `selectedId` und lädt Daten automatisch
- `autoLoad` wird nach dem Laden wieder auf false zurückgesetzt
This commit is contained in:
Ismail Ali
2025-07-15 09:24:27 +02:00
parent 658aa0cae5
commit f485d87809
8 changed files with 67 additions and 27 deletions

View File

@@ -22,6 +22,7 @@ import {
setVonDatum,
setBisDatum,
setZeitraum,
setAutoLoad,
} from "@/redux/slices/analogInputs/analogInputsHistorySlice";
import DateRangePicker from "@/components/common/DateRangePicker";
import { Listbox } from "@headlessui/react";
@@ -43,17 +44,12 @@ type AnalogInputHistoryPoint = {
m: number;
};
export default function AnalogInputsChart({
selectedId,
}: {
selectedId: number | null;
}) {
export default function AnalogInputsChart() {
const dispatch = useDispatch<AppDispatch>();
const chartRef = useRef<any>(null);
const { zeitraum, vonDatum, bisDatum, data, isLoading } = useSelector(
(state: RootState) => state.analogInputsHistory
);
const { zeitraum, vonDatum, bisDatum, data, autoLoad, selectedId } =
useSelector((state: RootState) => state.analogInputsHistory);
useEffect(() => {
const today = new Date();
@@ -128,6 +124,19 @@ export default function AnalogInputsChart({
},
};
useEffect(() => {
if (autoLoad && selectedId) {
dispatch(
getAnalogInputsHistoryThunk({
eingang: selectedId,
zeitraum,
vonDatum,
bisDatum,
})
);
dispatch(setAutoLoad(false)); // ✅ zurücksetzen, sonst endlose Schleife
}
}, [autoLoad, selectedId, dispatch, zeitraum, vonDatum, bisDatum]);
return (
<div className="flex flex-col gap-3">
<div className="flex flex-wrap items-center gap-4 mb-2">