{"version":3,"file":"MessageContent.mjs","names":["Flexbox"],"sources":["../../../../src/chat/ChatItem/components/MessageContent.tsx"],"sourcesContent":["import { cx, useResponsive } from 'antd-style';\nimport { memo, type ReactNode, useMemo } from 'react';\n\nimport { type ChatItemProps } from '@/chat/ChatItem';\nimport EditableMessage from '@/chat/EditableMessage';\nimport { Flexbox } from '@/Flex';\nimport { type MarkdownProps } from '@/Markdown';\n\nimport { styles } from '../style';\n\nexport interface MessageContentProps {\n  editing?: ChatItemProps['editing'];\n  fontSize?: number;\n  markdownProps?: Omit<MarkdownProps, 'className' | 'style' | 'children'>;\n  message?: ReactNode;\n  messageExtra?: ChatItemProps['messageExtra'];\n  onChange?: ChatItemProps['onChange'];\n  onDoubleClick?: ChatItemProps['onDoubleClick'];\n  onEditingChange?: ChatItemProps['onEditingChange'];\n  placement?: ChatItemProps['placement'];\n  primary?: ChatItemProps['primary'];\n  renderMessage?: ChatItemProps['renderMessage'];\n  text?: ChatItemProps['text'];\n  variant?: ChatItemProps['variant'];\n}\n\nconst MessageContent = memo<MessageContentProps>(\n  ({\n    editing,\n    onChange,\n    onEditingChange,\n    text,\n    message,\n    placement,\n    messageExtra,\n    renderMessage,\n    variant,\n    primary,\n    onDoubleClick,\n    fontSize,\n    markdownProps,\n  }) => {\n    // placement and primary are part of the interface but not used in this component\n    void placement;\n    void primary;\n    const { mobile } = useResponsive();\n\n    const messageClassName = useMemo(() => {\n      if (variant === 'bubble') return styles.messageBubble;\n      // For docs variant, we need title info, but we don't have it here\n      // Use withoutTitle as default\n      return styles.messageDocsWithoutTitle;\n    }, [variant]);\n\n    const editingContainerClassName = useMemo(() => {\n      return variant === 'docs' ? styles.editingContainerDocs : styles.editingContainer;\n    }, [variant]);\n\n    const content = (\n      <EditableMessage\n        fullFeaturedCodeBlock\n        classNames={{ input: styles.editingInput }}\n        editButtonSize={'small'}\n        editing={editing}\n        fontSize={fontSize}\n        markdownProps={markdownProps}\n        openModal={mobile ? editing : undefined}\n        text={text}\n        value={message ? String(message) : ''}\n        onChange={onChange}\n        onEditingChange={onEditingChange}\n      />\n    );\n    const messageContent = renderMessage ? renderMessage(content) : content;\n\n    return (\n      <Flexbox\n        className={cx(messageClassName, editing && editingContainerClassName)}\n        onDoubleClick={onDoubleClick}\n      >\n        {messageContent}\n        {messageExtra && !editing ? (\n          <div className={styles.messageExtra}>{messageExtra}</div>\n        ) : null}\n      </Flexbox>\n    );\n  },\n);\n\nexport default MessageContent;\n"],"mappings":";;;;;;;AA0BA,MAAM,iBAAiB,MACpB,EACC,SACA,UACA,iBACA,MACA,SACA,WACA,cACA,eACA,SACA,SACA,eACA,UACA,oBACI;CAIJ,MAAM,EAAE,WAAW,eAAe;CAElC,MAAM,mBAAmB,cAAc;AACrC,MAAI,YAAY,SAAU,QAAO,OAAO;AAGxC,SAAO,OAAO;IACb,CAAC,QAAQ,CAAC;CAEb,MAAM,4BAA4B,cAAc;AAC9C,SAAO,YAAY,SAAS,OAAO,uBAAuB,OAAO;IAChE,CAAC,QAAQ,CAAC;CAEb,MAAM,UACJ,oBAAC,iBAAD;EACE,uBAAA;EACA,YAAY,EAAE,OAAO,OAAO,cAAc;EAC1C,gBAAgB;EACP;EACC;EACK;EACf,WAAW,SAAS,UAAU,KAAA;EACxB;EACN,OAAO,UAAU,OAAO,QAAQ,GAAG;EACzB;EACO;EACjB,CAAA;CAEJ,MAAM,iBAAiB,gBAAgB,cAAc,QAAQ,GAAG;AAEhE,QACE,qBAACA,mBAAD;EACE,WAAW,GAAG,kBAAkB,WAAW,0BAA0B;EACtD;YAFjB,CAIG,gBACA,gBAAgB,CAAC,UAChB,oBAAC,OAAD;GAAK,WAAW,OAAO;aAAe;GAAmB,CAAA,GACvD,KACI;;EAGf"}