chatbot-template/app/(chat)/chat/[id]/page.tsx

35 lines
895 B
TypeScript

import { CoreMessage } from "ai";
import { notFound } from "next/navigation";
import { auth } from "@/app/(auth)/auth";
import { Chat as PreviewChat } from "@/components/custom/chat";
import { getChatById } from "@/db/queries";
import { Chat } from "@/db/schema";
import { convertToUIMessages, generateUUID } from "@/lib/utils";
export default async function Page({ params }: { params: any }) {
const { id } = params;
const chatFromDb = await getChatById({ id });
if (!chatFromDb) {
notFound();
}
// type casting
const chat: Chat = {
...chatFromDb,
messages: convertToUIMessages(chatFromDb.messages as Array<CoreMessage>),
};
const session = await auth();
if (!session || !session.user) {
return notFound();
}
if (session.user.id !== chat.userId) {
return notFound();
}
return <PreviewChat id={chat.id} initialMessages={chat.messages} />;
}