From 16adb906538deed06d7e4ad5058909341dbdc5e3 Mon Sep 17 00:00:00 2001 From: ZyGuo Date: Mon, 1 Jun 2026 16:13:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E9=99=86=E5=90=8E=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E4=BD=8D=E7=BD=AE=E5=A2=9E=E5=8A=A0iframe=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend-web/src/pages/LoginPage.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/frontend-web/src/pages/LoginPage.tsx b/frontend-web/src/pages/LoginPage.tsx index 16ee95b9..1efa069d 100644 --- a/frontend-web/src/pages/LoginPage.tsx +++ b/frontend-web/src/pages/LoginPage.tsx @@ -11,6 +11,9 @@ import { } from "@/core/page-layout/sidebar-enabled"; const DEFAULT_USERNAME = "guest"; +const IFRAME_LOGIN_SOURCE = "iframe"; +const DEFAULT_REDIRECT_PATH = "/page/workspace/chats/new"; +const IFRAME_REDIRECT_PATH = "/page/workspace/chats_iframe/new"; type LoginStatus = "loading" | "success" | "error"; @@ -22,6 +25,13 @@ export default function LoginPage() { () => isSidebarEnabledFromSearch(searchParams.toString()), [searchParams], ); + const redirectPath = useMemo( + () => + searchParams.get("from") === IFRAME_LOGIN_SOURCE + ? IFRAME_REDIRECT_PATH + : DEFAULT_REDIRECT_PATH, + [searchParams], + ); const resolvedUsername = useMemo(() => { const raw = username?.trim(); return raw && raw.length > 0 ? raw : DEFAULT_USERNAME; @@ -43,7 +53,7 @@ export default function LoginPage() { setStoredAuth(auth); persistSidebarEnabled(sidebarEnabled); setStatus("success"); - router.replace("/page/workspace/chats/new"); + router.replace(redirectPath); } catch (error) { if (cancelled) { return; @@ -59,7 +69,7 @@ export default function LoginPage() { return () => { cancelled = true; }; - }, [resolvedUsername, router, sidebarEnabled]); + }, [redirectPath, resolvedUsername, router, sidebarEnabled]); return (