From 9189c688004b192c20d09a60dcd08ab647366d32 Mon Sep 17 00:00:00 2001 From: Sagit Date: Thu, 19 Feb 2026 09:17:04 +0000 Subject: [PATCH 1/3] fix(frontend): normalize card spacing and multiselect overflow --- vite-frontend/src/pages/forward.tsx | 8 ++++---- vite-frontend/src/pages/group.tsx | 4 ++-- vite-frontend/src/pages/limit.tsx | 4 ++-- vite-frontend/src/pages/node.tsx | 2 +- vite-frontend/src/pages/panel-sharing.tsx | 8 ++++---- vite-frontend/src/pages/tunnel.tsx | 4 ++-- vite-frontend/src/pages/user.tsx | 4 ++-- vite-frontend/src/shadcn-bridge/heroui/select.tsx | 6 +++--- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/vite-frontend/src/pages/forward.tsx b/vite-frontend/src/pages/forward.tsx index 3c8f70d..5a0a9e3 100644 --- a/vite-frontend/src/pages/forward.tsx +++ b/vite-frontend/src/pages/forward.tsx @@ -1262,7 +1262,7 @@ export default function ForwardPage() { key={forward.id} className="group shadow-sm border border-divider hover:shadow-md transition-shadow duration-200" > - +
{selectMode && ( - +
{/* 地址信息 */}
@@ -1667,7 +1667,7 @@ export default function ForwardPage() { key={userGroup.userId || "unknown"} className="shadow-sm border border-divider w-full overflow-hidden" > - +
@@ -1709,7 +1709,7 @@ export default function ForwardPage() {
- + {userGroup.tunnelGroups.map((tunnelGroup) => ( {(item) => {item.name}} -

+

当前已选: {Array.from(selectedTunnelKeys) .map((id) => tunnelNameMap.get(Number(id)) || id) @@ -824,7 +824,7 @@ export default function GroupPage() { > {(item) => {item.user}} -

+

当前已选: {Array.from(selectedUserKeys) .map((id) => userNameMap.get(Number(id)) || id) diff --git a/vite-frontend/src/pages/limit.tsx b/vite-frontend/src/pages/limit.tsx index 09b4fda..3d260ec 100644 --- a/vite-frontend/src/pages/limit.tsx +++ b/vite-frontend/src/pages/limit.tsx @@ -237,7 +237,7 @@ export default function LimitPage() { key={rule.id} className="shadow-sm border border-gray-200 dark:border-gray-700" > - +

@@ -253,7 +253,7 @@ export default function LimitPage() {

- +
diff --git a/vite-frontend/src/pages/node.tsx b/vite-frontend/src/pages/node.tsx index 788aba2..6922162 100644 --- a/vite-frontend/src/pages/node.tsx +++ b/vite-frontend/src/pages/node.tsx @@ -1155,7 +1155,7 @@ export default function NodePage() { IP -
+
{node.serverIpV4?.trim() || node.serverIpV6?.trim() ? (
diff --git a/vite-frontend/src/pages/panel-sharing.tsx b/vite-frontend/src/pages/panel-sharing.tsx index 7361157..3216087 100644 --- a/vite-frontend/src/pages/panel-sharing.tsx +++ b/vite-frontend/src/pages/panel-sharing.tsx @@ -420,7 +420,7 @@ export default function PanelSharingPage() { key={share.id} className="border border-divider shadow-sm" > - +

{share.name}

- +

端口范围: {share.portRangeStart} -{" "} {share.portRangeEnd} @@ -535,13 +535,13 @@ export default function PanelSharingPage() { key={node.nodeId} className="border border-divider shadow-sm" > - +

{node.nodeName}

绑定 {node.activeBindingNum || 0}
- + {node.syncError && (
{node.syncError === "provider_share_deleted" diff --git a/vite-frontend/src/pages/tunnel.tsx b/vite-frontend/src/pages/tunnel.tsx index ef27274..347fdd3 100644 --- a/vite-frontend/src/pages/tunnel.tsx +++ b/vite-frontend/src/pages/tunnel.tsx @@ -742,7 +742,7 @@ export default function TunnelPage() { key={tunnel.id} className="group shadow-sm border border-divider hover:shadow-md transition-shadow duration-200" > - +
{selectMode && ( - +
{/* 拓扑结构 */}
diff --git a/vite-frontend/src/pages/user.tsx b/vite-frontend/src/pages/user.tsx index e1296fb..b4e9841 100644 --- a/vite-frontend/src/pages/user.tsx +++ b/vite-frontend/src/pages/user.tsx @@ -690,7 +690,7 @@ export default function UserPage() { key={user.id} className="shadow-sm border border-divider hover:shadow-md transition-shadow duration-200" > - +

@@ -713,7 +713,7 @@ export default function UserPage() {

- +
{/* 流量信息 */}
diff --git a/vite-frontend/src/shadcn-bridge/heroui/select.tsx b/vite-frontend/src/shadcn-bridge/heroui/select.tsx index 56a7aad..80144fc 100644 --- a/vite-frontend/src/shadcn-bridge/heroui/select.tsx +++ b/vite-frontend/src/shadcn-bridge/heroui/select.tsx @@ -240,7 +240,7 @@ export function Select({ {selectionMode === "multiple" ? (
({ aria-controls={`${generatedId}-listbox`} aria-expanded={isExpanded} className={cn( - "flex w-full items-center gap-2 px-3 py-2 text-left", + "flex w-full min-w-0 items-center gap-2 overflow-hidden px-3 py-2 text-left", classNames?.trigger, )} disabled={isDisabled} @@ -259,7 +259,7 @@ export function Select({ > 0 ? "text-foreground" : "text-default-500", )} From d1460ab9c721a8d88e98293b7b0e039db17e8ab0 Mon Sep 17 00:00:00 2001 From: Sagit Date: Thu, 19 Feb 2026 09:52:14 +0000 Subject: [PATCH 2/3] fix(frontend): tighten remaining card header spacing --- vite-frontend/src/pages/forward.tsx | 2 +- vite-frontend/src/pages/limit.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vite-frontend/src/pages/forward.tsx b/vite-frontend/src/pages/forward.tsx index 5a0a9e3..3dfbf81 100644 --- a/vite-frontend/src/pages/forward.tsx +++ b/vite-frontend/src/pages/forward.tsx @@ -1667,7 +1667,7 @@ export default function ForwardPage() { key={userGroup.userId || "unknown"} className="shadow-sm border border-divider w-full overflow-hidden" > - +
diff --git a/vite-frontend/src/pages/limit.tsx b/vite-frontend/src/pages/limit.tsx index 3d260ec..67ba871 100644 --- a/vite-frontend/src/pages/limit.tsx +++ b/vite-frontend/src/pages/limit.tsx @@ -237,7 +237,7 @@ export default function LimitPage() { key={rule.id} className="shadow-sm border border-gray-200 dark:border-gray-700" > - +

From c4d807f1c432e372b205604b4fcad52f6ca6645d Mon Sep 17 00:00:00 2001 From: Sagit Date: Thu, 19 Feb 2026 10:16:59 +0000 Subject: [PATCH 3/3] fix(frontend): align card body spacing with node cards --- vite-frontend/src/pages/forward.tsx | 2 +- vite-frontend/src/pages/limit.tsx | 4 ++-- vite-frontend/src/pages/tunnel.tsx | 2 +- vite-frontend/src/pages/user.tsx | 2 +- vite-frontend/src/shadcn-bridge/heroui/card.tsx | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vite-frontend/src/pages/forward.tsx b/vite-frontend/src/pages/forward.tsx index 3dfbf81..036b242 100644 --- a/vite-frontend/src/pages/forward.tsx +++ b/vite-frontend/src/pages/forward.tsx @@ -1260,7 +1260,7 @@ export default function ForwardPage() { return (
diff --git a/vite-frontend/src/pages/limit.tsx b/vite-frontend/src/pages/limit.tsx index 67ba871..a0336c4 100644 --- a/vite-frontend/src/pages/limit.tsx +++ b/vite-frontend/src/pages/limit.tsx @@ -235,7 +235,7 @@ export default function LimitPage() { {rules.map((rule) => (
@@ -253,7 +253,7 @@ export default function LimitPage() {
- +
diff --git a/vite-frontend/src/pages/tunnel.tsx b/vite-frontend/src/pages/tunnel.tsx index 347fdd3..372fb2f 100644 --- a/vite-frontend/src/pages/tunnel.tsx +++ b/vite-frontend/src/pages/tunnel.tsx @@ -740,7 +740,7 @@ export default function TunnelPage() { {(listeners) => (
diff --git a/vite-frontend/src/pages/user.tsx b/vite-frontend/src/pages/user.tsx index b4e9841..a196dab 100644 --- a/vite-frontend/src/pages/user.tsx +++ b/vite-frontend/src/pages/user.tsx @@ -688,7 +688,7 @@ export default function UserPage() { return (
diff --git a/vite-frontend/src/shadcn-bridge/heroui/card.tsx b/vite-frontend/src/shadcn-bridge/heroui/card.tsx index 640f8ee..ec1bda6 100644 --- a/vite-frontend/src/shadcn-bridge/heroui/card.tsx +++ b/vite-frontend/src/shadcn-bridge/heroui/card.tsx @@ -16,5 +16,5 @@ export function CardHeader({ className, ...props }: React.ComponentProps<"div">) } export function CardBody({ className, ...props }: React.ComponentProps<"div">) { - return ; + return ; }