import { cookies } from "next/headers";
import Script from "next/script";
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";
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}
>
{children}
);
}