@ai-group/chat-sdk 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/svg/AddChatIcon.js +5 -12
- package/dist/cjs/assets/svg/AddChatIcon.js.map +2 -2
- package/dist/cjs/components/DislikeFeedback.js +33 -25
- package/dist/cjs/components/DislikeFeedback.js.map +2 -2
- package/dist/cjs/components/FeedbackTags.js +5 -15
- package/dist/cjs/components/FeedbackTags.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +138 -86
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/index.js +189 -127
- package/dist/cjs/components/XAiChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAiChatbot/styles.js +5 -15
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +10 -10
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +61 -41
- package/dist/cjs/components/XAiConversations/index.js.map +3 -3
- package/dist/cjs/components/XAiConversations/styles.js +5 -15
- package/dist/cjs/components/XAiConversations/styles.js.map +3 -3
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +62 -53
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/cjs/components/XAiProvider/index.js +109 -98
- package/dist/cjs/components/XAiProvider/index.js.map +2 -2
- package/dist/cjs/components/XAiSDK.js +2 -2
- package/dist/cjs/components/XAiSDK.js.map +2 -2
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +22 -8
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +3 -3
- package/dist/cjs/components/XAiSender/index.js +150 -88
- package/dist/cjs/components/XAiSender/index.js.map +3 -3
- package/dist/cjs/components/XAiSender/styles.d.ts +0 -3
- package/dist/cjs/components/XAiSender/styles.js +29 -28
- package/dist/cjs/components/XAiSender/styles.js.map +2 -2
- package/dist/cjs/components/XAiWebSDKWrapper.js +3 -2
- package/dist/cjs/components/XAiWebSDKWrapper.js.map +2 -2
- package/dist/cjs/hooks/useAgentGenerator.js +3 -3
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/hooks/useXAiSDK.js +3 -2
- package/dist/cjs/hooks/useXAiSDK.js.map +2 -2
- package/dist/cjs/services/api.d.ts +14 -16
- package/dist/cjs/services/api.js +1 -1
- package/dist/cjs/services/api.js.map +2 -2
- package/dist/cjs/styles/common.js.map +2 -2
- package/dist/cjs/styles/markdown.js +5 -15
- package/dist/cjs/styles/markdown.js.map +2 -2
- package/dist/cjs/types/XAiSender.d.ts +11 -1
- package/dist/cjs/types/XAiSender.js.map +1 -1
- package/dist/cjs/utils/umdEntry.js +10 -3
- package/dist/cjs/utils/umdEntry.js.map +2 -2
- package/dist/esm/components/XAiChatbot/index.js +11 -11
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +2 -2
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.js.map +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.js +32 -13
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -1
- package/dist/esm/components/XAiSender/index.js +85 -55
- package/dist/esm/components/XAiSender/index.js.map +1 -1
- package/dist/esm/components/XAiSender/styles.d.ts +0 -3
- package/dist/esm/components/XAiSender/styles.js +3 -5
- package/dist/esm/components/XAiSender/styles.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.js +4 -3
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/services/api.d.ts +14 -16
- package/dist/esm/services/api.js +1 -1
- package/dist/esm/services/api.js.map +1 -1
- package/dist/esm/styles/common.js.map +1 -1
- package/dist/esm/types/XAiSender.d.ts +11 -1
- package/dist/esm/types/XAiSender.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +30 -26
|
@@ -22,7 +22,6 @@ import XAiSender from "../XAiSender";
|
|
|
22
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
23
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
24
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
25
|
-
var styles = useStyles();
|
|
26
25
|
var md = new MarkdownIt({
|
|
27
26
|
html: true,
|
|
28
27
|
linkify: true,
|
|
@@ -167,12 +166,12 @@ export var ActionHeader = function ActionHeader(_ref) {
|
|
|
167
166
|
className: styles.executeContent,
|
|
168
167
|
children: execute.map(function (action, idx) {
|
|
169
168
|
var _action$extra, _action$extra2, _action$extra3;
|
|
170
|
-
var
|
|
169
|
+
var thinkIcon2 = (action === null || action === void 0 ? void 0 : action.expandIcon) || (action === null || action === void 0 || (_action$extra = action.extra) === null || _action$extra === void 0 ? void 0 : _action$extra.expandIcon) || (action === null || action === void 0 || (_action$extra2 = action.extra) === null || _action$extra2 === void 0 ? void 0 : _action$extra2.icon) || (action === null || action === void 0 ? void 0 : action.icon);
|
|
171
170
|
var thinkCost = (action === null || action === void 0 ? void 0 : action.cost) || (action === null || action === void 0 || (_action$extra3 = action.extra) === null || _action$extra3 === void 0 ? void 0 : _action$extra3.cost);
|
|
172
171
|
return /*#__PURE__*/_jsxs("div", {
|
|
173
172
|
className: styles.actionHeaderDetailItem,
|
|
174
|
-
children: [
|
|
175
|
-
src:
|
|
173
|
+
children: [thinkIcon2 && /*#__PURE__*/_jsx("img", {
|
|
174
|
+
src: thinkIcon2,
|
|
176
175
|
alt: "icon",
|
|
177
176
|
className: styles.actionHeaderIcon
|
|
178
177
|
}), /*#__PURE__*/_jsx("span", {
|
|
@@ -205,6 +204,7 @@ export var defaultActions = [{
|
|
|
205
204
|
tooltip: '删除'
|
|
206
205
|
}];
|
|
207
206
|
var XAiChatbot = function XAiChatbot(props) {
|
|
207
|
+
var styles = useStyles();
|
|
208
208
|
// 使用新的 Hook 来处理 Provider 上下文
|
|
209
209
|
var _useChatbotContext = useChatbotContext(props),
|
|
210
210
|
mergedProps = _useChatbotContext.mergedProps;
|
|
@@ -347,18 +347,18 @@ var XAiChatbot = function XAiChatbot(props) {
|
|
|
347
347
|
};
|
|
348
348
|
|
|
349
349
|
// 触发发送
|
|
350
|
-
var handleSend = function handleSend(type,
|
|
351
|
-
if (
|
|
350
|
+
var handleSend = function handleSend(type, str) {
|
|
351
|
+
if (str.trim()) {
|
|
352
352
|
// 直接使用合并后的 onSend,自动处理 Provider 和独立模式
|
|
353
|
-
onSend === null || onSend === void 0 || onSend(type,
|
|
353
|
+
onSend === null || onSend === void 0 || onSend(type, str);
|
|
354
354
|
setContent(''); // 发送后清空输入框内容
|
|
355
355
|
scrollToBottom();
|
|
356
356
|
}
|
|
357
357
|
};
|
|
358
358
|
|
|
359
359
|
// 输出内容
|
|
360
|
-
var handleChange = function handleChange(
|
|
361
|
-
setContent(
|
|
360
|
+
var handleChange = function handleChange(str) {
|
|
361
|
+
setContent(str);
|
|
362
362
|
};
|
|
363
363
|
|
|
364
364
|
// 停止生成
|
|
@@ -479,9 +479,9 @@ var XAiChatbot = function XAiChatbot(props) {
|
|
|
479
479
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
480
480
|
children: [(stepContent === null || stepContent === void 0 ? void 0 : stepContent.length) && stepContent.map(function (item) {
|
|
481
481
|
// 输出html字符串
|
|
482
|
-
var
|
|
482
|
+
var html2 = md.render(item.content || '');
|
|
483
483
|
// 生成React节点
|
|
484
|
-
var stepHtmlString = reactHtmlParser(
|
|
484
|
+
var stepHtmlString = reactHtmlParser(html2);
|
|
485
485
|
return /*#__PURE__*/_jsxs("div", {
|
|
486
486
|
className: "ai-markdown-body step-content",
|
|
487
487
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","useMemo","Tooltip","Bubble","Prompts","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","arrowUp","arrowDown","thinkIcon","groupIcon","arrowDownBlue","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","styles","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","ActionHeader","_ref","_last$extra","_ref$execute","execute","_ref$thinks","thinks","_useState","_useState2","_slicedToArray","expanded","setExpanded","_useState3","_useState4","executeExpanded","setExecuteExpanded","length","last","name","icon","extra","className","actionHeaderWrapper","children","actionTitle","onClick","v","src","alt","actionHeaderIcon","flex1","w","actionHeaderDetail","actionDetailTitle","pl","actionDetailContent","style","whiteSpace","executeHiddenWrapper","h","executeWrapper","executeTitle","executeHeaderIcon","executeContent","map","action","_action$extra","_action$extra2","_action$extra3","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","defaultActions","key","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$inputSho","inputShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$empty","empty","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","messageTop","_useState5","_useState6","content","setContent","lastMessageId","isScriptScrolling","chatId","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref2","data","_ref2$lastMessage","lastMessage","flex","gap","index","_action$render","title","cursor","render","call","MessageFooter","_ref3","_ref3$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","maxWidth","classNames","user","suggestion","visibility","variant","handleSend","type","trim","handleChange","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","messageList","items","msg","_ref4","role","status","_ref4$execute","_ref4$thinks","_ref4$extra","noFooter","stepContent","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","htmlString","item","stepHtmlString","stepLine","vertical","onItemClick","info","description","footer","failed","value","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Tooltip,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport thinkIcon from '@/assets/think.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowDownBlue from '@/assets/arrow-down-blue.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\n\nconst styles = useStyles();\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n execute: any[];\n thinks: string;\n}\n\n// ActionHeader 组件\nexport const ActionHeader: React.FC<ActionHeaderProps> = ({ execute = [], thinks = '' }) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(true);\n const [executeExpanded, setExecuteExpanded] = useState(false);\n\n // 关键修复:只要有思考内容或执行过程就显示,不要同时要求两者都有\n if (!thinks && (!execute || execute.length === 0)) return null;\n\n const last = execute[execute.length - 1] || {};\n const { name } = last;\n const icon = last?.icon || last?.extra?.icon;\n\n return (\n <div className={styles.actionHeaderWrapper}>\n {!expanded && (\n <div className={styles.actionTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />\n <span className={styles.flex1}>运行过程</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n )}\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={thinkIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n\n {thinks && (\n <div className={styles.actionDetailContent} style={{ whiteSpace: 'pre-line' }}>\n {thinks}\n </div>\n )}\n\n {execute && execute.length > 0 && (\n <>\n {!executeExpanded && (\n <div className={styles.executeHiddenWrapper} onClick={() => setExecuteExpanded((v) => !v)}>\n {icon && <img src={icon} alt=\"icon\" className={styles.h(15)} />}\n <span className={styles.flex1}>{name}</span>\n <img alt=\"工具icon\" src={arrowDownBlue} className={styles.w('16px')} />\n </div>\n )}\n {executeExpanded && (\n <div className={styles.executeWrapper}>\n <div className={styles.executeTitle} onClick={() => setExecuteExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"icon\" className={styles.executeHeaderIcon} />\n <span className={styles.flex1}>隐藏运行详情</span>\n <img alt=\"展开详情icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n <div className={styles.executeContent}>\n {execute.map((action: any, idx: number) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n {thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />}\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n )}\n </div>\n );\n};\n\n// 默认消息功能区\nexport const defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n // 消息顶部\n messageTop,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n {action.render?.(index, data)}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // 触发发送\n const handleSend = (type: string, content: string) => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(type, content);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 输出内容\n const handleChange = (content: string) => {\n setContent(content);\n };\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n };\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty || (\n <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n className={styles.messageList}\n items={messages.map((msg: any) => {\n const { id, role, status, type, execute = [], thinks = '', extra = { noFooter: false }, stepContent } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => messageTop\n || (\n <ActionHeader\n execute={execute}\n thinks={thinks}\n />\n )),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"ai-markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n {/* 输出阶段性回答内容 */}\n {stepContent?.length && stepContent.map((item) => {\n // 输出html字符串\n const html = md.render(item.content || '');\n // 生成React节点\n const stepHtmlString = reactHtmlParser(html);\n return (\n <div\n key={item.id}\n className=\"ai-markdown-body step-content\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n <div>\n {stepHtmlString}\n </div>\n <div className={styles.stepLine}></div>\n </div>\n )\n })}\n {/** 输出最终回答内容 */}\n <div\n className=\"ai-markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && (\n <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n />\n ) }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","useMemo","Tooltip","Bubble","Prompts","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","arrowUp","arrowDown","thinkIcon","groupIcon","arrowDownBlue","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","ActionHeader","_ref","_last$extra","_ref$execute","execute","_ref$thinks","thinks","styles","_useState","_useState2","_slicedToArray","expanded","setExpanded","_useState3","_useState4","executeExpanded","setExecuteExpanded","length","last","name","icon","extra","className","actionHeaderWrapper","children","actionTitle","onClick","v","src","alt","actionHeaderIcon","flex1","w","actionHeaderDetail","actionDetailTitle","pl","actionDetailContent","style","whiteSpace","executeHiddenWrapper","h","executeWrapper","executeTitle","executeHeaderIcon","executeContent","map","action","_action$extra","_action$extra2","_action$extra3","thinkIcon2","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","defaultActions","key","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$inputSho","inputShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$empty","empty","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","messageTop","_useState5","_useState6","content","setContent","lastMessageId","isScriptScrolling","chatId","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref2","data","_ref2$lastMessage","lastMessage","flex","gap","index","_action$render","title","cursor","render","call","MessageFooter","_ref3","_ref3$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","maxWidth","classNames","user","suggestion","visibility","variant","handleSend","type","str","trim","handleChange","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","messageList","items","msg","_ref4","role","status","_ref4$execute","_ref4$thinks","_ref4$extra","noFooter","stepContent","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","htmlString","item","html2","stepHtmlString","stepLine","vertical","onItemClick","info","description","footer","failed","value","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Tooltip,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport thinkIcon from '@/assets/think.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowDownBlue from '@/assets/arrow-down-blue.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n execute: any[];\n thinks: string;\n}\n\n// ActionHeader 组件\nexport const ActionHeader: React.FC<ActionHeaderProps> = ({ execute = [], thinks = '' }) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(true);\n const [executeExpanded, setExecuteExpanded] = useState(false);\n\n // 关键修复:只要有思考内容或执行过程就显示,不要同时要求两者都有\n if (!thinks && (!execute || execute.length === 0)) return null;\n\n const last = execute[execute.length - 1] || {};\n const { name } = last;\n const icon = last?.icon || last?.extra?.icon;\n\n return (\n <div className={styles.actionHeaderWrapper}>\n {!expanded && (\n <div className={styles.actionTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />\n <span className={styles.flex1}>运行过程</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n )}\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={thinkIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n\n {thinks && (\n <div className={styles.actionDetailContent} style={{ whiteSpace: 'pre-line' }}>\n {thinks}\n </div>\n )}\n\n {execute && execute.length > 0 && (\n <>\n {!executeExpanded && (\n <div className={styles.executeHiddenWrapper} onClick={() => setExecuteExpanded((v) => !v)}>\n {icon && <img src={icon} alt=\"icon\" className={styles.h(15)} />}\n <span className={styles.flex1}>{name}</span>\n <img alt=\"工具icon\" src={arrowDownBlue} className={styles.w('16px')} />\n </div>\n )}\n {executeExpanded && (\n <div className={styles.executeWrapper}>\n <div className={styles.executeTitle} onClick={() => setExecuteExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"icon\" className={styles.executeHeaderIcon} />\n <span className={styles.flex1}>隐藏运行详情</span>\n <img alt=\"展开详情icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n <div className={styles.executeContent}>\n {execute.map((action: any, idx: number) => {\n const thinkIcon2 = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n {thinkIcon2 && <img src={thinkIcon2} alt=\"icon\" className={styles.actionHeaderIcon} />}\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n )}\n </div>\n );\n};\n\n// 默认消息功能区\nexport const defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n const styles = useStyles();\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n // 消息顶部\n messageTop,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n {action.render?.(index, data)}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // 触发发送\n const handleSend = (type: string, str: string) => {\n if (str.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(type, str);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 输出内容\n const handleChange = (str: string) => {\n setContent(str);\n };\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n };\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty || (\n <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n className={styles.messageList}\n items={messages.map((msg: any) => {\n const { id, role, status, type, execute = [], thinks = '', extra = { noFooter: false }, stepContent } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => messageTop\n || (\n <ActionHeader\n execute={execute}\n thinks={thinks}\n />\n )),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"ai-markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n {/* 输出阶段性回答内容 */}\n {stepContent?.length && stepContent.map((item) => {\n // 输出html字符串\n const html2 = md.render(item.content || '');\n // 生成React节点\n const stepHtmlString = reactHtmlParser(html2);\n return (\n <div\n key={item.id}\n className=\"ai-markdown-body step-content\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n <div>\n {stepHtmlString}\n </div>\n <div className={styles.stepLine} />\n </div>\n );\n })}\n {/** 输出最终回答内容 */}\n <div\n className=\"ai-markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && (\n <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n />\n ) }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
|
|
@@ -4,13 +4,13 @@ import React, { useState } from 'react';
|
|
|
4
4
|
import { Conversations } from '@ant-design/x';
|
|
5
5
|
import { RedoOutlined } from '@ant-design/icons';
|
|
6
6
|
import { Spin, Divider } from 'antd';
|
|
7
|
+
import InfiniteScroll from 'react-infinite-scroll-component';
|
|
8
|
+
import clsx from 'clsx';
|
|
7
9
|
import { useChatbotContext } from "../../hooks/useProviderContext";
|
|
8
10
|
import logo from "../../assets/logo.png";
|
|
9
11
|
import AddChatIcon from "../../assets/svg/AddChatIcon";
|
|
10
12
|
import flashOpen from "../../assets/flash-open.svg?url";
|
|
11
|
-
import InfiniteScroll from 'react-infinite-scroll-component';
|
|
12
13
|
import { SESSION_PAGE_SIZE } from "../../constants";
|
|
13
|
-
import clsx from 'clsx';
|
|
14
14
|
import { useStyles, GlobalStyle } from "./styles";
|
|
15
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
16
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","useChatbotContext","logo","AddChatIcon","flashOpen","InfiniteScroll","SESSION_PAGE_SIZE","clsx","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","_mergedProps$isNarrow","isNarrow","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","children","className","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","nWrapper","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius","mask"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg?url';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport clsx from 'clsx';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n isNarrow = false,\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div>\n <GlobalStyle />\n {/**顶部操作栏 */}\n {\n (!listVisible || isNarrow) && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))}/>\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n {/* 会话列表 */}\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n isNarrow ? styles.nWrapper : styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))}/>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n }\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n\n {/* 遮罩层 - 仅在窄屏且列表可见时显示 */}\n {isNarrow && listVisible && (\n <div className={styles.mask} onClick={handleCloseList} />\n )}\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","InfiniteScroll","clsx","useChatbotContext","logo","AddChatIcon","flashOpen","SESSION_PAGE_SIZE","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","_mergedProps$isNarrow","isNarrow","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","children","className","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","nWrapper","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius","mask"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport clsx from 'clsx';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg?url';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n isNarrow = false,\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div>\n <GlobalStyle />\n {/** 顶部操作栏 */}\n {\n (!listVisible || isNarrow) && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n {/* 会话列表 */}\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n isNarrow ? styles.nWrapper : styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut,\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={(\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n )}\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n\n {/* 遮罩层 - 仅在窄屏且列表可见时显示 */}\n {isNarrow && listVisible && (\n <div className={styles.mask} onClick={handleCloseList} />\n )}\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","capWrapper","_templateObject3","capShape","_templateObject4","capIcon","_templateObject5","addChatBtn","_templateObject6","tipTitle","_templateObject7","fWrapper","_templateObject8","nWrapper","_templateObject9","mask","_templateObject10","fheaderWrapper","_templateObject11","scrollList","_templateObject12","slideIn","_templateObject13","slideOut","_templateObject14","GlobalStyle","styles","_templateObject15"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\
|
|
1
|
+
{"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","capWrapper","_templateObject3","capShape","_templateObject4","capIcon","_templateObject5","addChatBtn","_templateObject6","tipTitle","_templateObject7","fWrapper","_templateObject8","nWrapper","_templateObject9","mask","_templateObject10","fheaderWrapper","_templateObject11","scrollList","_templateObject12","slideIn","_templateObject13","slideOut","_templateObject14","GlobalStyle","styles","_templateObject15"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nconst slideInRight = keyframes`\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n`;\n\nconst slideOutRight = keyframes`\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n`;\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n capWrapper: css`\n padding: 12px 16px;\n display: flex;\n align-items: center;\n `,\n\n capShape: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ${primaryBlue};\n } */\n `,\n\n capIcon: css`\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n `,\n\n addChatBtn: css`\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n `,\n\n tipTitle: css`\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n `,\n\n fWrapper: css`\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n `,\n\n nWrapper: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n `,\n\n mask: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n `,\n\n fheaderWrapper: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n `,\n\n scrollList: css`\n max-height: calc(100vh - 120px); /* 120px为头部高度,可根据实际调整 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* 隐藏滚动条(Chrome, Edge, Safari) */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* 隐藏滚动条(Firefox) */\n scrollbar-width: none;\n\n /* 隐藏滚动条(IE/Edge) */\n -ms-overflow-style: none;\n `,\n\n slideIn: css`\n animation: ${slideInRight} 0.3s forwards;\n `,\n slideOut: css`\n animation: ${slideOutRight} 0.3s forwards;\n `,\n\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n `}\n />\n);\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASD,GAAG,IAAIE,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACzD,SAASC,eAAe;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAElD,IAAMC,WAAW,GAAG,SAAS,CAAC,CAAC;AAC/B,IAAMC,SAAS,GAAG,SAAS,CAAC,CAAG;AAC/B,IAAMC,QAAQ,GAAG,MAAM,CAAC,CAAQ;AAChC,IAAMC,SAAS,GAAG,MAAM,CAAC,CAAO;AAChC,IAAMC,UAAU,GAAG,MAAM,CAAC,CAAM;;AAEhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAED,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,mFAId;IAEDM,QAAQ,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,+fAgBOP,WAAW,CAE9B;IAEDe,OAAO,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,0QAgBX;IAEDU,UAAU,EAAExB,GAAG,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,sZAqBd;IAEDY,QAAQ,EAAE1B,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,gFAIZ;IAEDc,QAAQ,EAAE5B,GAAG,CAAA6B,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,6JAOZ;IAEDgB,QAAQ,EAAE9B,GAAG,CAAA+B,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,+PAWZ;IAEDkB,IAAI,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,sLASR;IAEDoB,cAAc,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,4HAKlB;IAEDsB,UAAU,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,+jBAkBd;IAEDwB,OAAO,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAzB,sBAAA,iDACGF,YAAY,CAC1B;IACD4B,QAAQ,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAA3B,sBAAA,iDACEC,aAAa;EAG9B,CAAC;AAAA,CAAC,CAAC;AAEH,OAAO,IAAM2B,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA;EAAA,oBAChCpC,IAAA,CAACH,MAAM;IACLwC,MAAM,EAAEzC,SAAS,CAAA0C,iBAAA,KAAAA,iBAAA,GAAA9B,sBAAA;EAQf,CACH,CAAC;AAAA,CACH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import { useState } from 'react';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
3
|
import XAiSender from '.';
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
var meta = {
|
|
@@ -13,30 +13,34 @@ var meta = {
|
|
|
13
13
|
};
|
|
14
14
|
export default meta;
|
|
15
15
|
// 基础用法
|
|
16
|
-
var BasicUsageStory = function BasicUsageStory(
|
|
17
|
-
var _useState = useState(
|
|
16
|
+
var BasicUsageStory = function BasicUsageStory() {
|
|
17
|
+
var _useState = useState([]),
|
|
18
18
|
_useState2 = _slicedToArray(_useState, 2),
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var _useState3 = useState(
|
|
19
|
+
files = _useState2[0],
|
|
20
|
+
setFiles = _useState2[1];
|
|
21
|
+
var _useState3 = useState(''),
|
|
22
22
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
content = _useState4[0],
|
|
24
|
+
setContent = _useState4[1];
|
|
25
|
+
var _useState5 = useState(false),
|
|
26
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
27
|
+
loading = _useState6[0],
|
|
28
|
+
setLoading = _useState6[1];
|
|
25
29
|
|
|
26
30
|
// 模拟清空数据
|
|
27
31
|
var handleClear = function handleClear() {
|
|
28
|
-
console.
|
|
32
|
+
console.info('clear');
|
|
29
33
|
};
|
|
30
34
|
|
|
31
35
|
// 模拟输入
|
|
32
|
-
var handleChange = function handleChange(
|
|
33
|
-
setContent(
|
|
36
|
+
var handleChange = function handleChange(text) {
|
|
37
|
+
setContent(text);
|
|
34
38
|
};
|
|
35
39
|
|
|
36
40
|
// 模拟快捷短语点击
|
|
37
|
-
var handleSendMessage = function handleSendMessage(type,
|
|
41
|
+
var handleSendMessage = function handleSendMessage(type, text) {
|
|
38
42
|
setLoading(true);
|
|
39
|
-
console.
|
|
43
|
+
console.info(type, text);
|
|
40
44
|
setTimeout(function () {
|
|
41
45
|
setContent('');
|
|
42
46
|
setLoading(false);
|
|
@@ -51,6 +55,21 @@ var BasicUsageStory = function BasicUsageStory(args) {
|
|
|
51
55
|
children: /*#__PURE__*/_jsx(XAiSender, {
|
|
52
56
|
loading: loading,
|
|
53
57
|
value: content,
|
|
58
|
+
enableUpload: true,
|
|
59
|
+
files: files,
|
|
60
|
+
onChangeFiles: setFiles,
|
|
61
|
+
uploadRequest: function uploadRequest(_ref) {
|
|
62
|
+
var file = _ref.file,
|
|
63
|
+
onProgress = _ref.onProgress,
|
|
64
|
+
onSuccess = _ref.onSuccess;
|
|
65
|
+
console.info(file);
|
|
66
|
+
onProgress === null || onProgress === void 0 || onProgress({
|
|
67
|
+
percent: 50
|
|
68
|
+
});
|
|
69
|
+
setTimeout(function () {
|
|
70
|
+
onSuccess === null || onSuccess === void 0 || onSuccess({});
|
|
71
|
+
}, 1000);
|
|
72
|
+
},
|
|
54
73
|
onClear: handleClear,
|
|
55
74
|
onChange: handleChange,
|
|
56
75
|
onSubmit: handleSendMessage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","
|
|
1
|
+
{"version":3,"names":["React","useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleClear","console","info","handleChange","text","handleSendMessage","type","setTimeout","style","width","border","padding","children","value","enableUpload","onChangeFiles","uploadRequest","_ref","file","onProgress","onSuccess","percent","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render","args"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport type { Attachment } from '@ant-design/x/es/attachments';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.info('clear');\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (type: string, text: any) => {\n setLoading(true);\n console.info(type, text);\n setTimeout(() => {\n setContent('');\n setLoading(false);\n }, 2000);\n };\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n enableUpload\n files={files}\n onChangeFiles={setFiles}\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips=\"内容由AI生成,无法确保真实准确,仅供参考\"\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":"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"}
|