feat(chart): Zeitauswahl im Listbox nur lokal speichern, Daten-Fetch erst beim Button-Klick

This commit is contained in:
ISA
2025-07-21 12:22:18 +02:00
parent a75347a59f
commit 6b43435097
6 changed files with 24 additions and 9 deletions

View File

@@ -67,6 +67,13 @@ export default function AnalogInputsChart() {
const selectedAnalogInput = useSelector(
(state: RootState) => state.selectedAnalogInput
);
const [localZeitraum, setLocalZeitraum] = React.useState(zeitraum);
// Synchronisiere lokalen State, wenn Redux-Value sich ändert (z.B. nach Reset)
React.useEffect(() => {
setLocalZeitraum(zeitraum);
}, [zeitraum]);
// ✅ Button-Klick → Fetch auslösen
const handleFetchData = () => {
if (!selectedAnalogInput?.id) return;
@@ -75,10 +82,13 @@ export default function AnalogInputsChart() {
const latestVonDatum = vonDatum || new Date().toISOString().slice(0, 10);
const latestBisDatum = bisDatum || new Date().toISOString().slice(0, 10);
// Zeitauswahl ins Redux übernehmen
dispatch(setZeitraum(localZeitraum));
dispatch(
getAnalogInputsHistoryThunk({
eingang: selectedAnalogInput.id,
zeitraum,
zeitraum: localZeitraum,
vonDatum: latestVonDatum,
bisDatum: latestBisDatum,
})
@@ -341,13 +351,13 @@ export default function AnalogInputsChart() {
<div className="flex flex-wrap items-center gap-4 mb-2">
<DateRangePicker />
<Listbox value={zeitraum} onChange={(v) => dispatch(setZeitraum(v))}>
<Listbox value={localZeitraum} onChange={setLocalZeitraum}>
<div className="relative w-48">
<Listbox.Button className="w-full border px-3 py-1 rounded bg-white flex justify-between items-center text-sm">
<span>
{zeitraum === "DIA0"
{localZeitraum === "DIA0"
? "Alle Messwerte"
: zeitraum === "DIA1"
: localZeitraum === "DIA1"
? "Stündlich"
: "Täglich"}
</span>