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

@@ -6,6 +6,6 @@ NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false
NEXT_PUBLIC_EXPORT_STATIC=false
NEXT_PUBLIC_USE_CGI=false
# App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.613
NEXT_PUBLIC_APP_VERSION=1.6.614
NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter)

View File

@@ -5,5 +5,5 @@ NEXT_PUBLIC_CPL_API_PATH=/CPL
NEXT_PUBLIC_EXPORT_STATIC=true
NEXT_PUBLIC_USE_CGI=true
# App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.613
NEXT_PUBLIC_APP_VERSION=1.6.614
NEXT_PUBLIC_CPL_MODE=production

View File

@@ -1,3 +1,8 @@
## [1.6.614] 2025-07-21
- feat(ui): Hinweis-Icon und Meldung angezeigt, wenn kein Eingang ausgewählt ist
---
## [1.6.613] 2025-07-21
- fix: Linien Littwin blau und anderen grau für die Chart Linien

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>

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "cpl-v4",
"version": "1.6.613",
"version": "1.6.614",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cpl-v4",
"version": "1.6.613",
"version": "1.6.614",
"dependencies": {
"@fontsource/roboto": "^5.1.0",
"@headlessui/react": "^2.2.4",

View File

@@ -1,6 +1,6 @@
{
"name": "cpl-v4",
"version": "1.6.613",
"version": "1.6.614",
"private": true,
"scripts": {
"dev": "next dev",