diff --git a/frontend/src/ServerManager.jsx b/frontend/src/ServerManager.jsx
index 9795dfd..1cd0fe5 100644
--- a/frontend/src/ServerManager.jsx
+++ b/frontend/src/ServerManager.jsx
@@ -630,6 +630,8 @@ function ServerManager() {
setTimeout(() => setSuccess(''), 3000);
};
+ const gateways = Array.isArray(localServer.gateways) ? localServer.gateways : [];
+
return (
<>
{error && (
@@ -1538,11 +1540,11 @@ function EditServerModal({ show, server, onChange, onSave, onClose }) {
handleChange('tunnel', e.target.value)} />
- {NEEDS_GATEWAYS(localServer.type) && (
+ {NEEDS_GATEWAYS(localServer.type) && (
<>
Шлюзы
- {(localServer.gateways || []).map((gw, idx) => (
+ {gateways.map((gw, idx) => (
@@ -1634,14 +1636,18 @@ function EditServerModal({ show, server, onChange, onSave, onClose }) {
type="button"
className="btn btn-outline-primary btn-sm"
onClick={() => {
- setLocalServer((prev) => {
- const list = Array.isArray(prev?.gateways) ? prev.gateways : [];
- const nextList = [...list, makeGateway({ primary: list.length === 0 })];
- const next = { ...(prev || {}), gateways: nextList };
- onChange && onChange(next);
- return next;
- });
- }}
+ try {
+ setLocalServer((prev) => {
+ const list = Array.isArray(prev?.gateways) ? prev.gateways : [];
+ const nextList = [...list, makeGateway({ primary: list.length === 0 })];
+ const next = { ...(prev || {}), gateways: nextList };
+ onChange && onChange(next);
+ return next;
+ });
+ } catch (e) {
+ console.error('Ошибка при добавлении шлюза в модалке редактирования', e);
+ }
+ }}
>
Добавить шлюз