diff --git a/rippy-windows/src/fenster/bausteine.tsx b/rippy-windows/src/fenster/bausteine.tsx index 3a37bf5..c6ed719 100644 --- a/rippy-windows/src/fenster/bausteine.tsx +++ b/rippy-windows/src/fenster/bausteine.tsx @@ -375,6 +375,23 @@ export function Feld({ }) { const [entwurf, setEntwurf] = useState(wert) useEffect(() => setEntwurf(wert), [wert]) + // 5.7.0 (Durchsicht F18): Gespeichert wird beim Verlassen, bei Enter UND + // wenn das Feld verschwindet (Bereichswechsel, Dialog zu) — vorher ging + // Tipparbeit verloren, wenn man statt zu klicken Enter drückte oder in + // einen anderen Bereich wechselte. Die Refs tragen den jüngsten Stand in + // die Aufräum-Funktion des Effekts. + const juengster = useRef({ entwurf, wert, aufAendern }) + juengster.current = { entwurf, wert, aufAendern } + useEffect( + () => () => { + const j = juengster.current + if (j.entwurf !== j.wert) j.aufAendern(j.entwurf) + }, + [], + ) + const speichern = (): void => { + if (entwurf !== wert) aufAendern(entwurf) + } return (