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[];
}
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.");
}

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";
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;
}
};

View File

@@ -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;