From 6a280ef7c6c387ef87079f30c5d7bb04166e4eb1 Mon Sep 17 00:00:00 2001 From: wusumac <736139669@qq.com> Date: Sun, 2 Aug 2026 23:45:11 +0800 Subject: [PATCH] fix(web): treat any non-public origin as the LAN connection in the switch row --- web/src/routes/settings/general.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/web/src/routes/settings/general.tsx b/web/src/routes/settings/general.tsx index eb71e3a2..f14f5591 100644 --- a/web/src/routes/settings/general.tsx +++ b/web/src/routes/settings/general.tsx @@ -39,14 +39,18 @@ function ConnectionSwitch() { return null } - let lanOrigin: string + let publicOrigin: string | null = null try { - lanOrigin = new URL(info.lanUrl).origin + publicOrigin = info.publicUrl ? new URL(info.publicUrl).origin : null } catch { - return null + publicOrigin = null } const currentOrigin = typeof window !== 'undefined' ? window.location.origin : '' - const isOnLan = currentOrigin === lanOrigin + // Anything other than the public domain counts as the alternative + // (LAN) connection — this also covers IP-based access like + // http://192.168.x.x:3006 even when the configured lanUrl uses a + // hostname. + const isOnLan = currentOrigin !== '' && currentOrigin !== publicOrigin const target = isOnLan ? info.publicUrl : info.lanUrl if (!target) { return null