11import { cookies } from 'next/headers' ;
2- import { notFound } from 'next/navigation' ;
2+ import { notFound , redirect } from 'next/navigation' ;
33
44import { auth } from '@/app/(auth)/auth' ;
55import { Chat } from '@/components/chat' ;
66import { getChatById , getMessagesByChatId } from '@/lib/db/queries' ;
77import { DataStreamHandler } from '@/components/data-stream-handler' ;
88import { DEFAULT_CHAT_MODEL } from '@/lib/ai/models' ;
9- import { DBMessage } from '@/lib/db/schema' ;
10- import { Attachment , UIMessage } from 'ai' ;
9+ import type { DBMessage } from '@/lib/db/schema' ;
10+ import type { Attachment , UIMessage } from 'ai' ;
1111
1212export default async function Page ( props : { params : Promise < { id : string } > } ) {
1313 const params = await props . params ;
@@ -20,8 +20,12 @@ export default async function Page(props: { params: Promise<{ id: string }> }) {
2020
2121 const session = await auth ( ) ;
2222
23+ if ( ! session ) {
24+ redirect ( '/api/auth/guest' ) ;
25+ }
26+
2327 if ( chat . visibility === 'private' ) {
24- if ( ! session || ! session . user ) {
28+ if ( ! session . user ) {
2529 return notFound ( ) ;
2630 }
2731
@@ -59,6 +63,7 @@ export default async function Page(props: { params: Promise<{ id: string }> }) {
5963 selectedChatModel = { DEFAULT_CHAT_MODEL }
6064 selectedVisibilityType = { chat . visibility }
6165 isReadonly = { session ?. user ?. id !== chat . userId }
66+ session = { session }
6267 />
6368 < DataStreamHandler id = { id } />
6469 </ >
@@ -73,6 +78,7 @@ export default async function Page(props: { params: Promise<{ id: string }> }) {
7378 selectedChatModel = { chatModelFromCookie . value }
7479 selectedVisibilityType = { chat . visibility }
7580 isReadonly = { session ?. user ?. id !== chat . userId }
81+ session = { session }
7682 />
7783 < DataStreamHandler id = { id } />
7884 </ >
0 commit comments