diff --git a/frontend/src/ServerManager.jsx b/frontend/src/ServerManager.jsx index a85df52..4ea8667 100644 --- a/frontend/src/ServerManager.jsx +++ b/frontend/src/ServerManager.jsx @@ -1443,9 +1443,16 @@ function EditServerModal({ show, server, onChange, onSave, onClose }) { // Локальное состояние для формы const [localServer, setLocalServer] = useState(server || {}); + const ensureGateways = (srv) => { + if (!srv) return {}; + const needs = NEEDS_GATEWAYS(srv.type); + const gateways = needs ? normalizeGateways(srv.gateways, srv.gateway || srv.dns || srv.ip) : []; + return { ...srv, gateways }; + }; + // Синхронизируем локальное состояние с пропсами useEffect(() => { - setLocalServer(server || {}); + setLocalServer(ensureGateways(server || {})); }, [server]); useEffect(() => { @@ -1523,6 +1530,114 @@ function EditServerModal({ show, server, onChange, onSave, onClose }) { handleChange('tunnel', e.target.value)} /> + {NEEDS_GATEWAYS(localServer.type) && ( + <> +