import type { Message } from "@langchain/langgraph-sdk"; import { memo } from "react"; import { Message as AIElementMessage, MessageContent as AIElementMessageContent, MessageResponse as AIElementMessageResponse, MessageToolbar, } from "@/components/ai-elements/message"; import { extractContentFromMessage, hasReasoning, hasToolCalls, } from "@/core/messages/utils"; import { useRehypeSplitWordsIntoSpans } from "@/core/rehype"; import { cn } from "@/lib/utils"; import { CopyButton } from "../copy-button"; import { MessageGroup } from "./message-group"; 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_);