From 9fb92c19cb9db69e64677407ded12a9869752a93 Mon Sep 17 00:00:00 2001 From: shats Date: Sun, 7 Dec 2025 01:41:22 +0700 Subject: [PATCH] feat: Enhance EditServerModal initialization logic by ensuring local state is synchronized with props only on modal open, improving state management and preventing unnecessary updates. --- frontend/src/ServerManager.jsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/frontend/src/ServerManager.jsx b/frontend/src/ServerManager.jsx index 3ccb232..6b8bae0 100644 --- a/frontend/src/ServerManager.jsx +++ b/frontend/src/ServerManager.jsx @@ -1445,6 +1445,7 @@ function ServerManager() { // Модальное окно для редактирования сервера с backdrop и анимацией function EditServerModal({ show, server, onChange, onSave, onClose }) { const modalRef = useRef(null); + const initializedRef = useRef(false); // Локальное состояние для формы const [localServer, setLocalServer] = useState({}); @@ -1462,12 +1463,17 @@ function EditServerModal({ show, server, onChange, onSave, onClose }) { return { ...srv, gateways }; }; - // Синхронизируем локальное состояние с пропсами при открытии модалки + // Синхронизируем локальное состояние с пропсами ТОЛЬКО при открытии модалки useEffect(() => { - if (show && server) { + if (show && server && !initializedRef.current) { const prepared = ensureGateways(server); console.log('[EditServerModal] Инициализация с сервером:', prepared); setLocalServer(prepared); + initializedRef.current = true; + } + // Сбрасываем флаг при закрытии + if (!show) { + initializedRef.current = false; } }, [show, server]);