UNPKG

@douyinfe/semi-ui

Version:

A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.

69 lines (68 loc) 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _divider = _interopRequireDefault(require("../divider")); var _chatBox = _interopRequireDefault(require("./chatBox")); var _constants = require("@douyinfe/semi-foundation/lib/cjs/chat/constants"); var _localeConsumer = _interopRequireDefault(require("../locale/localeConsumer")); var _index = require("../index"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const { PREFIX_DIVIDER, PREFIX } = _constants.cssClasses; const { ROLE } = _constants.strings; const ChatContent = /*#__PURE__*/_react.default.memo(props => { const { chats, onMessageBadFeedback, onMessageCopy, mode, onChatsChange, onMessageDelete, onMessageGoodFeedback, onMessageReset, roleConfig, chatBoxRenderConfig, align, customMarkDownComponents, renderDivider, markdownRenderProps } = props; const [toast, contextHolder] = _index.Toast.useToast(); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, chats.map((item, index) => { const lastMessage = index === chats.length - 1; return item.role === ROLE.DIVIDER ? renderDivider ? renderDivider(item) : /*#__PURE__*/_react.default.createElement(_divider.default, { key: item.id, className: PREFIX_DIVIDER }, /*#__PURE__*/_react.default.createElement(_localeConsumer.default, { componentName: "Chat" }, locale => locale['clearContext'])) : /*#__PURE__*/_react.default.createElement(_chatBox.default, { previousMessage: index ? chats[index - 1] : undefined, toast: toast, align: align, mode: mode, key: item.id, message: item, roleConfig: roleConfig, onMessageBadFeedback: onMessageBadFeedback, onMessageCopy: onMessageCopy, onChatsChange: onChatsChange, onMessageDelete: onMessageDelete, onMessageGoodFeedback: onMessageGoodFeedback, onMessageReset: onMessageReset, lastChat: lastMessage, customMarkDownComponents: customMarkDownComponents, chatBoxRenderConfig: chatBoxRenderConfig, markdownRenderProps: markdownRenderProps }); }), /*#__PURE__*/_react.default.createElement("div", { className: `${PREFIX}-toast` }, contextHolder)); }); var _default = exports.default = ChatContent;