Merge branch 'gzy_dev_new' into 'master'

fix:iframe切换颜色

See merge request knowledge-base-bj/deerflow-code!8
This commit is contained in:
g zy committed 2026-07-26 09:10:27 +00:00
commit a368037e81
3 files changed
+32 -3

No files matched your search

+4 -1
View File
@@ -61,7 +61,10 @@ function AppProviders({ children }: { children: React.ReactNode }) {
// 走 next-themes forcedTheme(不写 localStorage)→ 同浏览器另开的正常系统页不受影响。
const embedTheme = resolveForcedEmbedTheme(location.search);
if (embedTheme) return embedTheme;
const routeTheme = resolveForcedThemeForPath(location.pathname);
const routeTheme = resolveForcedThemeForPath(
location.pathname,
location.search,
);
if (routeTheme) return routeTheme;
if (location.pathname === "/embed/roundtable") {
const wp = readWujieProps();
@@ -31,3 +31,20 @@ test("forces light theme for landing and chats_iframe routes only", () => {
);
assert.equal(resolveForcedThemeForPath("/page/workspace/chats/new"), undefined);
});
test("honors the dark-blue theme query on chats_iframe routes", () => {
assert.equal(
resolveForcedThemeForPath(
"/page/workspace/chats_iframe/new",
"?from=iframe&theme=dark-blue",
),
"dark",
);
assert.equal(
resolveForcedThemeForPath(
"/page/workspace/chats_iframe/new",
"?from=iframe&theme=red",
),
"light",
);
});
@@ -1,3 +1,5 @@
import { resolveEmbedThemeMode } from "@/core/embed/embed-session";
export function isChatsIframeWorkspacePath(pathname: string): boolean {
return (
pathname === "/page/workspace/chats_iframe/new" ||
@@ -7,10 +9,17 @@ export function isChatsIframeWorkspacePath(pathname: string): boolean {
export function resolveForcedThemeForPath(
pathname: string,
): "light" | undefined {
if (pathname === "/landing" || isChatsIframeWorkspacePath(pathname)) {
search = "",
): "light" | "dark" | undefined {
if (pathname === "/landing") {
return "light";
}
if (isChatsIframeWorkspacePath(pathname)) {
const normalizedSearch = search.startsWith("?") ? search : `?${search}`;
const rawTheme = new URLSearchParams(normalizedSearch).get("theme")?.trim();
return rawTheme ? resolveEmbedThemeMode(rawTheme) : "light";
}
return undefined;
}