diff --git a/.env.development b/.env.development index c62b2c8..8804e9c 100644 --- a/.env.development +++ b/.env.development @@ -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.599 +NEXT_PUBLIC_APP_VERSION=1.6.601 NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter) diff --git a/.env.production b/.env.production index 0516d77..1020994 100644 --- a/.env.production +++ b/.env.production @@ -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.599 +NEXT_PUBLIC_APP_VERSION=1.6.601 NEXT_PUBLIC_CPL_MODE=production \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 290029c..66a3141 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## [1.6.601] – 2025-07-15 + +- uninstall redux-persist, weil nimmt viel Performance weg + +--- +## [1.6.600] – 2025-07-15 + +- uninstall redux-persist, weil nimmt viel Performance weg + +--- ## [1.6.599] – 2025-07-14 - feat: AnalogInputsChart mit DateRangePicker und vollständiger Redux-Integration erweitert diff --git a/components/main/analogInputs/AnalogInputsChart.tsx b/components/main/analogInputs/AnalogInputsChart.tsx index d2794e1..5e24b14 100644 --- a/components/main/analogInputs/AnalogInputsChart.tsx +++ b/components/main/analogInputs/AnalogInputsChart.tsx @@ -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(); const chartRef = useRef(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 (
diff --git a/components/main/analogInputs/AnalogInputsTable.tsx b/components/main/analogInputs/AnalogInputsTable.tsx index 8bc8f7f..deec756 100644 --- a/components/main/analogInputs/AnalogInputsTable.tsx +++ b/components/main/analogInputs/AnalogInputsTable.tsx @@ -9,7 +9,10 @@ import settingsIcon from "@iconify/icons-mdi/settings"; import waveformIcon from "@iconify/icons-mdi/waveform"; import { setSelectedAnalogInput } from "@/redux/slices/analogInputs/selectedAnalogInputSlice"; import { setIsSettingsModalOpen } from "@/redux/slices/analogInputs/analogInputsUiSlice"; -import { setSelectedId } from "@/redux/slices/analogInputs/analogInputsHistorySlice"; +import { + setSelectedId, + setAutoLoad, +} from "@/redux/slices/analogInputs/analogInputsHistorySlice"; export default function AnalogInputsTable() { const dispatch = useDispatch(); @@ -25,10 +28,10 @@ export default function AnalogInputsTable() { ); const handleSelect = (id: number, input: AnalogInput) => { - dispatch(setIsSettingsModalOpen(true)); dispatch(setSelectedId(id)); setActiveId(id); dispatch(setSelectedAnalogInput(input)); + dispatch(setAutoLoad(true)); }; return ( @@ -54,48 +57,60 @@ export default function AnalogInputsTable() { {Object.values(analogInputs) .filter( - (e) => - e && typeof e.id === "number" && typeof e.label === "string" + (analogInput) => + analogInput && + typeof analogInput.id === "number" && + typeof analogInput.label === "string" ) .slice(0, 8) - .map((e, index) => ( + .map((analogInput, index) => ( handleSelect(e.id!, e)} + onClick={() => handleSelect(analogInput.id!, analogInput)} >
- {e.id ?? "-"} + {analogInput.id ?? "-"}
handleSelect(e.id!, e)} + onClick={() => handleSelect(analogInput.id!, analogInput)} > - {typeof e.value === "number" ? e.value.toFixed(2) : "-"} + {typeof analogInput.value === "number" + ? analogInput.value.toFixed(2) + : "-"} - {e.unit || "-"} handleSelect(e.id!, e)} + onClick={() => handleSelect(analogInput.id!, analogInput)} > - {e.label || "----"} + {analogInput.unit || "-"} + + handleSelect(analogInput.id!, analogInput)} + > + {analogInput.label || "----"}