import { Suspense } from "react"; import { ChatShell } from "@/components/chat-shell"; import { CanvasLogoLoadingView } from "@/components/canvas/canvas-logo-loading"; import { DataStreamProvider } from "@/components/data-stream-provider"; import { auth } from "../(auth)/auth"; import { getNavLinks, getSiteSettings, getTutorialVideos, } from "@/lib/db/queries"; export const dynamic = "force-dynamic"; export default function Layout({ children }: { children: React.ReactNode }) { return ( } > {children} ); } async function SidebarWrapper({ children }: { children: React.ReactNode }) { const [session, siteSettings, navLinks, tutorialVideos] = await Promise.all([ auth(), getSiteSettings(), getNavLinks(), getTutorialVideos(), ]); const settingsHref = session?.user?.type === "admin" ? "/settings" : session?.user?.type === "agent_admin" ? "/settings/agent-workflow" : null; return ( ({ id: link.id, name: link.name, url: link.url, order: link.order, toolboxGroup: link.toolboxGroup || 1, }))} toolbox1Name={siteSettings.toolbox1Name || "工具箱"} toolbox1Enabled={siteSettings.toolbox1Enabled ?? true} toolbox2Name={siteSettings.toolbox2Name || "工具箱2"} toolbox2Enabled={siteSettings.toolbox2Enabled ?? false} tutorialVideos={tutorialVideos.map((v) => ({ id: v.id, title: v.title, videoUrl: v.videoUrl, coverUrl: v.coverUrl, description: v.description, order: v.order, }))} tutorialEnabled={siteSettings.tutorialEnabled ?? false} rankingEnabled={siteSettings.rankingEnabled ?? true} productPlanningEnabled={(siteSettings as any).productPlanningEnabled ?? true} agentEnabled={(siteSettings as any).agentEnabled ?? true} videoCanvasEnabled={(siteSettings as any).videoCanvasEnabled ?? true} > {children} ); }