feat(chart): Zeitauswahl im Listbox nur lokal speichern, Daten-Fetch erst beim Button-Klick
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user