From 70d17a0d57c85c7553ade3993376b76f3868799a Mon Sep 17 00:00:00 2001 From: Lemon-miaow Date: Thu, 2 Jul 2026 02:32:53 +0800 Subject: [PATCH] feat(panel): align my servers page search layout with fleet table --- panel/src/i18n/resources/en-US/servers.json | 2 + panel/src/i18n/resources/zh-CN/servers.json | 2 + panel/src/pages/MyServers.tsx | 132 ++++++++++---------- 3 files changed, 72 insertions(+), 64 deletions(-) diff --git a/panel/src/i18n/resources/en-US/servers.json b/panel/src/i18n/resources/en-US/servers.json index b4e6a21..166d9e3 100644 --- a/panel/src/i18n/resources/en-US/servers.json +++ b/panel/src/i18n/resources/en-US/servers.json @@ -5,6 +5,8 @@ "filter_status_all": "All statuses", "search_no_match": "No matching servers found.", "search_clear_btn": "Clear filters", + "servers_count": "{{count}} servers", + "servers_count_filtered": "Showing {{shown}} / {{total}} servers", "no_servers_linked": "No servers linked to you", "no_servers_hint": "Claim an unowned server you have access to, or ask an admin to provision one.", "my_servers_footer": "Servers and game types are provisioned and managed by the platform. You claim a node to operate it; raw cluster config is never exposed here.", diff --git a/panel/src/i18n/resources/zh-CN/servers.json b/panel/src/i18n/resources/zh-CN/servers.json index ef82a6b..4d614e7 100644 --- a/panel/src/i18n/resources/zh-CN/servers.json +++ b/panel/src/i18n/resources/zh-CN/servers.json @@ -5,6 +5,8 @@ "filter_status_all": "全部状态", "search_no_match": "没有匹配的服务器。", "search_clear_btn": "清除筛选", + "servers_count": "共 {{count}} 台", + "servers_count_filtered": "显示 {{shown}} / {{total}} 台", "no_servers_linked": "暂无关联的服务器", "no_servers_hint": "认领一台你拥有访问权限的服务器,或联系管理员为你分配。", "my_servers_footer": "服务器及游戏类型由平台统一管理。认领后即可操作节点,原始集群配置不会暴露在此。", diff --git a/panel/src/pages/MyServers.tsx b/panel/src/pages/MyServers.tsx index bdbce3d..f94a5bf 100644 --- a/panel/src/pages/MyServers.tsx +++ b/panel/src/pages/MyServers.tsx @@ -45,71 +45,75 @@ export function MyServers() { const paged = filtered.slice((page - 1) * PAGE_SIZE, page * PAGE_SIZE); return ( - <> -
-
- -
-

{t("my_servers_title")}

-

- {t("my_servers_subtitle")} -

-
+
+
+ +
+

{t("my_servers_title")}

+

+ {t("my_servers_subtitle")} +

- - {servers.length > 0 && cfg && ( -
-
- - { - setSearchQuery(e.target.value); - setPage(1); - }} - autoComplete="off" - spellCheck={false} - /> - {searchQuery && ( - - )} -
-
- -
-
- )}
+ {servers.length > 0 && cfg && ( +
+
+ + { + setSearchQuery(e.target.value); + setPage(1); + }} + autoComplete="off" + spellCheck={false} + /> + {searchQuery && ( + + )} +
+ + + {filtered.length === servers.length + ? t("servers_count", { count: servers.length }) + : t("servers_count_filtered", { + shown: filtered.length, + total: servers.length, + })} + +
+ )} + {loading && !data ? ( ) : error ? ( @@ -151,7 +155,7 @@ export function MyServers() { - {filtered.length > 0 && ( + {totalPages > 1 && ( { setPage(p); if (p > totalPages) setPage(totalPages); }} /> )} - +
); }