khronoz's picture
V.0.3.1.2 πŸ› Bugfixes (#31)
4071fe2 unverified
"use client";
import { useChat } from "ai/react";
import { ChatInput, ChatMessages } from "@/app/components/ui/chat";
import { ChatSelection } from "@/app/components/ui/chat";
import { AutofillQuestion } from "@/app/components/ui/autofill-prompt";
import { useSession } from "next-auth/react";
import { useState } from "react";
import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
export default function ChatSection() {
const { data: session } = useSession();
const supabaseAccessToken = session?.supabaseAccessToken;
const [collSelectedId, setCollSelectedId] = useState<string>('');
const [collSelectedName, setCollSelectedName] = useState<string>('');
const {
messages,
input,
isLoading,
handleSubmit,
handleInputChange,
reload,
stop,
} = useChat({
api: process.env.NEXT_PUBLIC_CHAT_API,
headers: {
// Add the access token to the request headers
'Authorization': `Bearer ${supabaseAccessToken}`,
},
body: {
// Add the selected document to the request body
collection_id: collSelectedId,
},
});
return (
<div className="space-y-4 max-w-5xl w-full relative">
<ToastContainer />
{collSelectedId ?
(
<>
<ChatMessages
messages={messages}
isLoading={isLoading}
reload={reload}
stop={stop}
/>
<AutofillQuestion
collSelectedId={collSelectedId}
collSelectedName={collSelectedName}
messages={messages}
isLoading={isLoading}
handleSubmit={handleSubmit}
handleInputChange={handleInputChange}
handleCollIdSelect={setCollSelectedId}
input={input}
/>
<ChatInput
input={input}
handleSubmit={handleSubmit}
handleInputChange={handleInputChange}
isLoading={isLoading}
/>
</>
)
:
<ChatSelection
collSelectedId={collSelectedId}
collSelectedName={collSelectedName}
handleCollIdSelect={setCollSelectedId}
handleCollNameSelect={setCollSelectedName}
/>
}
</div>
);
}