import { useEffect, useRef } from "react"; import ChatActions from "./chat-actions"; import ChatMessage from "./chat-message"; import { ChatHandler } from "./chat.interface"; export default function ChatMessages( props: Pick, ) { const scrollableChatContainerRef = useRef(null); const messageLength = props.messages.length; const lastMessage = props.messages[messageLength - 1]; const scrollToBottom = () => { if (scrollableChatContainerRef.current) { scrollableChatContainerRef.current.scrollTop = scrollableChatContainerRef.current.scrollHeight; } }; const isLastMessageFromAssistant = messageLength > 0 && lastMessage?.role !== "user"; const showReload = props.reload && !props.isLoading && isLastMessageFromAssistant; const showStop = props.stop && props.isLoading; useEffect(() => { scrollToBottom(); }, [messageLength, lastMessage]); return (
{props.messages.map((m) => ( ))}
); }