import { cookies } from "next/headers"; import { Suspense } from "react"; import { ChatShell } from "@/components/chat-shell"; import { DataStreamProvider } from "@/components/data-stream-provider"; import { auth } from "../(auth)/auth"; import { getNavLinks, getSiteSettings, getSystemSetting, getTutorialVideos, } from "@/lib/db/queries"; export default function Layout({ children }: { children: React.ReactNode }) { return ( }> {children} ); } async function SidebarWrapper({ children }: { children: React.ReactNode }) { const [session, cookieStore, siteSettings, navLinks, tutorialVideos, homeVariantSetting] = await Promise.all([ auth(), cookies(), getSiteSettings(), getNavLinks(), getTutorialVideos(), getSystemSetting({ key: "home_variant" }).catch(() => undefined), ]); const isCollapsed = cookieStore.get("sidebar_state")?.value !== "true"; const homeVariant = homeVariantSetting?.value === "lovart" ? "lovart" : "classic"; 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} ); }