import type { Message } from "@langchain/langgraph-sdk"; import { memo } from "react"; import { Message as AIElementMessage, MessageContent as AIElementMessageContent, MessageResponse as AIElementMessageResponse, } from "@/components/ai-elements/message"; import { useRehypeSplitWordsIntoSpans } from "@/core/rehype"; import { cn } from "@/lib/utils"; import { MessageGroup } from "./message-group"; import { extractContentFromMessage, hasReasoning, hasToolCalls } from "./utils"; export function MessageListItem({ className, message, messagesInGroup, isLoading, }: { className?: string; message: Message; messagesInGroup: Message[]; isLoading?: boolean; }) { return ( ); } function MessageContent_({ className, message, messagesInGroup, isLoading = false, }: { className?: string; message: Message; messagesInGroup: Message[]; isLoading?: boolean; }) { const rehypePlugins = useRehypeSplitWordsIntoSpans(isLoading); return ( {hasReasoning(message) && ( )} {extractContentFromMessage(message)} {hasToolCalls(message) && ( )} ); } const MessageContent = memo(MessageContent_);