@ai-group/chat-sdk 0.5.2 → 0.6.0
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/components/XAiChatbot/XAiChatbot.stories.js +14 -5
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/index.js +21 -102
- package/dist/cjs/components/XAiChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAiChatbot/styles.d.ts +2 -14
- package/dist/cjs/components/XAiChatbot/styles.js +19 -161
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +4 -3
- package/dist/cjs/components/XAiConversations/index.js.map +2 -2
- package/dist/cjs/components/XAiConversations/styles.d.ts +4 -0
- package/dist/cjs/components/XAiConversations/styles.js +23 -0
- package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +3 -3
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAiProvider/demo.styles.d.ts +2 -0
- package/dist/cjs/components/XAiProvider/index.d.ts +2 -2
- package/dist/cjs/components/XAiProvider/index.js +42 -12
- package/dist/cjs/components/XAiProvider/index.js.map +3 -3
- package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +6 -0
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +86 -0
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +7 -0
- package/dist/cjs/components/XAiSender/index.d.ts +4 -0
- package/dist/cjs/components/XAiSender/index.js +168 -0
- package/dist/cjs/components/XAiSender/index.js.map +7 -0
- package/dist/cjs/components/XAiSender/styles.d.ts +47 -0
- package/dist/cjs/components/XAiSender/styles.js +157 -0
- package/dist/cjs/components/XAiSender/styles.js.map +7 -0
- package/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.js +3 -0
- package/dist/cjs/constants/index.js.map +2 -2
- package/dist/cjs/hooks/useAgentGenerator.js.map +1 -1
- package/dist/cjs/styles/common.d.ts +9 -0
- package/dist/cjs/styles/common.js +30 -0
- package/dist/cjs/styles/common.js.map +2 -2
- package/dist/cjs/types/XAiChatbot.d.ts +5 -17
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiConversations.d.ts +2 -0
- package/dist/cjs/types/XAiConversations.js.map +1 -1
- package/dist/cjs/types/XAiProvider.d.ts +6 -0
- package/dist/cjs/types/XAiProvider.js.map +2 -2
- package/dist/cjs/types/XAiSender.d.ts +13 -0
- package/dist/cjs/types/XAiSender.js +18 -0
- package/dist/cjs/types/XAiSender.js.map +7 -0
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +2 -0
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/umdEntry.js +2 -2
- package/dist/cjs/utils/umdEntry.js.map +2 -2
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +17 -6
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
- package/dist/esm/components/XAiChatbot/index.js +37 -177
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.d.ts +2 -14
- package/dist/esm/components/XAiChatbot/styles.js +13 -33
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +8 -3
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.d.ts +4 -0
- package/dist/esm/components/XAiConversations/styles.js +9 -7
- package/dist/esm/components/XAiConversations/styles.js.map +1 -1
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +14 -7
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/esm/components/XAiProvider/demo.styles.d.ts +2 -0
- package/dist/esm/components/XAiProvider/index.d.ts +2 -2
- package/dist/esm/components/XAiProvider/index.js +50 -3
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +6 -0
- package/dist/esm/components/XAiSender/XAiSender.stories.js +66 -0
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -0
- package/dist/esm/components/XAiSender/index.d.ts +4 -0
- package/dist/esm/components/XAiSender/index.js +211 -0
- package/dist/esm/components/XAiSender/index.js.map +1 -0
- package/dist/esm/components/XAiSender/styles.d.ts +47 -0
- package/dist/esm/components/XAiSender/styles.js +21 -0
- package/dist/esm/components/XAiSender/styles.js.map +1 -0
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.js +3 -0
- package/dist/esm/constants/index.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.js +1 -1
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/styles/common.d.ts +9 -0
- package/dist/esm/styles/common.js +9 -2
- package/dist/esm/styles/common.js.map +1 -1
- package/dist/esm/types/XAiChatbot.d.ts +5 -17
- package/dist/esm/types/XAiChatbot.js.map +1 -1
- package/dist/esm/types/XAiConversations.d.ts +2 -0
- package/dist/esm/types/XAiConversations.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +6 -0
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/types/XAiSender.d.ts +13 -0
- package/dist/esm/types/XAiSender.js +2 -0
- package/dist/esm/types/XAiSender.js.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/umdEntry.js +16 -2
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import XAiSender from '.';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
var meta = {
|
|
6
|
+
title: 'AI组件/XAiSender 输入框',
|
|
7
|
+
component: XAiSender,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'centered'
|
|
10
|
+
},
|
|
11
|
+
tags: ['autodocs'],
|
|
12
|
+
argTypes: {}
|
|
13
|
+
};
|
|
14
|
+
export default meta;
|
|
15
|
+
// 基础用法
|
|
16
|
+
var BasicUsageStory = function BasicUsageStory(args) {
|
|
17
|
+
var _useState = useState(''),
|
|
18
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
19
|
+
content = _useState2[0],
|
|
20
|
+
setContent = _useState2[1];
|
|
21
|
+
var _useState3 = useState(false),
|
|
22
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
23
|
+
loading = _useState4[0],
|
|
24
|
+
setLoading = _useState4[1];
|
|
25
|
+
|
|
26
|
+
// 模拟清空数据
|
|
27
|
+
var handleClear = function handleClear() {
|
|
28
|
+
console.log('clear');
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
// 模拟输入
|
|
32
|
+
var handleChange = function handleChange(content) {
|
|
33
|
+
setContent(content);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// 模拟快捷短语点击
|
|
37
|
+
var handleSendMessage = function handleSendMessage(type, content) {
|
|
38
|
+
setLoading(true);
|
|
39
|
+
console.log(type, content);
|
|
40
|
+
setTimeout(function () {
|
|
41
|
+
setContent('');
|
|
42
|
+
setLoading(false);
|
|
43
|
+
}, 2000);
|
|
44
|
+
};
|
|
45
|
+
return /*#__PURE__*/_jsx("div", {
|
|
46
|
+
style: {
|
|
47
|
+
width: 440,
|
|
48
|
+
border: '1px solid #eee',
|
|
49
|
+
padding: 20
|
|
50
|
+
},
|
|
51
|
+
children: /*#__PURE__*/_jsx(XAiSender, {
|
|
52
|
+
loading: loading,
|
|
53
|
+
value: content,
|
|
54
|
+
onClear: handleClear,
|
|
55
|
+
onChange: handleChange,
|
|
56
|
+
onSubmit: handleSendMessage,
|
|
57
|
+
onStop: handleClear,
|
|
58
|
+
footerTips: "\u5185\u5BB9\u7531AI\u751F\u6210\uFF0C\u65E0\u6CD5\u786E\u4FDD\u771F\u5B9E\u51C6\u786E\uFF0C\u4EC5\u4F9B\u53C2\u8003"
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
export var 基础用法 = {
|
|
63
|
+
render: BasicUsageStory,
|
|
64
|
+
args: {}
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=XAiSender.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","args","_useState","_useState2","_slicedToArray","content","setContent","_useState3","_useState4","loading","setLoading","handleClear","console","log","handleChange","handleSendMessage","type","setTimeout","style","width","border","padding","children","value","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\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 = (args: any) => {\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.log('clear');\n };\n\n // 模拟输入\n const handleChange = (content: string) => {\n setContent(content);\n }\n\n // 模拟快捷短语点击\n const handleSendMessage = (type: string, content: any) => {\n setLoading(true);\n console.log(type, content);\n setTimeout(() => {\n setContent('');\n setLoading(false);\n }, 2000);\n };\n\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\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};"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,OAAOC,SAAS,MAAM,GAAG;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1B,IAAMC,IAA4B,GAAG;EACnCC,KAAK,EAAE,oBAAoB;EAC3BC,SAAS,EAAEL,SAAS;EACpBM,UAAU,EAAE;IACVC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,eAAeN,IAAI;AAGnB;AACA,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,IAAS,EAAK;EACrC,IAAAC,SAAA,GAA8Bb,QAAQ,CAAC,EAAE,CAAC;IAAAc,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAnCG,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAC1B,IAAAI,UAAA,GAA8BlB,QAAQ,CAAC,KAAK,CAAC;IAAAmB,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAAtCE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;;EAE1B;EACA,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxBC,OAAO,CAACC,GAAG,CAAC,OAAO,CAAC;EACtB,CAAC;;EAED;EACA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIT,OAAe,EAAK;IACxCC,UAAU,CAACD,OAAO,CAAC;EACrB,CAAC;;EAED;EACA,IAAMU,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,IAAY,EAAEX,OAAY,EAAK;IACxDK,UAAU,CAAC,IAAI,CAAC;IAChBE,OAAO,CAACC,GAAG,CAACG,IAAI,EAAEX,OAAO,CAAC;IAC1BY,UAAU,CAAC,YAAM;MACfX,UAAU,CAAC,EAAE,CAAC;MACdI,UAAU,CAAC,KAAK,CAAC;IACnB,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EAGD,oBACElB,IAAA;IAAK0B,KAAK,EAAE;MAAEC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE,gBAAgB;MAAEC,OAAO,EAAE;IAAG,CAAE;IAAAC,QAAA,eAChE9B,IAAA,CAACF,SAAS;MACRmB,OAAO,EAAEA,OAAQ;MACjBc,KAAK,EAAElB,OAAQ;MACfmB,OAAO,EAAEb,WAAY;MACrBc,QAAQ,EAAEX,YAAa;MACvBY,QAAQ,EAAEX,iBAAkB;MAC5BY,MAAM,EAAEhB,WAAY;MACpBiB,UAAU,EAAC;IAAuB,CACnC;EAAC,CACC,CAAC;AAEV,CAAC;AAED,OAAO,IAAMC,IAAW,GAAG;EACzBC,MAAM,EAAE9B,eAAe;EACvBC,IAAI,EAAE,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["footerTips", "clearBtnShow", "value", "onSend", "onChange", "onClear", "onStop", "onSubmit", "loading"];
|
|
5
|
+
// 文件: components/XAiSender/index.tsx
|
|
6
|
+
import React, { useRef, useState } from 'react';
|
|
7
|
+
import { Sender } from '@ant-design/x';
|
|
8
|
+
import { Button, Popover, Space, Tooltip, Spin } from 'antd';
|
|
9
|
+
import { ArrowUpOutlined, ClearOutlined } from '@ant-design/icons';
|
|
10
|
+
import { useChatbotContext } from "../../hooks/useProviderContext";
|
|
11
|
+
import clsx from 'clsx';
|
|
12
|
+
import { useStyles } from "./styles";
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
16
|
+
var XAiSender = function XAiSender(props) {
|
|
17
|
+
// 使用新的 Hook 来处理 Provider 上下文
|
|
18
|
+
var _useChatbotContext = useChatbotContext(props),
|
|
19
|
+
mergedProps = _useChatbotContext.mergedProps;
|
|
20
|
+
var footerTips = mergedProps.footerTips,
|
|
21
|
+
clearBtnShow = mergedProps.clearBtnShow,
|
|
22
|
+
value = mergedProps.value,
|
|
23
|
+
onSend = mergedProps.onSend,
|
|
24
|
+
_onChange = mergedProps.onChange,
|
|
25
|
+
onClear = mergedProps.onClear,
|
|
26
|
+
onStop = mergedProps.onStop,
|
|
27
|
+
onSubmit = mergedProps.onSubmit,
|
|
28
|
+
_mergedProps$loading = mergedProps.loading,
|
|
29
|
+
propLoading = _mergedProps$loading === void 0 ? false : _mergedProps$loading,
|
|
30
|
+
resetProps = _objectWithoutProperties(mergedProps, _excluded);
|
|
31
|
+
|
|
32
|
+
// 如果在 Provider 中,使用 Provider 的状态
|
|
33
|
+
var loading = mergedProps.loading || propLoading;
|
|
34
|
+
var _useState = useState(false),
|
|
35
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
36
|
+
disabled = _useState2[0],
|
|
37
|
+
_setDisabled = _useState2[1]; // 是否禁止输入
|
|
38
|
+
var _useState3 = useState(''),
|
|
39
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
40
|
+
mode = _useState4[0],
|
|
41
|
+
_setMode = _useState4[1]; // todo 模式
|
|
42
|
+
var _useState5 = useState(false),
|
|
43
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
44
|
+
fileUploading = _useState6[0],
|
|
45
|
+
setFileUploading = _useState6[1]; // 文件上传进度条
|
|
46
|
+
var _useState7 = useState(false),
|
|
47
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
48
|
+
clearPopoverVisible = _useState8[0],
|
|
49
|
+
setClearPopoverVisible = _useState8[1]; // 气泡卡片显隐藏
|
|
50
|
+
var styles = useStyles();
|
|
51
|
+
|
|
52
|
+
// 触发发送
|
|
53
|
+
var handleSend = function handleSend() {
|
|
54
|
+
if (value.trim()) {
|
|
55
|
+
// 直接使用合并后的 onSend,自动处理 Provider 和独立模式
|
|
56
|
+
onSubmit === null || onSubmit === void 0 || onSubmit('text', value);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// 文件上传按钮引用
|
|
61
|
+
var fileInputRef = useRef(null);
|
|
62
|
+
|
|
63
|
+
// 选择文件
|
|
64
|
+
var handleFileSelect = function handleFileSelect() {};
|
|
65
|
+
|
|
66
|
+
// 点击清除按钮
|
|
67
|
+
var handleClear = function handleClear() {
|
|
68
|
+
setClearPopoverVisible(true);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// 取消清除
|
|
72
|
+
var cancelClear = function cancelClear() {
|
|
73
|
+
setClearPopoverVisible(false);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
// 确认清除
|
|
77
|
+
var confirmClear = function confirmClear() {
|
|
78
|
+
onClear === null || onClear === void 0 || onClear();
|
|
79
|
+
setClearPopoverVisible(false);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// 清空按钮提示文案
|
|
83
|
+
var clearConfirmContent = /*#__PURE__*/_jsxs("div", {
|
|
84
|
+
className: styles.p('2px'),
|
|
85
|
+
children: [/*#__PURE__*/_jsx("p", {
|
|
86
|
+
className: clsx(styles.mb(14), styles.mt(0)),
|
|
87
|
+
children: "\u786E\u8BA4\u6E05\u9664\u6240\u6709\u804A\u5929\u8BB0\u5F55\u5E76\u91CD\u7F6E\u4F1A\u8BDD\uFF01"
|
|
88
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
89
|
+
className: styles.popoverFooter,
|
|
90
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
91
|
+
size: "small",
|
|
92
|
+
onClick: cancelClear,
|
|
93
|
+
children: "\u53D6\u6D88"
|
|
94
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
95
|
+
size: "small",
|
|
96
|
+
type: "primary",
|
|
97
|
+
danger: true,
|
|
98
|
+
onClick: confirmClear,
|
|
99
|
+
children: "\u786E\u8BA4"
|
|
100
|
+
})]
|
|
101
|
+
})]
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// 自定义上传按钮
|
|
105
|
+
var uploadButton = /*#__PURE__*/_jsx("div", {
|
|
106
|
+
className: styles.flexCenterGap2,
|
|
107
|
+
children: /*#__PURE__*/_jsxs(Tooltip, {
|
|
108
|
+
placement: "top",
|
|
109
|
+
title: mode === 'single_agent_skill_mode' ? '工作流模式不支持上传文件' : '支持图片、文档等上传',
|
|
110
|
+
children: [fileUploading ? /*#__PURE__*/_jsx(Spin, {
|
|
111
|
+
size: "small"
|
|
112
|
+
}) : /*#__PURE__*/_jsx("i", {
|
|
113
|
+
className: mode === 'single_agent_skill_mode' ? styles.iconZengjiaDisabled : styles.iconZengjiaNormal,
|
|
114
|
+
onClick: function onClick() {
|
|
115
|
+
if (mode !== 'single_agent_skill_mode' && fileInputRef.current) {
|
|
116
|
+
var _fileInputRef$current;
|
|
117
|
+
(_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 || _fileInputRef$current.click();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}), /*#__PURE__*/_jsx("input", {
|
|
121
|
+
type: "file",
|
|
122
|
+
ref: fileInputRef,
|
|
123
|
+
onChange: handleFileSelect,
|
|
124
|
+
style: {
|
|
125
|
+
display: 'none'
|
|
126
|
+
},
|
|
127
|
+
accept: "*/*",
|
|
128
|
+
disabled: fileUploading || mode === 'single_agent_skill_mode'
|
|
129
|
+
})]
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
133
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
134
|
+
className: styles.chatFooter,
|
|
135
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
136
|
+
className: clsx(styles.flex, styles.gap(8)),
|
|
137
|
+
children: [clearBtnShow && /*#__PURE__*/_jsx(Popover, {
|
|
138
|
+
content: clearConfirmContent,
|
|
139
|
+
title: "\u786E\u8BA4\u6E05\u7A7A\u5BF9\u8BDD",
|
|
140
|
+
trigger: "click",
|
|
141
|
+
open: clearPopoverVisible,
|
|
142
|
+
onOpenChange: setClearPopoverVisible,
|
|
143
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
144
|
+
className: styles.clearBtn,
|
|
145
|
+
style: {
|
|
146
|
+
border: '1px solid #E4E7EC',
|
|
147
|
+
borderRadius: '50%',
|
|
148
|
+
height: '35px',
|
|
149
|
+
width: '35px'
|
|
150
|
+
},
|
|
151
|
+
onClick: handleClear,
|
|
152
|
+
children: /*#__PURE__*/_jsx(ClearOutlined, {
|
|
153
|
+
className: styles.text(16)
|
|
154
|
+
})
|
|
155
|
+
})
|
|
156
|
+
}), /*#__PURE__*/_jsx(Sender, _objectSpread(_objectSpread({}, resetProps), {}, {
|
|
157
|
+
value: value,
|
|
158
|
+
className: styles.sendWrapper,
|
|
159
|
+
placeholder: "\u7EE7\u7EED\u5BF9\u8BDD...",
|
|
160
|
+
disabled: disabled,
|
|
161
|
+
loading: loading,
|
|
162
|
+
actions: function actions(_, info) {
|
|
163
|
+
var _info$components = info.components,
|
|
164
|
+
SendButton = _info$components.SendButton,
|
|
165
|
+
LoadingButton = _info$components.LoadingButton;
|
|
166
|
+
return /*#__PURE__*/_jsxs(Space, {
|
|
167
|
+
size: "small",
|
|
168
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
169
|
+
className: styles.w(20)
|
|
170
|
+
}), mode !== 'single_agent_skill_mode' && uploadButton, mode === 'meta_agent_mode' && /*#__PURE__*/_jsx("div", {
|
|
171
|
+
className: styles.flexCenterGap2,
|
|
172
|
+
style: {
|
|
173
|
+
visibility: 'hidden'
|
|
174
|
+
},
|
|
175
|
+
children: /*#__PURE__*/_jsx("i", {
|
|
176
|
+
className: styles.iconHuihuarenqun
|
|
177
|
+
})
|
|
178
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
179
|
+
className: styles.divider
|
|
180
|
+
}), loading ? /*#__PURE__*/_jsx(LoadingButton, {
|
|
181
|
+
onClick: function onClick() {
|
|
182
|
+
return onStop === null || onStop === void 0 ? void 0 : onStop();
|
|
183
|
+
},
|
|
184
|
+
className: styles.stopButton
|
|
185
|
+
}) : /*#__PURE__*/_jsx(SendButton, {
|
|
186
|
+
className: styles.sendButton,
|
|
187
|
+
type: "primary",
|
|
188
|
+
icon: /*#__PURE__*/_jsx(ArrowUpOutlined, {
|
|
189
|
+
className: styles.text(20)
|
|
190
|
+
}),
|
|
191
|
+
disabled: disabled
|
|
192
|
+
})]
|
|
193
|
+
});
|
|
194
|
+
},
|
|
195
|
+
onChange: function onChange(v) {
|
|
196
|
+
_onChange === null || _onChange === void 0 || _onChange(v);
|
|
197
|
+
},
|
|
198
|
+
onSubmit: handleSend,
|
|
199
|
+
onCancel: function onCancel() {
|
|
200
|
+
onStop === null || onStop === void 0 || onStop();
|
|
201
|
+
}
|
|
202
|
+
}))]
|
|
203
|
+
})
|
|
204
|
+
}), footerTips && /*#__PURE__*/_jsx("div", {
|
|
205
|
+
className: styles.footerTips,
|
|
206
|
+
children: footerTips
|
|
207
|
+
})]
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
export default XAiSender;
|
|
211
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Sender","Button","Popover","Space","Tooltip","Spin","ArrowUpOutlined","ClearOutlined","useChatbotContext","clsx","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","footerTips","clearBtnShow","value","onSend","onChange","onClear","onStop","onSubmit","_mergedProps$loading","loading","propLoading","resetProps","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","disabled","_setDisabled","_useState3","_useState4","mode","_setMode","_useState5","_useState6","fileUploading","setFileUploading","_useState7","_useState8","clearPopoverVisible","setClearPopoverVisible","styles","handleSend","trim","fileInputRef","handleFileSelect","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","iconZengjiaDisabled","iconZengjiaNormal","current","_fileInputRef$current","click","ref","style","display","accept","chatFooter","flex","gap","content","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","text","_objectSpread","sendWrapper","placeholder","actions","_","info","_info$components","components","SendButton","LoadingButton","w","visibility","iconHuihuarenqun","divider","stopButton","sendButton","icon","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["// 文件: components/XAiSender/index.tsx\nimport React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n Popover,\n Space,\n Tooltip,\n Spin,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n} from '@ant-design/icons';\nimport {\n XAiSenderProps\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n footerTips,\n clearBtnShow,\n value,\n onSend,\n onChange,\n onClear,\n onStop,\n onSubmit,\n loading: propLoading = false,\n ...resetProps\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n\n const [disabled, _setDisabled] = useState<boolean>(false); // 是否禁止输入\n const [mode, _setMode] = useState<string>(''); // todo 模式\n const [fileUploading, setFileUploading] = useState(false); // 文件上传进度条\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 触发发送\n const handleSend = () => {\n if (value.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.('text', value);\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 选择文件\n const handleFileSelect = () => {};\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title={\n mode === 'single_agent_skill_mode' ? '工作流模式不支持上传文件' : '支持图片、文档等上传'\n }\n >\n {fileUploading\n ? (\n <Spin size=\"small\" />\n )\n : (\n <i\n className={\n mode === 'single_agent_skill_mode'\n ? styles.iconZengjiaDisabled\n : styles.iconZengjiaNormal\n }\n onClick={() => {\n if (mode !== 'single_agent_skill_mode' && fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n )}\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n style={{ display: 'none' }}\n accept=\"*/*\"\n disabled={fileUploading || mode === 'single_agent_skill_mode'}\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n { clearBtnShow && <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover> }\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n actions={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Space size=\"small\">\n <div className={styles.w(20)} />\n\n {mode !== 'single_agent_skill_mode' && uploadButton}\n {mode === 'meta_agent_mode' && (\n <div\n className={styles.flexCenterGap2}\n style={{ visibility: 'hidden' }}\n >\n <i className={styles.iconHuihuarenqun} />\n </div>\n )}\n\n <div className={styles.divider} />\n\n {loading\n ? (\n <LoadingButton onClick={() => onStop?.()} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n );\n }}\n onChange={(v) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare const useStyles: () => {
|
|
2
|
+
chatFooter: string;
|
|
3
|
+
footerTips: string;
|
|
4
|
+
popoverFooter: string;
|
|
5
|
+
sendButton: string;
|
|
6
|
+
uploadBtn: string;
|
|
7
|
+
clearBtn: string;
|
|
8
|
+
stopButton: string;
|
|
9
|
+
divider: string;
|
|
10
|
+
sendWrapper: string;
|
|
11
|
+
iconHuihuarenqun: string;
|
|
12
|
+
iconZengjiaDisabled: string;
|
|
13
|
+
iconZengjiaNormal: string;
|
|
14
|
+
} & {
|
|
15
|
+
w: (width: string | number) => string;
|
|
16
|
+
h: (height: string | number) => string;
|
|
17
|
+
p: (padding: string) => string;
|
|
18
|
+
pb: (padding: string | number) => string;
|
|
19
|
+
pt: (padding: string | number) => string;
|
|
20
|
+
pl: (padding: string | number) => string;
|
|
21
|
+
pr: (padding: string | number) => string;
|
|
22
|
+
m: (margin: string) => string;
|
|
23
|
+
mb: (margin: string | number) => string;
|
|
24
|
+
mt: (margin: string | number) => string;
|
|
25
|
+
ml: (margin: string | number) => string;
|
|
26
|
+
mr: (margin: string | number) => string;
|
|
27
|
+
text: (size: string | number) => string;
|
|
28
|
+
weight: (size: number) => string;
|
|
29
|
+
textColor: (c: string) => string;
|
|
30
|
+
bg: (c: string) => string;
|
|
31
|
+
rs: (radius: string | number) => string;
|
|
32
|
+
gap: (g: string | number) => string;
|
|
33
|
+
flex: string;
|
|
34
|
+
flexCenter: string;
|
|
35
|
+
flexBetween: string;
|
|
36
|
+
flexColumn: string;
|
|
37
|
+
flex1: string;
|
|
38
|
+
cursor: (type: string) => string;
|
|
39
|
+
border: (color: string, width?: string) => string;
|
|
40
|
+
boxShadow: (shadow: string) => string;
|
|
41
|
+
transition: (property?: string, duration?: string) => string;
|
|
42
|
+
overflow: (type: string) => string;
|
|
43
|
+
position: (type: string) => string;
|
|
44
|
+
zIndex: (index: number) => string;
|
|
45
|
+
flexCenterGap2: string;
|
|
46
|
+
flexCenterGap4: string;
|
|
47
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
|
|
3
|
+
import { css } from '@emotion/css';
|
|
4
|
+
import { withBasicStyles, lightBlue, primaryBlue } from "../../styles/common";
|
|
5
|
+
export var useStyles = withBasicStyles(function () {
|
|
6
|
+
return {
|
|
7
|
+
chatFooter: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n "]))),
|
|
8
|
+
footerTips: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n padding-bottom: 5px;\n color: rgba(0,0,0,0.4);\n "]))),
|
|
9
|
+
popoverFooter: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n justify-content: end;\n "]))),
|
|
10
|
+
sendButton: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #000000;\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ", ";\n cursor: not-allowed;\n }\n "])), lightBlue),
|
|
11
|
+
uploadBtn: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ", ";\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n "])), primaryBlue),
|
|
12
|
+
clearBtn: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 12px;\n width: 45px;\n height: 45px;\n box-sizing: border-box;\n "]))),
|
|
13
|
+
stopButton: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n "]))),
|
|
14
|
+
divider: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n "]))),
|
|
15
|
+
sendWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex: 1;\n border-radius: 26px;\n "]))),
|
|
16
|
+
iconHuihuarenqun: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 16px;\n font-weight: 300;\n padding: 3px;\n border-radius: 6px;\n color: #181B25;\n cursor: pointer;\n &:hover {\n background: #E1E4EA;\n color: #7F56D9;\n }\n "]))),
|
|
17
|
+
iconZengjiaDisabled: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n "]))),
|
|
18
|
+
iconZengjiaNormal: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #98A2B3;\n cursor: pointer;\n &:hover {\n color: #7F56D9;\n }\n "])))
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["css","withBasicStyles","lightBlue","primaryBlue","useStyles","chatFooter","_templateObject","_taggedTemplateLiteral","footerTips","_templateObject2","popoverFooter","_templateObject3","sendButton","_templateObject4","uploadBtn","_templateObject5","clearBtn","_templateObject6","stopButton","_templateObject7","divider","_templateObject8","sendWrapper","_templateObject9","iconHuihuarenqun","_templateObject10","iconZengjiaDisabled","_templateObject11","iconZengjiaNormal","_templateObject12"],"sources":["../../../../src/components/XAiSender/styles.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { withBasicStyles, lightBlue, primaryBlue } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n chatFooter: css`\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n `,\n\n footerTips: css`\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n padding-bottom: 5px;\n color: rgba(0,0,0,0.4);\n `,\n\n popoverFooter: css`\n display: flex;\n gap: 8px;\n justify-content: end;\n `,\n\n sendButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #000000;\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ${lightBlue};\n cursor: not-allowed;\n }\n `,\n\n uploadBtn: css`\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ${primaryBlue};\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n `,\n\n clearBtn: css`\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 12px;\n width: 45px;\n height: 45px;\n box-sizing: border-box;\n `,\n\n stopButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n `,\n\n divider: css`\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n `,\n\n sendWrapper: css`\n flex: 1;\n border-radius: 26px;\n `,\n\n iconHuihuarenqun: css`\n font-family: \"iconfont\";\n font-size: 16px;\n font-weight: 300;\n padding: 3px;\n border-radius: 6px;\n color: #181B25;\n cursor: pointer;\n &:hover {\n background: #E1E4EA;\n color: #7F56D9;\n }\n `,\n\n iconZengjiaDisabled: css`\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n `,\n\n iconZengjiaNormal: css`\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #98A2B3;\n cursor: pointer;\n &:hover {\n color: #7F56D9;\n }\n `,\n}));"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe,EAAEC,SAAS,EAAEC,WAAW;AAEhD,OAAO,IAAMC,SAAS,GAAGH,eAAe,CAAC;EAAA,OAAO;IAC9CI,UAAU,EAAEL,GAAG,CAAAM,eAAA,KAAAA,eAAA,GAAAC,sBAAA,wGAKd;IAEDC,UAAU,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,oKAOd;IAEDG,aAAa,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,0EAIjB;IAEDK,UAAU,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,slBAqBSL,SAAS,CAGhC;IAEDY,SAAS,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,yWAKQJ,WAAW,CAYhC;IAEDa,QAAQ,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,qPAUZ;IAEDW,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,kPASd;IAEDa,OAAO,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,yHAMX;IAEDe,WAAW,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA,oDAGf;IAEDiB,gBAAgB,EAAExB,GAAG,CAAAyB,iBAAA,KAAAA,iBAAA,GAAAlB,sBAAA,yPAYpB;IAEDmB,mBAAmB,EAAE1B,GAAG,CAAA2B,iBAAA,KAAAA,iBAAA,GAAApB,sBAAA,wIAMvB;IAEDqB,iBAAiB,EAAE5B,GAAG,CAAA6B,iBAAA,KAAAA,iBAAA,GAAAtB,sBAAA;EAUxB,CAAC;AAAA,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SESSION_PAGE_SIZE"],"sources":["../../../src/constants/index.ts"],"sourcesContent":["// 会话分页数\nexport const SESSION_PAGE_SIZE = 50;"],"mappings":"AAAA;AACA,OAAO,IAAMA,iBAAiB,GAAG,EAAE"}
|
|
1
|
+
{"version":3,"names":["SESSION_PAGE_SIZE","MOBILE_MAX_WIDTH"],"sources":["../../../src/constants/index.ts"],"sourcesContent":["// 会话分页数\nexport const SESSION_PAGE_SIZE = 50;\n\n// 移动端交互最大宽度\nexport const MOBILE_MAX_WIDTH = 760;"],"mappings":"AAAA;AACA,OAAO,IAAMA,iBAAiB,GAAG,EAAE;;AAEnC;AACA,OAAO,IAAMC,gBAAgB,GAAG,GAAG"}
|
|
@@ -379,7 +379,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
379
379
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
380
380
|
}, [responseData]);
|
|
381
381
|
|
|
382
|
-
// 添加对话(
|
|
382
|
+
// 添加对话(非交互触发)
|
|
383
383
|
var setMessage = /*#__PURE__*/function () {
|
|
384
384
|
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(messageType, content) {
|
|
385
385
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|