import type { UseStream } from "@langchain/langgraph-sdk/react"; import { Conversation, ConversationContent, } from "@/components/ai-elements/conversation"; import { groupMessages, hasContent } from "@/core/messages/utils"; import type { AgentThreadState } from "@/core/threads"; import { cn } from "@/lib/utils"; import { StreamingIndicator } from "../streaming-indicator"; import { MessageGroup } from "./message-group"; import { MessageListItem } from "./message-list-item"; import { MessageListSkeleton } from "./skeleton"; export function MessageList({ className, thread, }: { className?: string; thread: UseStream; }) { if (thread.isThreadLoading) { return ; } return ( {groupMessages( thread.messages, (groupedMessages, groupIndex, isLastGroup) => { if (groupedMessages[0] && hasContent(groupedMessages[0])) { const message = groupedMessages[0]; return ( ); } return ( ); }, thread.isLoading, )} {thread.isLoading && }
); }