import React from 'react' import { cn } from '@/utils/cn' import type { Attachment, ImageAttachment, BaseEvent, HandleImageAttachmentClick } from '../../types' import { AttachmentItem } from './AttachmentItem' import { ImageAttachmentItem } from './ImageAttachmentItem' export interface UserMessageProps { base?: BaseEvent attachment?: Attachment[] imageAttachment?: ImageAttachment[] loading?: boolean isUserInput: boolean showTemplate?: boolean onAttachmentClick?: (attachment: Attachment) => void onImageAttachmentClick?: HandleImageAttachmentClick } /** * 用户消息附件组件 - 展示用户上传的文件/图片,对应 next-agent UserMessage */ function InnerUserMessage({ attachment, imageAttachment, loading, isUserInput, onAttachmentClick, onImageAttachmentClick, }: UserMessageProps) { const hasImages = !!(imageAttachment?.length) const hasFiles = !!(attachment?.length) if (!hasImages && !hasFiles) return null return (
{hasImages && (
{imageAttachment!.map((img, i) => ( ))}
)} {hasFiles && (
{attachment!.map((att, i) => ( ))}
)}
) } export const UserMessage = React.memo(InnerUserMessage) export default UserMessage