import { cookies } from "next/headers"; import Script from "next/script"; import { Suspense } from "react"; import { AppSidebar } from "@/components/app-sidebar"; import { DataStreamProvider } from "@/components/data-stream-provider"; import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar"; import { auth } from "../(auth)/auth"; import { TopNavbar } from "@/components/top-navbar"; import { getSiteSettings, getNavLinks, 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] = await Promise.all([ auth(), cookies(), getSiteSettings(), getNavLinks(), getTutorialVideos(), ]); const isCollapsed = cookieStore.get("sidebar_state")?.value !== "true"; 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} /> {/* Add padding-top for fixed navbar */} {children} {/* Adjust height */} ); }