From 896f2bc5f8a3a9a46faff03d32fd05203ce34351 Mon Sep 17 00:00:00 2001 From: sagit Date: Wed, 11 Feb 2026 03:07:59 +0000 Subject: [PATCH] fix(panel-sharing): display provider share deletion warnings for remote nodes Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- vite-frontend/src/pages/node.tsx | 15 ++++++++++++++- vite-frontend/src/pages/panel-sharing.tsx | 12 ++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/vite-frontend/src/pages/node.tsx b/vite-frontend/src/pages/node.tsx index 178c0b5..225e8cf 100644 --- a/vite-frontend/src/pages/node.tsx +++ b/vite-frontend/src/pages/node.tsx @@ -65,6 +65,7 @@ interface Node { status: number; isRemote?: number; remoteUrl?: string; + syncError?: string; connectionStatus: "online" | "offline"; systemInfo?: { cpuUsage: number; @@ -219,7 +220,8 @@ export default function NodePage() { const nodesData: Node[] = (res.data || []).map((node: any) => ({ ...node, inx: node.inx ?? 0, - connectionStatus: node.status === 1 ? "online" : "offline", + connectionStatus: node.syncError ? "offline" : node.status === 1 ? "online" : "offline", + syncError: node.syncError || undefined, systemInfo: null, copyLoading: false, })); @@ -1181,6 +1183,17 @@ export default function NodePage() { + {isRemoteNode && node.syncError && ( +
+ {node.syncError === "provider_share_deleted" + ? "提供方已删除该分享" + : node.syncError === "provider_share_disabled" + ? "提供方已禁用该分享" + : node.syncError === "provider_share_expired" + ? "提供方分享已过期" + : `远程同步失败: ${node.syncError}`} +
+ )} {/* 基础信息 */}
diff --git a/vite-frontend/src/pages/panel-sharing.tsx b/vite-frontend/src/pages/panel-sharing.tsx index 2b5205a..df05e73 100644 --- a/vite-frontend/src/pages/panel-sharing.tsx +++ b/vite-frontend/src/pages/panel-sharing.tsx @@ -78,6 +78,7 @@ interface RemoteUsageNode { usedPorts: number[]; bindings: RemoteUsageBinding[]; activeBindingNum: number; + syncError?: string; } export default function PanelSharingPage() { @@ -456,6 +457,17 @@ export default function PanelSharingPage() { 绑定 {node.activeBindingNum || 0} + {node.syncError && ( +
+ {node.syncError === "provider_share_deleted" + ? "提供方已删除该分享" + : node.syncError === "provider_share_disabled" + ? "提供方已禁用该分享" + : node.syncError === "provider_share_expired" + ? "提供方分享已过期" + : `远程同步失败: ${node.syncError}`} +
+ )} {node.remoteUrl &&

远程地址: {node.remoteUrl}

}

共享ID: {node.shareId || "-"}

端口范围: {node.portRangeStart > 0 && node.portRangeEnd > 0 ? `${node.portRangeStart} - ${node.portRangeEnd}` : "-"}