import { Sidebar } from "@/app/sidebar"; import { auth } from "@/auth"; import { type Metadata } from "next"; import { Chat } from "@/app/chat"; import { type Chat as ChatType } from "@/lib/types"; import { kv } from "@vercel/kv"; import { Message } from "ai-connector"; export const runtime = "edge"; export const preferredRegion = "home"; export interface ChatPageProps { params: { id: string; }; } export async function generateMetadata({ params, }: ChatPageProps): Promise { const session = await auth(); const chat = await getChat(params.id, session?.user?.email ?? ""); return { title: chat?.title.slice(0, 50) ?? "Chat", }; } export default async function ChatPage({ params }: ChatPageProps) { const session = await auth(); const chat = await getChat(params.id, session?.user?.email ?? ""); return (
); } ChatPage.displayName = "ChatPage"; async function getChat(id: string, userId: string) { const chat = await kv.hgetall(`chat:${id}`); if (!chat) { throw new Error("Not found"); } if (userId && chat.userId !== userId) { throw new Error("Unauthorized"); } return chat; }