ai-chatbot/app/(chat)/page.tsx

52 lines
1.6 KiB
TypeScript

import { Suspense } from "react";
import { LovartHome } from "@/components/home/lovart-home";
import { auth } from "../(auth)/auth";
import { getSiteSettings, getSystemSetting } from "@/lib/db/queries";
export default function Page() {
return (
<Suspense fallback={<div className="flex h-dvh" />}>
<NewChatPage />
</Suspense>
);
}
async function NewChatPage() {
const [session, siteSettings, surpriseCategoriesSetting] =
await Promise.all([
auth(),
getSiteSettings(),
getSystemSetting({ key: "home_surprise_categories" }).catch(() => undefined),
]);
const surpriseCategories = Array.isArray(surpriseCategoriesSetting?.value)
? surpriseCategoriesSetting?.value
.map((item: unknown) => String(item || "").trim())
.filter(Boolean)
: ["全部", "精选"];
return (
<LovartHome
user={
session?.user
? {
id: session.user.id,
email: session.user.email,
name: session.user.name,
type: session.user.type,
}
: null
}
isAuthenticated={Boolean(session?.user && session.user.type !== "guest")}
siteName={siteSettings.siteName || "AI Chatbot"}
siteLogo={siteSettings.siteLogo || ""}
siteLogoDark={siteSettings.siteLogoDark || ""}
surpriseCategories={surpriseCategories}
heroPromoText={siteSettings.lovartPromoText}
heroPromoActionText={siteSettings.lovartPromoActionText}
heroTitleText={siteSettings.lovartHeroTitle}
heroSubtitleText={siteSettings.lovartHeroSubtitle}
/>
);
}