@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
45 lines (43 loc) • 1.77 kB
JavaScript
import FlexBasic_default from "../../../Flex/FlexBasic.mjs";
import { styles } from "../style.mjs";
import EditableMessage_default from "../../EditableMessage/EditableMessage.mjs";
import { memo, useMemo } from "react";
import { jsx, jsxs } from "react/jsx-runtime";
import { cx, useResponsive } from "antd-style";
//#region src/chat/ChatItem/components/MessageContent.tsx
const MessageContent = memo(({ editing, onChange, onEditingChange, text, message, placement, messageExtra, renderMessage, variant, primary, onDoubleClick, fontSize, markdownProps }) => {
const { mobile } = useResponsive();
const messageClassName = useMemo(() => {
if (variant === "bubble") return styles.messageBubble;
return styles.messageDocsWithoutTitle;
}, [variant]);
const editingContainerClassName = useMemo(() => {
return variant === "docs" ? styles.editingContainerDocs : styles.editingContainer;
}, [variant]);
const content = /* @__PURE__ */ jsx(EditableMessage_default, {
classNames: { input: styles.editingInput },
editButtonSize: "small",
editing,
fontSize,
fullFeaturedCodeBlock: true,
markdownProps,
onChange,
onEditingChange,
openModal: mobile ? editing : void 0,
text,
value: message ? String(message) : ""
});
const messageContent = renderMessage ? renderMessage(content) : content;
return /* @__PURE__ */ jsxs(FlexBasic_default, {
className: cx(messageClassName, editing && editingContainerClassName),
onDoubleClick,
children: [messageContent, messageExtra && !editing ? /* @__PURE__ */ jsx("div", {
className: styles.messageExtra,
children: messageExtra
}) : null]
});
});
var MessageContent_default = MessageContent;
//#endregion
export { MessageContent_default as default };
//# sourceMappingURL=MessageContent.mjs.map