"use client"; import React from "react"; import { ChatSection, ChatHandler, ChatCanvas, ChatMessages, useChatUI, ChatMessage, Message, } from "@llamaindex/chat-ui"; import { Document } from "@/hooks/use-documents"; import { CustomChatInput } from "@/components/chat_v2/ChatInputGroup"; import { ResearchMode } from "@/components/chat"; import TerminalDisplay from "@/components/chat_v2/ChatTerminal"; import ChatSourcesDisplay from "@/components/chat_v2/ChatSources"; import { CitationDisplay } from "@/components/chat_v2/ChatCitation"; import { ChatFurtherQuestions } from "@/components/chat_v2/ChatFurtherQuestions"; interface ChatInterfaceProps { handler: ChatHandler; onDocumentSelectionChange?: (documents: Document[]) => void; selectedDocuments?: Document[]; onConnectorSelectionChange?: (connectorTypes: string[]) => void; selectedConnectors?: string[]; searchMode?: "DOCUMENTS" | "CHUNKS"; onSearchModeChange?: (mode: "DOCUMENTS" | "CHUNKS") => void; researchMode?: ResearchMode; onResearchModeChange?: (mode: ResearchMode) => void; } function ChatMessageDisplay({ message, isLast, }: { message: Message; isLast: boolean; }) { return ( {message.role === "assistant" ? (
{isLast && }
) : ( )}
); } function ChatMessagesDisplay() { const { messages } = useChatUI(); return ( {messages.map((message, index) => ( ))} ); } export default function ChatInterface({ handler, onDocumentSelectionChange, selectedDocuments = [], onConnectorSelectionChange, selectedConnectors = [], searchMode, onSearchModeChange, researchMode, onResearchModeChange, }: ChatInterfaceProps) { return (
); }