fix: KUE-Einstellungen nach dem Speichern sofort lokal aktualisiert

- 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
This commit is contained in:
ISA
2025-04-30 10:52:22 +02:00
parent 85b286897e
commit aabdb10ddd
3 changed files with 33 additions and 9 deletions

View File

@@ -11,7 +11,7 @@ export interface OriginalValues {
speicherintervall: number[]; speicherintervall: number[];
} }
interface HandleSaveParams { export interface HandleSaveParams {
ids: string[]; ids: string[];
isolationsgrenzwerte: number[]; isolationsgrenzwerte: number[];
verzoegerung: number[]; verzoegerung: number[];
@@ -19,11 +19,20 @@ interface HandleSaveParams {
obereSchleifenGrenzwerte: number[]; obereSchleifenGrenzwerte: number[];
schleifenintervall: number[]; schleifenintervall: number[];
speicherintervall: number[]; speicherintervall: number[];
originalValues: OriginalValues; originalValues: {
kueID: string[];
isolationsgrenzwerte: number[];
verzoegerung: number[];
untereSchleifenGrenzwerte: number[];
obereSchleifenGrenzwerte: number[];
schleifenintervall: number[];
speicherintervall: number[];
};
slot: number; slot: number;
dispatch: (action: any) => void; dispatch: any;
onModulNameChange: (id: string) => void; onModulNameChange: (id: string) => void;
onClose: () => void; onClose: () => void;
onFormUpdate?: (updated: any) => void; // Added this property
} }
const isDifferent = (a: any, b: any): boolean => { const isDifferent = (a: any, b: any): boolean => {
@@ -155,6 +164,10 @@ const handleSave = async ({
memoryInterval: [...speicherintervall], memoryInterval: [...speicherintervall],
}) })
); );
// 🚀 Modal erst schließen, wenn UI aktualisiert ist
setTimeout(() => {
onClose();
}, 0);
} else { } else {
alert(" Keine Änderungen vorgenommen."); alert(" Keine Änderungen vorgenommen.");
} }

View File

@@ -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"; "use client";
import { useState } from "react"; import { useState } from "react";
import { useSelector, useDispatch } from "react-redux"; import { useDispatch, useSelector } from "react-redux";
import type { RootState } from "../../../../../redux/store"; import type { RootState } from "../../../../../redux/store";
import handleSave from "../handlers/handleSave"; import handleSave from "../handlers/handleSave";
import handleDisplayEinschalten from "../handlers/handleDisplayEinschalten"; import handleDisplayEinschalten from "../handlers/handleDisplayEinschalten";
@@ -35,6 +35,7 @@ export default function KueEinstellung({
onClose = () => {}, onClose = () => {},
onModulNameChange, onModulNameChange,
}: Props) { }: Props) {
const dispatch = useDispatch();
const { const {
kueID, kueID,
kueLimit1, kueLimit1,
@@ -45,7 +46,6 @@ export default function KueEinstellung({
} = useSelector((state: RootState) => state.kueDataSlice); } = useSelector((state: RootState) => state.kueDataSlice);
const { isAdminLoggedIn } = useAdminAuth(true); const { isAdminLoggedIn } = useAdminAuth(true);
const dispatch = useDispatch();
const formCacheKey = `slot_${slot}`; const formCacheKey = `slot_${slot}`;
if (typeof window !== "undefined") { if (typeof window !== "undefined") {
@@ -111,13 +111,24 @@ export default function KueEinstellung({
speicherintervall: memoryInterval, speicherintervall: memoryInterval,
}, },
slot, slot,
dispatch, // du kannst dispatch hier übergeben, falls nötig dispatch,
onModulNameChange: onModulNameChange ?? (() => {}), onModulNameChange: onModulNameChange ?? (() => {}),
onClose, 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") { if (typeof window !== "undefined") {
delete window.__kueCache?.[formCacheKey]; window.__kueCache![formCacheKey] = newData;
} }
}; };

View File

@@ -6,5 +6,5 @@
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
*/ */
const webVersion = "1.6.317"; const webVersion = "1.6.318";
export default webVersion; export default webVersion;