"use client"; import { ChatMessage as LlamaIndexChatMessage, ChatMessages as LlamaIndexChatMessages, type Message, useChatUI, } from "@llamaindex/chat-ui"; import { useEffect, useRef } from "react"; import { AnimatedEmptyState } from "@/components/chat/AnimatedEmptyState"; import { CitationDisplay } from "@/components/chat/ChatCitation"; import { ChatFurtherQuestions } from "@/components/chat/ChatFurtherQuestions"; import ChatSourcesDisplay from "@/components/chat/ChatSources"; import TerminalDisplay from "@/components/chat/ChatTerminal"; import { languageRenderers } from "@/components/chat/CodeBlock"; export function ChatMessagesUI() { const { messages } = useChatUI(); return ( {messages.map((message, index) => ( ))} ); } function ChatMessageUI({ message, isLast }: { message: Message; isLast: boolean }) { const bottomRef = useRef(null); useEffect(() => { if (isLast && bottomRef.current) { bottomRef.current.scrollIntoView({ behavior: "smooth" }); } }, [isLast]); return ( {message.role === "assistant" ? (
{isLast && }
) : ( )} ); }