From 658aa0cae5c4f14912422f4a43eead4a4397b4cb Mon Sep 17 00:00:00 2001 From: Ismail Ali Date: Mon, 14 Jul 2025 23:28:40 +0200 Subject: [PATCH] uninstall redux-persist, weil nimmt viel Performance weg --- .env.development | 2 +- .env.production | 2 +- CHANGELOG.md | 11 + .../main/analogInputs/AnalogInputsChart.tsx | 2 +- .../AnalogInputsSettingsModal.tsx | 201 ++++++++---------- .../main/analogInputs/AnalogInputsTable.tsx | 22 +- .../main/analogInputs/AnalogInputsView.tsx | 40 ++-- package-lock.json | 15 +- package.json | 5 +- pages/_app.tsx | 14 +- .../analogInputsHistorySlice.ts | 16 +- .../{ => analogInputs}/analogInputsSlice.ts | 2 +- .../analogInputs/analogInputsUiSlice.ts | 23 ++ .../analogInputs/selectedAnalogInputSlice.ts | 34 +++ redux/slices/selectedAnalogInputSlice.ts | 29 --- redux/store.ts | 55 ++--- redux/thunks/getAnalogInputsHistoryThunk.ts | 2 +- redux/thunks/getAnalogInputsThunk.ts | 2 +- services/fetchAnalogInputsHistoryService.ts | 2 +- types/analogInput.ts | 5 +- 20 files changed, 236 insertions(+), 248 deletions(-) rename redux/slices/{ => analogInputs}/analogInputsHistorySlice.ts (78%) rename redux/slices/{ => analogInputs}/analogInputsSlice.ts (97%) create mode 100644 redux/slices/analogInputs/analogInputsUiSlice.ts create mode 100644 redux/slices/analogInputs/selectedAnalogInputSlice.ts delete mode 100644 redux/slices/selectedAnalogInputSlice.ts diff --git a/.env.development b/.env.development index 40745cf..c62b2c8 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.598 +NEXT_PUBLIC_APP_VERSION=1.6.599 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 9d6b1f5..0516d77 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.598 +NEXT_PUBLIC_APP_VERSION=1.6.599 NEXT_PUBLIC_CPL_MODE=production \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 46429c9..290029c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## [1.6.599] – 2025-07-14 + +- feat: AnalogInputsChart mit DateRangePicker und vollständiger Redux-Integration erweitert + +- analogInputsHistorySlice angepasst: zeitraum, vonDatum, bisDatum und data hinzugefügt +- Typdefinitionen im Slice und Thunk korrigiert +- getAnalogInputsHistoryThunk erweitert, um vonDatum und bisDatum zu akzeptieren +- DateRangePicker korrekt in AnalogInputsChart.tsx integriert +- Fehler bei Selector-Zugriffen und Dispatch behoben + +--- ## [1.6.598] – 2025-07-11 - 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 7fe1981..d2794e1 100644 --- a/components/main/analogInputs/AnalogInputsChart.tsx +++ b/components/main/analogInputs/AnalogInputsChart.tsx @@ -22,7 +22,7 @@ import { setVonDatum, setBisDatum, setZeitraum, -} from "@/redux/slices/analogInputsHistorySlice"; +} from "@/redux/slices/analogInputs/analogInputsHistorySlice"; import DateRangePicker from "@/components/common/DateRangePicker"; import { Listbox } from "@headlessui/react"; import { getColor } from "@/utils/colors"; diff --git a/components/main/analogInputs/AnalogInputsSettingsModal.tsx b/components/main/analogInputs/AnalogInputsSettingsModal.tsx index 6f27b65..34f96de 100644 --- a/components/main/analogInputs/AnalogInputsSettingsModal.tsx +++ b/components/main/analogInputs/AnalogInputsSettingsModal.tsx @@ -1,32 +1,31 @@ -"use client"; // /components/main/analogeEingaenge/AnalogInputsSettingsModal.tsx +"use client"; + import React, { useEffect, useState } from "react"; import { Listbox } from "@headlessui/react"; -interface AnalogInput { - id: number; - label?: string; - offset?: number | string; - factor?: number | string; - loggerInterval: string; - unit?: string; -} +import { useDispatch, useSelector } from "react-redux"; +import { RootState } from "@/redux/store"; +import { setIsSettingsModalOpen } from "@/redux/slices/analogInputs/analogInputsUiSlice"; -interface Props { - selectedInput: AnalogInput; - isOpen: boolean; - onClose: () => void; -} +import type { AnalogInput } from "@/types/analogInput"; // 👈 Importiere den Typ (jetzt definiert und exportiert) + +export default function AnalogInputsSettingsModal() { + const dispatch = useDispatch(); + + const isOpen = useSelector( + (state: RootState) => state.analogInputsUi.isSettingsModalOpen + ); + + const selectedInput = useSelector( + (state) => state.selectedAnalogInput + ); -export default function AnalogInputSettingsModal({ - selectedInput, - isOpen, - onClose, -}: Props) { const [label, setLabel] = useState(""); const [offset, setOffset] = useState("0.000"); const [factor, setFactor] = useState("1.000"); const [loggerInterval, setLoggerInterval] = useState("9"); const [unit, setUnit] = useState("V"); const [isSaving, setIsSaving] = useState(false); + const unitOptions = ["V", "mA", "°C", "bar", "%"]; useEffect(() => { @@ -42,12 +41,8 @@ export default function AnalogInputSettingsModal({ ? selectedInput.factor.toFixed(3) : selectedInput.factor || "1.000" ); - setLoggerInterval(selectedInput.loggerInterval); + setLoggerInterval(selectedInput.loggerInterval || "9"); setUnit(selectedInput.unit || "V"); - console.log( - "selectedInput in analoge Eingänge:", - selectedInput.loggerInterval - ); } }, [selectedInput, isOpen]); @@ -55,6 +50,7 @@ export default function AnalogInputSettingsModal({ const handleSave = async () => { setIsSaving(true); + const slot = selectedInput.id; const isDev = window.location.hostname === "localhost"; @@ -100,7 +96,7 @@ export default function AnalogInputSettingsModal({ alert("Einstellungen gespeichert (Produktion)."); } - onClose(); + dispatch(setIsSettingsModalOpen(false)); location.reload(); } catch (err) { alert("Fehler beim Speichern."); @@ -118,7 +114,7 @@ export default function AnalogInputSettingsModal({ Einstellungen Messwerteingang {selectedInput.id}