From aabdb10ddde7c7e3055455310d4f2535cf30806e Mon Sep 17 00:00:00 2001 From: ISA Date: Wed, 30 Apr 2025 10:52:22 +0200 Subject: [PATCH] fix: KUE-Einstellungen nach dem Speichern sofort lokal aktualisiert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - formData nach erfolgreichem handleSave manuell gesetzt - Alle Werte (Grenzwerte, Intervall etc.) werden direkt im UI angezeigt - Kein Navigieren oder Neuladen mehr nötig zur Sichtbarkeit - Cache aktualisiert, damit auch beim Wiederöffnen korrekte Werte angezeigt werden --- .../kue705FO/handlers/handleSave.ts | 19 ++++++++++++++--- .../kue705FO/modals/KueEinstellung.tsx | 21 ++++++++++++++----- config/webVersion.ts | 2 +- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/components/main/kabelueberwachung/kue705FO/handlers/handleSave.ts b/components/main/kabelueberwachung/kue705FO/handlers/handleSave.ts index 67c7416..4ae74aa 100644 --- a/components/main/kabelueberwachung/kue705FO/handlers/handleSave.ts +++ b/components/main/kabelueberwachung/kue705FO/handlers/handleSave.ts @@ -11,7 +11,7 @@ export interface OriginalValues { speicherintervall: number[]; } -interface HandleSaveParams { +export interface HandleSaveParams { ids: string[]; isolationsgrenzwerte: number[]; verzoegerung: number[]; @@ -19,11 +19,20 @@ interface HandleSaveParams { obereSchleifenGrenzwerte: number[]; schleifenintervall: number[]; speicherintervall: number[]; - originalValues: OriginalValues; + originalValues: { + kueID: string[]; + isolationsgrenzwerte: number[]; + verzoegerung: number[]; + untereSchleifenGrenzwerte: number[]; + obereSchleifenGrenzwerte: number[]; + schleifenintervall: number[]; + speicherintervall: number[]; + }; slot: number; - dispatch: (action: any) => void; + dispatch: any; onModulNameChange: (id: string) => void; onClose: () => void; + onFormUpdate?: (updated: any) => void; // Added this property } const isDifferent = (a: any, b: any): boolean => { @@ -155,6 +164,10 @@ const handleSave = async ({ memoryInterval: [...speicherintervall], }) ); + // 🚀 Modal erst schließen, wenn UI aktualisiert ist + setTimeout(() => { + onClose(); + }, 0); } else { alert("ℹ️ Keine Änderungen vorgenommen."); } diff --git a/components/main/kabelueberwachung/kue705FO/modals/KueEinstellung.tsx b/components/main/kabelueberwachung/kue705FO/modals/KueEinstellung.tsx index 542cd41..dbedfee 100644 --- a/components/main/kabelueberwachung/kue705FO/modals/KueEinstellung.tsx +++ b/components/main/kabelueberwachung/kue705FO/modals/KueEinstellung.tsx @@ -1,9 +1,9 @@ -// KueEinstellung.tsx – vollständige Version mit handleSave eingebunden +// KueEinstellung.tsx – final überarbeitet: formData wird direkt nach dem Speichern aktualisiert "use client"; import { useState } from "react"; -import { useSelector, useDispatch } from "react-redux"; +import { useDispatch, useSelector } from "react-redux"; import type { RootState } from "../../../../../redux/store"; import handleSave from "../handlers/handleSave"; import handleDisplayEinschalten from "../handlers/handleDisplayEinschalten"; @@ -35,6 +35,7 @@ export default function KueEinstellung({ onClose = () => {}, onModulNameChange, }: Props) { + const dispatch = useDispatch(); const { kueID, kueLimit1, @@ -45,7 +46,6 @@ export default function KueEinstellung({ } = useSelector((state: RootState) => state.kueDataSlice); const { isAdminLoggedIn } = useAdminAuth(true); - const dispatch = useDispatch(); const formCacheKey = `slot_${slot}`; if (typeof window !== "undefined") { @@ -111,13 +111,24 @@ export default function KueEinstellung({ speicherintervall: memoryInterval, }, slot, - dispatch, // du kannst dispatch hier übergeben, falls nötig + dispatch, onModulNameChange: onModulNameChange ?? (() => {}), onClose, }); + const newData = { + name: updatedKueID[slot], + limit1: updatedLimit1[slot].toString(), + delay1: updatedDelay1[slot].toString(), + limit2Low: updatedLimit2Low[slot].toString(), + loopInterval: updatedLoopInterval[slot].toString(), + memoryInterval: updatedMemoryInterval[slot].toString(), + }; + + setFormData(newData); + if (typeof window !== "undefined") { - delete window.__kueCache?.[formCacheKey]; + window.__kueCache![formCacheKey] = newData; } }; diff --git a/config/webVersion.ts b/config/webVersion.ts index 03e01ee..d52ead8 100644 --- a/config/webVersion.ts +++ b/config/webVersion.ts @@ -6,5 +6,5 @@ 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). */ -const webVersion = "1.6.317"; +const webVersion = "1.6.318"; export default webVersion;