diff --git a/frontend/src/NetworkConfigManager.jsx b/frontend/src/NetworkConfigManager.jsx index 814668e..27e7e27 100644 --- a/frontend/src/NetworkConfigManager.jsx +++ b/frontend/src/NetworkConfigManager.jsx @@ -2242,92 +2242,122 @@ function NetworkConfigManager() { const isUnassigned = serverId === '__unassigned__'; return ( -
- {/* Server header - более заметный и читаемый */} +
+ {/* Server header - улучшенная структура с четкой иерархией */}
-
-
- {isUnassigned ? ( - <> - - - -
-

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

-
- - ) : ( - <> - - - -
-
-

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

- {server?.dns && ( - - {server.dns} - - )} - {server?.ip && ( - - {server.ip} - - )} - {server?.country && ( - - {countryToFlag(server.country)} {server.country} - - )} - {server?.provider && ( - - {server.provider} - - )} +
+
+ {/* Левая часть: основная информация */} +
+ {isUnassigned ? ( + <> + + + +
+

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

-
- - )} -
-
- - {items.length} {type === 'gateway' ? (items.length === 1 ? 'gateway' : 'gateways') : (items.length === 1 ? 'интерфейс' : 'интерфейсов')} - - {type === 'interface' && !isUnassigned && items.length > 0 && ( - - )} + + ) : ( + <> + + + +
+ {/* Основная строка: название сервера */} +
+

+ {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} + +
+ )} +
+
+ + )} +
+ + {/* Правая часть: счетчик и действия */} +
+ + {items.length} {type === 'gateway' ? (items.length === 1 ? 'gateway' : 'gateways') : (items.length === 1 ? 'интерфейс' : 'интерфейсов')} + + {type === 'interface' && !isUnassigned && items.length > 0 && ( + + )} +
-
- - {/* Items */} -
-
- {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} +
+ ))} +
+ )}