diff --git a/frontend/src/components/workspace/chats/use-thread-chat.ts b/frontend/src/components/workspace/chats/use-thread-chat.ts index 4c2cddc5049..3a324d5b949 100644 --- a/frontend/src/components/workspace/chats/use-thread-chat.ts +++ b/frontend/src/components/workspace/chats/use-thread-chat.ts @@ -3,6 +3,7 @@ import { useParams, usePathname, useSearchParams } from "next/navigation"; import { useCallback, useEffect, useRef, useState } from "react"; +import { SHOWCASE_ROUTE_PREFIX } from "@/core/threads/static-demo"; import { uuid } from "@/core/utils/uuid"; export const THREAD_CHAT_RESET_EVENT = "deer-flow:thread-chat-reset"; @@ -120,7 +121,7 @@ export function useThreadChat() { }, []); const isMock = - actualPathname.startsWith("/showcase/") || + actualPathname.startsWith(`${SHOWCASE_ROUTE_PREFIX}/`) || searchParams.get("mock") === "true"; return { threadId: isNewPath ? (newThreadIdRef.current ?? threadId) : threadId, diff --git a/frontend/src/core/threads/static-demo.ts b/frontend/src/core/threads/static-demo.ts index e0894af7307..31c3d794ae4 100644 --- a/frontend/src/core/threads/static-demo.ts +++ b/frontend/src/core/threads/static-demo.ts @@ -131,8 +131,11 @@ export function isDemoThreadId(threadId: string): boolean { return DEMO_THREAD_ID_SET.has(threadId); } +/** Route prefix for the public, read-only showcase demo thread pages. */ +export const SHOWCASE_ROUTE_PREFIX = "/showcase"; + export function pathOfPublicDemoThread(threadId: string): string { - return `/showcase/${encodeURIComponent(threadId)}`; + return `${SHOWCASE_ROUTE_PREFIX}/${encodeURIComponent(threadId)}`; } export type ThreadSearchParams = NonNullable<