import { Message, OpenAIModel, OpenAIModelNames } from "@/types"; import { FC, useEffect, useRef } from "react"; import { ModelSelect } from "../ModelSelect"; import { ChatInput } from "./ChatInput"; import { ChatLoader } from "./ChatLoader"; import { ChatMessage } from "./ChatMessage"; interface Props { model: OpenAIModel; messages: Message[]; loading: boolean; onSend: (message: Message) => void; onSelect: (model: OpenAIModel) => void; } export const Chat: FC = ({ model, messages, loading, onSend, onSelect }) => { const messagesEndRef = useRef(null); const scrollToBottom = () => { messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }); }; useEffect(() => { scrollToBottom(); }, [messages]); return (
{messages.length === 0 ? ( <>
Chatbot UI Pro
) : ( <>
Model: {OpenAIModelNames[model]}
{messages.map((message, index) => (
))} {loading && }
)}
); };