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 (