diff --git a/frontend/src/NetworkConfigManager.jsx b/frontend/src/NetworkConfigManager.jsx index 27e7e27..0da0b64 100644 --- a/frontend/src/NetworkConfigManager.jsx +++ b/frontend/src/NetworkConfigManager.jsx @@ -2242,123 +2242,116 @@ function NetworkConfigManager() { const isUnassigned = serverId === '__unassigned__'; return ( -
+
{/* Server header - улучшенная структура с четкой иерархией */}
-
-
- {/* Левая часть: основная информация */} -
- {isUnassigned ? ( - <> - - - -
-

Без привязки к серверу

+
+ {/* Левая часть: основная информация */} +
+ {isUnassigned ? ( + <> + + + +
+

Без привязки к серверу

+
+ + ) : ( + <> + + + +
+ {/* Основная строка: название сервера */} +
+

+ {server?.dns ? server.dns.split('.')[0] : (server?.name || serverId)} +

+ {server?.country && ( + + {countryToFlag(server.country)} + {server.country} + + )} + {server?.provider && ( + + {server.provider} + + )}
- - ) : ( - <> - - - -
- {/* Основная строка: название сервера */} -
-

- {server?.dns ? server.dns.split('.')[0] : (server?.name || serverId)} -

- {server?.country && ( - - {countryToFlag(server.country)} - {server.country} - - )} - {server?.provider && ( - - {server.provider} - - )} -
- - {/* Дополнительная информация: DNS и IP */} -
- {server?.dns && ( -
- DNS: - - {server.dns} - -
- )} - {server?.ip && ( -
- IP: - - {server.ip} - -
- )} -
+ + {/* Дополнительная информация: DNS и IP */} +
+ {server?.dns && ( +
+ DNS: + + {server.dns} + +
+ )} + {server?.ip && ( +
+ IP: + + {server.ip} + +
+ )}
- - )} -
- - {/* Правая часть: счетчик и действия */} -
- - {items.length} {type === 'gateway' ? (items.length === 1 ? 'gateway' : 'gateways') : (items.length === 1 ? 'интерфейс' : 'интерфейсов')} - - {type === 'interface' && !isUnassigned && items.length > 0 && ( - - )} -
+
+ + )} +
+ + {/* Правая часть: счетчик и действия */} +
+ + {items.length} {type === 'gateway' ? (items.length === 1 ? 'gateway' : 'gateways') : (items.length === 1 ? 'интерфейс' : 'интерфейсов')} + + {type === 'interface' && !isUnassigned && items.length > 0 && ( + + )}
- - {/* Items - улучшенное расположение */} -
- {items.length === 0 ? ( -
- Нет элементов для отображения -
- ) : ( -
- {items.map(item => ( -
- {type === 'gateway' ? renderGatewayCard(item) : - type === 'interface' ? renderInterfaceCard(item, serverId) : - type === 'pool' ? renderPoolCard(item) : null} -
- ))} -
- )} -
+
+ + {/* Items - улучшенное расположение */} +
+ {items.length === 0 ? ( +
+ Нет элементов для отображения +
+ ) : ( +
+ {items.map(item => ( +
+ {type === 'gateway' ? renderGatewayCard(item) : + type === 'interface' ? renderInterfaceCard(item, serverId) : + type === 'pool' ? renderPoolCard(item) : null} +
+ ))} +
+ )}
); @@ -2410,7 +2403,7 @@ function NetworkConfigManager() { const IndicatorIcon = IconDatabase; return ( -
+
{/* Левая часть: тип индикатора */} @@ -2536,7 +2529,7 @@ function NetworkConfigManager() { } return ( -
+
{/* Левая часть: тип индикатора (как в ServerCard) */} @@ -2662,7 +2655,7 @@ function NetworkConfigManager() { const displayIp = displayRemoteIp !== '—' ? displayRemoteIp : displayLocalIp; return ( -
+
{/* Левая часть: тип интерфейса (как в ServerCard) */}