@ai-group/chat-sdk 2.1.3 → 2.1.4
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/XAdkChatbot/components/FunctionCallRender/index.d.ts +2 -2
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +3 -4
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/index.js +5 -1
- package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +28 -2
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +2 -2
- package/dist/cjs/components/XAdkSender/index.js +36 -50
- package/dist/cjs/components/XAdkSender/index.js.map +2 -2
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +5 -5
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAdkWebProvider/index.js +6 -3
- package/dist/cjs/components/XAdkWebProvider/index.js.map +2 -2
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +1 -1
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.d.ts +6 -15
- package/dist/cjs/hooks/useADKChat.js +106 -27
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/hooks/useAgentGenerator.js +1 -1
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/services/api.d.ts +5 -5
- package/dist/cjs/services/api.js +6 -9
- package/dist/cjs/services/api.js.map +2 -2
- package/dist/cjs/types/XAdkChatbot.d.ts +17 -4
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +34 -9
- package/dist/cjs/types/XAdkProvider.js.map +1 -1
- package/dist/cjs/types/XAdkSender.d.ts +13 -2
- package/dist/cjs/types/XAdkSender.js.map +1 -1
- package/dist/cjs/types/XAiProvider.d.ts +1 -28
- package/dist/cjs/types/XAiProvider.js.map +2 -2
- package/dist/cjs/types/XAiSender.d.ts +2 -0
- package/dist/cjs/types/XAiSender.js.map +1 -1
- package/dist/cjs/types/common.d.ts +6 -0
- package/dist/cjs/types/common.js +18 -0
- package/dist/cjs/types/common.js.map +7 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.js +5 -1
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/chat.d.ts +1 -1
- package/dist/cjs/utils/umdEntry.d.ts +9 -9
- package/dist/cjs/utils/umdEntry.js +1 -0
- package/dist/cjs/utils/umdEntry.js.map +2 -2
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +2 -2
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +3 -3
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.js +6 -1
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/XAdkSender.stories.js +51 -2
- package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +1 -1
- package/dist/esm/components/XAdkSender/index.js +53 -75
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +10 -11
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -1
- package/dist/esm/components/XAdkWebProvider/index.js +30 -22
- package/dist/esm/components/XAdkWebProvider/index.js.map +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.js +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -1
- package/dist/esm/hooks/useADKChat.d.ts +6 -15
- package/dist/esm/hooks/useADKChat.js +176 -60
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.js +1 -1
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/services/api.d.ts +5 -5
- package/dist/esm/services/api.js +8 -11
- package/dist/esm/services/api.js.map +1 -1
- package/dist/esm/types/XAdkChatbot.d.ts +17 -4
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +34 -9
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAdkSender.d.ts +13 -2
- package/dist/esm/types/XAdkSender.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +1 -28
- package/dist/esm/types/XAiProvider.js +0 -7
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/types/XAiSender.d.ts +2 -0
- package/dist/esm/types/XAiSender.js.map +1 -1
- package/dist/esm/types/common.d.ts +6 -0
- package/dist/esm/types/common.js +2 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/chat.d.ts +1 -1
- package/dist/esm/utils/chat.js +4 -4
- package/dist/esm/utils/chat.js.map +1 -1
- package/dist/esm/utils/umdEntry.d.ts +9 -9
- package/dist/esm/utils/umdEntry.js +1 -1
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
2
|
-
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
3
2
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
3
|
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
5
4
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
@@ -23,8 +22,8 @@ var XAdkSender = function XAdkSender(_ref) {
|
|
|
23
22
|
allowUpload = _ref$allowUpload === void 0 ? false : _ref$allowUpload,
|
|
24
23
|
_ref$loading = _ref.loading,
|
|
25
24
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
26
|
-
_ref$
|
|
27
|
-
|
|
25
|
+
_ref$uploadRequest = _ref.uploadRequest,
|
|
26
|
+
uploadRequest = _ref$uploadRequest === void 0 ? function () {} : _ref$uploadRequest,
|
|
28
27
|
onClear = _ref.onClear,
|
|
29
28
|
onChange = _ref.onChange,
|
|
30
29
|
onSubmit = _ref.onSubmit,
|
|
@@ -159,7 +158,7 @@ var XAdkSender = function XAdkSender(_ref) {
|
|
|
159
158
|
_iterator = _createForOfIteratorHelper(fileList);
|
|
160
159
|
_context2.prev = 1;
|
|
161
160
|
_loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
|
|
162
|
-
var localFile
|
|
161
|
+
var localFile;
|
|
163
162
|
return _regeneratorRuntime().wrap(function _loop$(_context) {
|
|
164
163
|
while (1) switch (_context.prev = _context.next) {
|
|
165
164
|
case 0:
|
|
@@ -172,84 +171,63 @@ var XAdkSender = function XAdkSender(_ref) {
|
|
|
172
171
|
}) : f;
|
|
173
172
|
});
|
|
174
173
|
});
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
174
|
+
_context.prev = 2;
|
|
175
|
+
_context.next = 5;
|
|
176
|
+
return uploadRequest({
|
|
177
|
+
file: localFile.file,
|
|
178
|
+
onProgress: function onProgress(e) {
|
|
179
|
+
setFiles(function (prev) {
|
|
180
|
+
return prev.map(function (f) {
|
|
181
|
+
return f.id === localFile.id ? _objectSpread(_objectSpread({}, f), {}, {
|
|
182
|
+
progress: e.percent
|
|
183
|
+
}) : f;
|
|
184
|
+
});
|
|
181
185
|
});
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
return prev.map(function (f) {
|
|
193
|
-
return f.id === localFile.id ? _objectSpread(_objectSpread({}, f), {}, {
|
|
194
|
-
progress: event.percent || 0
|
|
195
|
-
}) : f;
|
|
196
|
-
});
|
|
197
|
-
});
|
|
198
|
-
},
|
|
199
|
-
onSuccess: function onSuccess(response, file) {
|
|
200
|
-
setFiles(function (prev) {
|
|
201
|
-
return prev.map(function (f) {
|
|
202
|
-
return f.id === localFile.id ? _objectSpread(_objectSpread({}, f), {}, {
|
|
203
|
-
status: 'success',
|
|
204
|
-
progress: 100,
|
|
205
|
-
response: response
|
|
206
|
-
}) : f;
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
},
|
|
210
|
-
onError: function onError(error) {
|
|
211
|
-
// 提取错误信息
|
|
212
|
-
var errorMessage = '上传失败';
|
|
213
|
-
if (error instanceof Error) {
|
|
214
|
-
errorMessage = error.message;
|
|
215
|
-
} else if (error && _typeof(error) === 'object' && 'status' in error) {
|
|
216
|
-
errorMessage = "HTTP ".concat(error.status);
|
|
217
|
-
}
|
|
218
|
-
setFiles(function (prev) {
|
|
219
|
-
return prev.map(function (f) {
|
|
220
|
-
return f.id === localFile.id ? _objectSpread(_objectSpread({}, f), {}, {
|
|
221
|
-
status: 'error'
|
|
222
|
-
}) : f;
|
|
223
|
-
});
|
|
224
|
-
});
|
|
225
|
-
message.error("".concat(localFile.name, " \u4E0A\u4F20\u5931\u8D25: ").concat(errorMessage));
|
|
226
|
-
}
|
|
227
|
-
}; // 调用外部传入的 customRequest
|
|
228
|
-
uploadProps.customRequest(options, {
|
|
229
|
-
defaultRequest: function defaultRequest() {
|
|
230
|
-
// 默认的上传逻辑
|
|
231
|
-
simulateUpload([localFile]);
|
|
232
|
-
}
|
|
186
|
+
},
|
|
187
|
+
onSuccess: function onSuccess(response) {
|
|
188
|
+
setFiles(function (prev) {
|
|
189
|
+
return prev.map(function (f) {
|
|
190
|
+
return f.id === localFile.id ? _objectSpread(_objectSpread({}, f), {}, {
|
|
191
|
+
status: 'success',
|
|
192
|
+
progress: 100,
|
|
193
|
+
response: response
|
|
194
|
+
}) : f;
|
|
195
|
+
});
|
|
233
196
|
});
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}) : f;
|
|
197
|
+
},
|
|
198
|
+
onError: function onError(error) {
|
|
199
|
+
setFiles(function (prev) {
|
|
200
|
+
return prev.map(function (f) {
|
|
201
|
+
return f.id === localFile.id ? _objectSpread(_objectSpread({}, f), {}, {
|
|
202
|
+
status: 'error',
|
|
203
|
+
errorMessage: error.message || '上传失败'
|
|
204
|
+
}) : f;
|
|
205
|
+
});
|
|
244
206
|
});
|
|
207
|
+
message.error("".concat(localFile.name, " \u4E0A\u4F20\u5931\u8D25: ").concat(error.message || '未知错误'));
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
case 5:
|
|
211
|
+
_context.next = 12;
|
|
212
|
+
break;
|
|
213
|
+
case 7:
|
|
214
|
+
_context.prev = 7;
|
|
215
|
+
_context.t0 = _context["catch"](2);
|
|
216
|
+
console.error('上传处理错误:', _context.t0);
|
|
217
|
+
setFiles(function (prev) {
|
|
218
|
+
return prev.map(function (f) {
|
|
219
|
+
return f.id === localFile.id ? _objectSpread(_objectSpread({}, f), {}, {
|
|
220
|
+
status: 'error',
|
|
221
|
+
errorMessage: _context.t0 instanceof Error ? _context.t0.message : '上传处理失败'
|
|
222
|
+
}) : f;
|
|
245
223
|
});
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
case
|
|
224
|
+
});
|
|
225
|
+
message.error("".concat(localFile.name, " \u4E0A\u4F20\u5931\u8D25"));
|
|
226
|
+
case 12:
|
|
249
227
|
case "end":
|
|
250
228
|
return _context.stop();
|
|
251
229
|
}
|
|
252
|
-
}, _loop);
|
|
230
|
+
}, _loop, null, [[2, 7]]);
|
|
253
231
|
});
|
|
254
232
|
_iterator.s();
|
|
255
233
|
case 4:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useRef","useCallback","Popconfirm","message","Progress","Tooltip","Input","Modal","ClearOutlined","LoadingOutlined","ArrowUpOutlined","PaperClipOutlined","CloseOutlined","useStyles","jsx","_jsx","jsxs","_jsxs","FILE_ICONS","XAdkSender","_ref","_ref$clearBtnShow","clearBtnShow","_ref$allowUpload","allowUpload","_ref$loading","loading","_ref$uploadProps","uploadProps","onClear","onChange","onSubmit","onStop","onFilesChange","_ref$maxFileSize","maxFileSize","_ref$allowedFileTypes","allowedFileTypes","_ref$maxFiles","maxFiles","styles","_useState","_useState2","_slicedToArray","value","setValue","_useState3","_useState4","files","setFiles","_useState5","_useState6","isDragOver","setIsDragOver","containerRef","fileInputRef","uploadRef","generateId","Date","now","toString","Math","random","substr","getFileIcon","fileType","default","formatFileSize","bytes","toFixed","checkFileType","file","length","some","type","includes","mainType","split","startsWith","checkFileSize","maxSize","size","validateFile","valid","concat","getFileExtension","filename","ext","pop","toLowerCase","handleFileSelect","selectedFiles","fileArray","Array","from","validFiles","forEach","validation","push","id","uid","name","progress","status","response","error","prev","_toConsumableArray","uploadFiles","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileList","_iterator","_step","_loop","wrap","_callee$","_context2","next","_createForOfIteratorHelper","localFile","rcFile","options","_loop$","_context","map","f","_objectSpread","customRequest","Object","assign","action","data","headers","withCredentials","method","onProgress","event","percent","onSuccess","onError","errorMessage","Error","_typeof","defaultRequest","simulateUpload","stop","s","n","done","delegateYield","t1","e","finish","_x","apply","arguments","_ref3","_callee2","uploadFilesList","_callee2$","_context3","interval","setInterval","clearInterval","setTimeout","mockResponse","code","fileId","floor","tempUrl","fileName","_x2","handleRemoveFile","filter","triggerFileSelect","current","click","handleDragOver","preventDefault","stopPropagation","handleDragLeave","handleDrop","dataTransfer","handleSubmit","trim","warning","successFiles","uploadingFiles","confirm","title","content","okText","cancelText","onOk","formattedFiles","formatFilesForServer","text","onCancel","info","_file$response","responseData","url","mimeType","handleInputChange","newValue","target","handleKeyDown","key","shiftKey","renderFileList","className","fileListArea","children","fileCard","fileIcon","fileInfo","substring","uploadProgress","showInfo","strokeColor","fileSize","fileRemoveBtn","onClick","disabled","style","fontSize","containerClass","container","uploading","ref","onDragOver","undefined","onDragLeave","onDrop","multiple","accept","join","display","mainArea","senderWrap","onConfirm","placement","iconButton","clearButton","inputAndButtons","textAreaWrapper","TextArea","textArea","onKeyDown","placeholder","autoSize","minRows","maxRows","border","boxShadow","outline","padding","buttonGroup","uploadButton","sendButton","tip"],"sources":["../../../../src/components/XAdkSender/index.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport {\n Popconfirm, \n message, \n Progress,\n Tooltip,\n Input,\n Modal,\n Upload,\n type UploadProps\n} from 'antd';\nimport type { RcFile } from 'antd/es/upload';\nimport { \n ClearOutlined, \n LoadingOutlined, \n ArrowUpOutlined,\n PaperClipOutlined,\n CloseOutlined,\n} from '@ant-design/icons';\nimport { XAdkSenderProps, ServerFile, LocalFile } from '../../types/XAdkSender';\nimport { useStyles } from './styles';\n\n// 文件类型图标映射\nconst FILE_ICONS: Record<string, React.ReactNode> = {\n // ... 保持不变\n};\n\nconst XAdkSender: React.FC<XAdkSenderProps> = ({ \n clearBtnShow = true,\n allowUpload = false,\n loading = false,\n uploadProps = {},\n onClear,\n onChange,\n onSubmit,\n onStop,\n onFilesChange,\n maxFileSize = 10,\n allowedFileTypes = ['image/*', 'application/pdf', 'text/plain'],\n maxFiles = 5\n}) => {\n const styles = useStyles();\n const [value, setValue] = useState<string>('');\n const [files, setFiles] = useState<LocalFile[]>([]);\n const [isDragOver, setIsDragOver] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const uploadRef = useRef<any>(null);\n \n // 生成唯一ID\n const generateId = () => {\n return Date.now().toString(36) + Math.random().toString(36).substr(2);\n };\n \n // 获取文件图标\n const getFileIcon = (fileType: string) => {\n return FILE_ICONS[fileType] || FILE_ICONS.default;\n };\n \n // 格式化文件大小\n const formatFileSize = (bytes: number): string => {\n if (bytes < 1024) return bytes + ' Bytes';\n if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + ' KB';\n return (bytes / (1024 * 1024)).toFixed(1) + ' MB';\n };\n \n // 检查文件类型\n const checkFileType = (file: File): boolean => {\n if (!allowedFileTypes.length) return true;\n \n return allowedFileTypes.some(type => {\n if (type.includes('/*')) {\n const mainType = type.split('/')[0];\n return file.type.startsWith(mainType);\n }\n return file.type === type;\n });\n };\n \n // 检查文件大小\n const checkFileSize = (file: File): boolean => {\n const maxSize = maxFileSize * 1024 * 1024;\n return file.size <= maxSize;\n };\n \n // 验证文件\n const validateFile = (file: File): { valid: boolean; message?: string } => {\n if (files.length >= maxFiles) {\n return { valid: false, message: `最多只能上传 ${maxFiles} 个文件` };\n }\n \n if (!checkFileSize(file)) {\n return { valid: false, message: `文件大小不能超过 ${maxFileSize}MB` };\n }\n \n if (!checkFileType(file)) {\n return { valid: false, message: '不支持的文件类型' };\n }\n \n return { valid: true };\n };\n\n // 获取文件扩展名\n const getFileExtension = (filename: string): string => {\n const ext = filename.split('.').pop();\n return ext ? ext.toLowerCase() : '';\n };\n\n // 处理文件选择\n const handleFileSelect = useCallback((selectedFiles: File[]) => {\n const fileArray = Array.from(selectedFiles);\n const validFiles: LocalFile[] = [];\n \n fileArray.forEach(file => {\n const validation = validateFile(file);\n if (validation.valid) {\n validFiles.push({\n id: generateId(),\n uid: generateId(),\n name: file.name,\n size: file.size,\n type: file.type,\n file,\n progress: 0,\n status: 'pending',\n response: null\n });\n } else {\n message.error(validation.message);\n }\n });\n \n if (validFiles.length > 0) {\n setFiles(prev => [...prev, ...validFiles]);\n uploadFiles(validFiles);\n }\n }, [files.length, maxFiles, maxFileSize, allowedFileTypes]);\n\n // 上传文件\n const uploadFiles = async (fileList: LocalFile[]) => {\n for (const localFile of fileList) {\n // 开始上传\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, status: 'uploading' } : f\n ));\n \n try {\n // 如果外部提供了 customRequest,使用它\n if (uploadProps.customRequest) {\n // 构建 UploadRequestOption\n const rcFile: RcFile = Object.assign(localFile.file, {\n uid: localFile.uid,\n }) as RcFile;\n const options = {\n action: uploadProps.action,\n file: rcFile,\n filename: 'file',\n data: uploadProps.data,\n headers: uploadProps.headers,\n withCredentials: uploadProps.withCredentials,\n method: 'POST' as const,\n onProgress: (event: any) => {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, progress: event.percent || 0 } : f\n ));\n },\n onSuccess: (response: any, file: any) => {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { \n ...f, \n status: 'success', \n progress: 100,\n response \n } : f\n ));\n },\n onError: (error: ProgressEvent<EventTarget>) => {\n // 提取错误信息\n let errorMessage = '上传失败';\n if (error instanceof Error) {\n errorMessage = error.message;\n } else if (error && typeof error === 'object' && 'status' in error) {\n errorMessage = `HTTP ${error.status}`;\n }\n \n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, status: 'error' } : f\n ));\n message.error(`${localFile.name} 上传失败: ${errorMessage}`);\n }\n } as any;\n \n // 调用外部传入的 customRequest\n uploadProps.customRequest(options, {\n defaultRequest: () => {\n // 默认的上传逻辑\n simulateUpload([localFile]);\n }\n });\n } else {\n // 使用默认的上传逻辑\n simulateUpload([localFile]);\n }\n } catch (error) {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, status: 'error' } : f\n ));\n message.error(`${localFile.name} 上传失败`);\n }\n }\n };\n\n // 模拟上传过程\n const simulateUpload = async (uploadFilesList: LocalFile[]) => {\n uploadFilesList.forEach(localFile => {\n let progress = 0;\n const interval = setInterval(() => {\n progress += 10;\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, progress } : f\n ));\n \n if (progress >= 100) {\n clearInterval(interval);\n setTimeout(() => {\n // 模拟服务器响应\n const mockResponse = {\n code: 200,\n data: {\n fileId: Math.floor(Math.random() * 1000) + 1,\n tempUrl: `https://example.com/uploads/${localFile.name}`,\n fileName: localFile.name,\n fileType: getFileExtension(localFile.name)\n }\n };\n \n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { \n ...f, \n status: 'success', \n progress: 100,\n response: mockResponse\n } : f\n ));\n }, 300);\n }\n }, 100);\n });\n };\n \n // 删除文件\n const handleRemoveFile = (id: string) => {\n setFiles(prev => prev.filter(file => file.id !== id));\n };\n \n // 触发文件选择\n const triggerFileSelect = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n \n // 处理拖拽事件\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(true);\n }\n }, [allowUpload]);\n \n const handleDragLeave = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(false);\n }\n }, [allowUpload]);\n \n const handleDrop = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n \n if (allowUpload && e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n handleFileSelect(Array.from(e.dataTransfer.files));\n }\n }, [allowUpload, handleFileSelect]);\n \n // 处理提交\n const handleSubmit = () => {\n if (!value.trim() && files.length === 0) {\n message.warning('请输入消息或选择文件');\n return;\n }\n\n const successFiles = files.filter(file => file.status === 'success');\n const uploadingFiles = files.filter(file => file.status === 'uploading');\n \n if (uploadingFiles.length > 0) {\n Modal.confirm({\n title: '文件上传中',\n content: `还有 ${uploadingFiles.length} 个文件正在上传,是否继续发送?`,\n okText: '发送已完成的',\n cancelText: '等待全部完成',\n onOk: () => {\n const formattedFiles = formatFilesForServer(successFiles);\n if (onSubmit) {\n onSubmit({ \n text: value, \n files: formattedFiles \n });\n }\n \n setValue('');\n setFiles(prev => prev.filter(f => f.status !== 'success'));\n },\n onCancel: () => {\n message.info('请等待文件上传完成后再发送');\n },\n });\n } else {\n const formattedFiles = formatFilesForServer(successFiles);\n \n if (onSubmit) {\n onSubmit({ \n text: value, \n files: formattedFiles \n });\n }\n \n setValue('');\n setFiles(prev => prev.filter(f => f.status !== 'success'));\n }\n };\n\n // 格式化文件列表为服务端格式\n const formatFilesForServer = (fileList: LocalFile[]): ServerFile[] => {\n return fileList\n .filter(file => file.status === 'success' && file.response?.data)\n .map(file => {\n const responseData = file.response.data;\n \n return {\n fileName: file.name,\n fileId: responseData.fileId || responseData.id || 0,\n tempUrl: responseData.tempUrl || responseData.url || '',\n type: responseData.fileType || getFileExtension(file.name),\n mimeType: file.type\n };\n });\n };\n \n // 处理输入框变化\n const handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n setValue(newValue);\n onChange?.(newValue);\n };\n \n // 处理回车键\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSubmit();\n }\n };\n \n // 渲染文件列表\n const renderFileList = () => {\n if (files.length === 0) return null;\n \n return (\n <div className={styles.fileListArea}>\n <div className={styles.fileList}>\n {files.map(file => (\n <div key={file.id} className={styles.fileCard}>\n <div className={styles.fileIcon}>\n {getFileIcon(file.type)}\n </div>\n <div className={styles.fileInfo}>\n <div className={styles.fileName}>\n <Tooltip title={file.name}>\n {file.name.length > 15 ? `${file.name.substring(0, 15)}...` : file.name}\n </Tooltip>\n </div>\n \n {file.status === 'uploading' ? (\n <div className={styles.uploadProgress}>\n <Progress \n percent={file.progress} \n size=\"small\" \n showInfo={false}\n strokeColor=\"#1890ff\"\n />\n </div>\n ) : (\n <div className={styles.fileSize}>\n {formatFileSize(file.size)}\n </div>\n )}\n </div>\n <button\n className={styles.fileRemoveBtn}\n onClick={() => handleRemoveFile(file.id)}\n disabled={file.status === 'uploading'}\n aria-label=\"删除文件\"\n >\n <CloseOutlined style={{ fontSize: 8 }} />\n </button>\n </div>\n ))}\n </div>\n </div>\n );\n };\n \n const containerClass = `${styles.container} ${isDragOver ? 'drag-over' : ''}`;\n const uploading = files.some(f => f.status === 'uploading');\n \n return (\n <div \n ref={containerRef}\n className={containerClass}\n onDragOver={allowUpload ? handleDragOver : undefined}\n onDragLeave={allowUpload ? handleDragLeave : undefined}\n onDrop={allowUpload ? handleDrop : undefined}\n >\n {allowUpload && files.length > 0 && renderFileList()}\n \n {/* 隐藏的原生 file input */}\n {allowUpload && (\n <input\n ref={fileInputRef}\n type=\"file\"\n multiple\n accept={allowedFileTypes.join(',')}\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) {\n handleFileSelect(Array.from(e.target.files));\n e.target.value = '';\n }\n }}\n />\n )}\n \n <div className={styles.mainArea}>\n <div className={styles.senderWrap}>\n {clearBtnShow && (\n <Popconfirm\n title=\"确定要清空聊天记录吗?\"\n onConfirm={onClear}\n placement=\"top\"\n okText=\"确定\"\n cancelText=\"取消\"\n disabled={uploading || loading}\n >\n <button\n className={`${styles.iconButton} ${styles.clearButton}`}\n disabled={uploading || loading}\n aria-label=\"清空聊天记录\"\n >\n <ClearOutlined />\n </button>\n </Popconfirm>\n )}\n \n <div className={styles.inputAndButtons}>\n <div className={styles.textAreaWrapper}>\n <Input.TextArea\n className={styles.textArea}\n value={value}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder=\"请输入消息...\"\n disabled={uploading || loading}\n autoSize={{ minRows: 1, maxRows: 4 }}\n style={{\n border: 'none',\n boxShadow: 'none',\n outline: 'none',\n padding: 0,\n }}\n />\n </div>\n \n <div className={styles.buttonGroup}>\n {allowUpload && (\n <Tooltip title=\"上传文件\">\n <button\n className={`${styles.iconButton} ${styles.uploadButton}`}\n onClick={triggerFileSelect}\n disabled={uploading || loading}\n aria-label=\"上传文件\"\n >\n <PaperClipOutlined />\n </button>\n </Tooltip>\n )}\n \n <Tooltip title={loading ? \"停止生成\" : \"发送消息\"}>\n <button\n className={`${styles.iconButton} ${styles.sendButton} ${loading ? 'stop' : ''}`}\n onClick={loading ? onStop : handleSubmit}\n disabled={uploading}\n aria-label={loading ? \"停止生成\" : \"发送消息\"}\n >\n {loading ? <LoadingOutlined /> : <ArrowUpOutlined />}\n </button>\n </Tooltip>\n </div>\n </div>\n </div>\n \n <div className={styles.tip}>\n 内容由AI生成,无法确保真实准确,仅供参考\n </div>\n </div>\n </div>\n );\n};\n\nexport default XAdkSender;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useState","useRef","useCallback","Popconfirm","message","Progress","Tooltip","Input","Modal","ClearOutlined","LoadingOutlined","ArrowUpOutlined","PaperClipOutlined","CloseOutlined","useStyles","jsx","_jsx","jsxs","_jsxs","FILE_ICONS","XAdkSender","_ref","_ref$clearBtnShow","clearBtnShow","_ref$allowUpload","allowUpload","_ref$loading","loading","_ref$uploadRequest","uploadRequest","onClear","onChange","onSubmit","onStop","onFilesChange","_ref$maxFileSize","maxFileSize","_ref$allowedFileTypes","allowedFileTypes","_ref$maxFiles","maxFiles","styles","_useState","_useState2","_slicedToArray","value","setValue","_useState3","_useState4","files","setFiles","_useState5","_useState6","isDragOver","setIsDragOver","containerRef","fileInputRef","uploadRef","generateId","Date","now","toString","Math","random","substr","getFileIcon","fileType","default","formatFileSize","bytes","toFixed","checkFileType","file","length","some","type","includes","mainType","split","startsWith","checkFileSize","maxSize","size","validateFile","valid","concat","getFileExtension","filename","ext","pop","toLowerCase","handleFileSelect","selectedFiles","fileArray","Array","from","validFiles","forEach","validation","push","id","uid","name","progress","status","response","error","prev","_toConsumableArray","uploadFiles","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileList","_iterator","_step","_loop","wrap","_callee$","_context2","next","_createForOfIteratorHelper","localFile","_loop$","_context","map","f","_objectSpread","onProgress","e","percent","onSuccess","onError","errorMessage","t0","console","Error","stop","s","n","done","delegateYield","t1","finish","_x","apply","arguments","simulateUpload","_ref3","_callee2","uploadFilesList","_callee2$","_context3","interval","setInterval","clearInterval","setTimeout","mockResponse","code","data","fileId","floor","tempUrl","fileName","_x2","handleRemoveFile","filter","triggerFileSelect","current","click","handleDragOver","preventDefault","stopPropagation","handleDragLeave","handleDrop","dataTransfer","handleSubmit","trim","warning","successFiles","uploadingFiles","confirm","title","content","okText","cancelText","onOk","formattedFiles","formatFilesForServer","text","onCancel","info","_file$response","responseData","url","mimeType","handleInputChange","newValue","target","handleKeyDown","key","shiftKey","renderFileList","className","fileListArea","children","fileCard","fileIcon","fileInfo","substring","uploadProgress","showInfo","strokeColor","fileSize","fileRemoveBtn","onClick","disabled","style","fontSize","containerClass","container","uploading","ref","onDragOver","undefined","onDragLeave","onDrop","multiple","accept","join","display","mainArea","senderWrap","onConfirm","placement","iconButton","clearButton","inputAndButtons","textAreaWrapper","TextArea","textArea","onKeyDown","placeholder","autoSize","minRows","maxRows","border","boxShadow","outline","padding","buttonGroup","uploadButton","sendButton","tip"],"sources":["../../../../src/components/XAdkSender/index.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport {\n Popconfirm, \n message, \n Progress,\n Tooltip,\n Input,\n Modal,\n} from 'antd';\nimport { \n ClearOutlined, \n LoadingOutlined, \n ArrowUpOutlined,\n PaperClipOutlined,\n CloseOutlined,\n} from '@ant-design/icons';\nimport { XAdkSenderProps, ServerFile, LocalFile } from '../../types/XAdkSender';\nimport { useStyles } from './styles';\n\n// 文件类型图标映射\nconst FILE_ICONS: Record<string, React.ReactNode> = {\n // ... 保持不变\n};\n\nconst XAdkSender: React.FC<XAdkSenderProps> = ({ \n clearBtnShow = true,\n allowUpload = false,\n loading = false,\n uploadRequest = () => {},\n onClear,\n onChange,\n onSubmit,\n onStop,\n onFilesChange,\n maxFileSize = 10,\n allowedFileTypes = ['image/*', 'application/pdf', 'text/plain'],\n maxFiles = 5\n}) => {\n const styles = useStyles();\n const [value, setValue] = useState<string>('');\n const [files, setFiles] = useState<LocalFile[]>([]);\n const [isDragOver, setIsDragOver] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const uploadRef = useRef<any>(null);\n \n // 生成唯一ID\n const generateId = () => {\n return Date.now().toString(36) + Math.random().toString(36).substr(2);\n };\n \n // 获取文件图标\n const getFileIcon = (fileType: string) => {\n return FILE_ICONS[fileType] || FILE_ICONS.default;\n };\n \n // 格式化文件大小\n const formatFileSize = (bytes: number): string => {\n if (bytes < 1024) return bytes + ' Bytes';\n if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + ' KB';\n return (bytes / (1024 * 1024)).toFixed(1) + ' MB';\n };\n \n // 检查文件类型\n const checkFileType = (file: File): boolean => {\n if (!allowedFileTypes.length) return true;\n \n return allowedFileTypes.some(type => {\n if (type.includes('/*')) {\n const mainType = type.split('/')[0];\n return file.type.startsWith(mainType);\n }\n return file.type === type;\n });\n };\n \n // 检查文件大小\n const checkFileSize = (file: File): boolean => {\n const maxSize = maxFileSize * 1024 * 1024;\n return file.size <= maxSize;\n };\n \n // 验证文件\n const validateFile = (file: File): { valid: boolean; message?: string } => {\n if (files.length >= maxFiles) {\n return { valid: false, message: `最多只能上传 ${maxFiles} 个文件` };\n }\n \n if (!checkFileSize(file)) {\n return { valid: false, message: `文件大小不能超过 ${maxFileSize}MB` };\n }\n \n if (!checkFileType(file)) {\n return { valid: false, message: '不支持的文件类型' };\n }\n \n return { valid: true };\n };\n\n // 获取文件扩展名\n const getFileExtension = (filename: string): string => {\n const ext = filename.split('.').pop();\n return ext ? ext.toLowerCase() : '';\n };\n\n // 处理文件选择\n const handleFileSelect = useCallback((selectedFiles: File[]) => {\n const fileArray = Array.from(selectedFiles);\n const validFiles: LocalFile[] = [];\n \n fileArray.forEach(file => {\n const validation = validateFile(file);\n if (validation.valid) {\n validFiles.push({\n id: generateId(),\n uid: generateId(),\n name: file.name,\n size: file.size,\n type: file.type,\n file,\n progress: 0,\n status: 'pending',\n response: null\n });\n } else {\n message.error(validation.message);\n }\n });\n \n if (validFiles.length > 0) {\n setFiles(prev => [...prev, ...validFiles]);\n uploadFiles(validFiles);\n }\n }, [files.length, maxFiles, maxFileSize, allowedFileTypes]);\n\n // 上传文件\n const uploadFiles = async (fileList: LocalFile[]) => {\n for (const localFile of fileList) {\n // 开始上传\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, status: 'uploading' } : f\n ));\n \n try {\n await uploadRequest({\n file: localFile.file,\n onProgress: (e) => {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, progress: e.percent } : f\n ));\n },\n onSuccess: (response) => {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { \n ...f, \n status: 'success', \n progress: 100,\n response \n } : f\n ));\n },\n onError: (error) => {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { \n ...f, \n status: 'error',\n errorMessage: error.message || '上传失败'\n } : f\n ));\n message.error(`${localFile.name} 上传失败: ${error.message || '未知错误'}`);\n }\n });\n } catch (error) {\n console.error('上传处理错误:', error);\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { \n ...f, \n status: 'error',\n errorMessage: error instanceof Error ? error.message : '上传处理失败'\n } : f\n ));\n message.error(`${localFile.name} 上传失败`);\n }\n }\n };\n\n // 模拟上传过程\n const simulateUpload = async (uploadFilesList: LocalFile[]) => {\n uploadFilesList.forEach(localFile => {\n let progress = 0;\n const interval = setInterval(() => {\n progress += 10;\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, progress } : f\n ));\n \n if (progress >= 100) {\n clearInterval(interval);\n setTimeout(() => {\n // 模拟服务器响应\n const mockResponse = {\n code: 200,\n data: {\n fileId: Math.floor(Math.random() * 1000) + 1,\n tempUrl: `https://example.com/uploads/${localFile.name}`,\n fileName: localFile.name,\n fileType: getFileExtension(localFile.name)\n }\n };\n \n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { \n ...f, \n status: 'success', \n progress: 100,\n response: mockResponse\n } : f\n ));\n }, 300);\n }\n }, 100);\n });\n };\n \n // 删除文件\n const handleRemoveFile = (id: string) => {\n setFiles(prev => prev.filter(file => file.id !== id));\n };\n \n // 触发文件选择\n const triggerFileSelect = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n \n // 处理拖拽事件\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(true);\n }\n }, [allowUpload]);\n \n const handleDragLeave = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(false);\n }\n }, [allowUpload]);\n \n const handleDrop = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n \n if (allowUpload && e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n handleFileSelect(Array.from(e.dataTransfer.files));\n }\n }, [allowUpload, handleFileSelect]);\n \n // 处理提交\n const handleSubmit = () => {\n if (!value.trim() && files.length === 0) {\n message.warning('请输入消息或选择文件');\n return;\n }\n\n const successFiles = files.filter(file => file.status === 'success');\n const uploadingFiles = files.filter(file => file.status === 'uploading');\n \n if (uploadingFiles.length > 0) {\n Modal.confirm({\n title: '文件上传中',\n content: `还有 ${uploadingFiles.length} 个文件正在上传,是否继续发送?`,\n okText: '发送已完成的',\n cancelText: '等待全部完成',\n onOk: () => {\n const formattedFiles = formatFilesForServer(successFiles);\n if (onSubmit) {\n onSubmit({ \n text: value, \n files: formattedFiles \n });\n }\n\n setValue('');\n setFiles(prev => prev.filter(f => f.status !== 'success'));\n },\n onCancel: () => {\n message.info('请等待文件上传完成后再发送');\n },\n });\n } else {\n const formattedFiles = formatFilesForServer(successFiles);\n \n if (onSubmit) {\n onSubmit({ \n text: value, \n files: formattedFiles \n });\n }\n \n setValue('');\n setFiles(prev => prev.filter(f => f.status !== 'success'));\n }\n };\n\n // 格式化文件列表为服务端格式\n const formatFilesForServer = (fileList: LocalFile[]): ServerFile[] => {\n return fileList\n .filter(file => file.status === 'success' && file.response?.data)\n .map(file => {\n const responseData = file.response.data;\n \n return {\n fileName: file.name,\n fileId: responseData.fileId || responseData.id || 0,\n tempUrl: responseData.tempUrl || responseData.url || '',\n type: responseData.fileType || getFileExtension(file.name),\n mimeType: file.type\n };\n });\n };\n \n // 处理输入框变化\n const handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n setValue(newValue);\n onChange?.(newValue);\n };\n \n // 处理回车键\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSubmit();\n }\n };\n \n // 渲染文件列表\n const renderFileList = () => {\n if (files.length === 0) return null;\n \n return (\n <div className={styles.fileListArea}>\n <div className={styles.fileList}>\n {files.map(file => (\n <div key={file.id} className={styles.fileCard}>\n <div className={styles.fileIcon}>\n {getFileIcon(file.type)}\n </div>\n <div className={styles.fileInfo}>\n <div className={styles.fileName}>\n <Tooltip title={file.name}>\n {file.name.length > 15 ? `${file.name.substring(0, 15)}...` : file.name}\n </Tooltip>\n </div>\n \n {file.status === 'uploading' ? (\n <div className={styles.uploadProgress}>\n <Progress \n percent={file.progress} \n size=\"small\" \n showInfo={false}\n strokeColor=\"#1890ff\"\n />\n </div>\n ) : (\n <div className={styles.fileSize}>\n {formatFileSize(file.size)}\n </div>\n )}\n </div>\n <button\n className={styles.fileRemoveBtn}\n onClick={() => handleRemoveFile(file.id)}\n disabled={file.status === 'uploading'}\n aria-label=\"删除文件\"\n >\n <CloseOutlined style={{ fontSize: 8 }} />\n </button>\n </div>\n ))}\n </div>\n </div>\n );\n };\n \n const containerClass = `${styles.container} ${isDragOver ? 'drag-over' : ''}`;\n const uploading = files.some(f => f.status === 'uploading');\n \n return (\n <div \n ref={containerRef}\n className={containerClass}\n onDragOver={allowUpload ? handleDragOver : undefined}\n onDragLeave={allowUpload ? handleDragLeave : undefined}\n onDrop={allowUpload ? handleDrop : undefined}\n >\n {allowUpload && files.length > 0 && renderFileList()}\n \n {/* 隐藏的原生 file input */}\n {allowUpload && (\n <input\n ref={fileInputRef}\n type=\"file\"\n multiple\n accept={allowedFileTypes.join(',')}\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) {\n handleFileSelect(Array.from(e.target.files));\n e.target.value = '';\n }\n }}\n />\n )}\n \n <div className={styles.mainArea}>\n <div className={styles.senderWrap}>\n {clearBtnShow && (\n <Popconfirm\n title=\"确定要清空聊天记录吗?\"\n onConfirm={onClear}\n placement=\"top\"\n okText=\"确定\"\n cancelText=\"取消\"\n disabled={uploading || loading}\n >\n <button\n className={`${styles.iconButton} ${styles.clearButton}`}\n disabled={uploading || loading}\n aria-label=\"清空聊天记录\"\n >\n <ClearOutlined />\n </button>\n </Popconfirm>\n )}\n \n <div className={styles.inputAndButtons}>\n <div className={styles.textAreaWrapper}>\n <Input.TextArea\n className={styles.textArea}\n value={value}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder=\"请输入消息...\"\n disabled={uploading || loading}\n autoSize={{ minRows: 1, maxRows: 4 }}\n style={{\n border: 'none',\n boxShadow: 'none',\n outline: 'none',\n padding: 0,\n }}\n />\n </div>\n \n <div className={styles.buttonGroup}>\n {allowUpload && (\n <Tooltip title=\"上传文件\">\n <button\n className={`${styles.iconButton} ${styles.uploadButton}`}\n onClick={triggerFileSelect}\n disabled={uploading || loading}\n aria-label=\"上传文件\"\n >\n <PaperClipOutlined />\n </button>\n </Tooltip>\n )}\n \n <Tooltip title={loading ? \"停止生成\" : \"发送消息\"}>\n <button\n className={`${styles.iconButton} ${styles.sendButton} ${loading ? 'stop' : ''}`}\n onClick={loading ? onStop : handleSubmit}\n disabled={uploading}\n aria-label={loading ? \"停止生成\" : \"发送消息\"}\n >\n {loading ? <LoadingOutlined /> : <ArrowUpOutlined />}\n </button>\n </Tooltip>\n </div>\n </div>\n </div>\n \n <div className={styles.tip}>\n 内容由AI生成,无法确保真实准确,仅供参考\n </div>\n </div>\n </div>\n );\n};\n\nexport default XAdkSender;\n"],"mappings":"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"}
|
|
@@ -75,16 +75,9 @@ export var 单聊天窗口实例 = {
|
|
|
75
75
|
maxWidth: '350px',
|
|
76
76
|
height: '600px'
|
|
77
77
|
},
|
|
78
|
-
children: /*#__PURE__*/_jsx(XAdkWebProvider, _objectSpread(
|
|
78
|
+
children: /*#__PURE__*/_jsx(XAdkWebProvider, _objectSpread({
|
|
79
79
|
ref: providerRef
|
|
80
|
-
}, args)
|
|
81
|
-
onError: function onError(providerError) {
|
|
82
|
-
return console.log(providerError);
|
|
83
|
-
},
|
|
84
|
-
onMessage: function onMessage(data) {
|
|
85
|
-
return console.log(data);
|
|
86
|
-
}
|
|
87
|
-
}))
|
|
80
|
+
}, args))
|
|
88
81
|
})]
|
|
89
82
|
});
|
|
90
83
|
},
|
|
@@ -127,8 +120,14 @@ export var 携带历史记录实例 = {
|
|
|
127
120
|
onError: function onError(providerError) {
|
|
128
121
|
return console.log(providerError);
|
|
129
122
|
},
|
|
130
|
-
|
|
123
|
+
onSuccess: function onSuccess(appInfo) {
|
|
124
|
+
return console.log(appInfo);
|
|
125
|
+
},
|
|
126
|
+
onStream: function onStream(data) {
|
|
131
127
|
return console.log(data);
|
|
128
|
+
},
|
|
129
|
+
onMessage: function onMessage(data, message) {
|
|
130
|
+
return console.log(data, message);
|
|
132
131
|
}
|
|
133
132
|
}))
|
|
134
133
|
})
|
|
@@ -136,7 +135,7 @@ export var 携带历史记录实例 = {
|
|
|
136
135
|
},
|
|
137
136
|
args: {
|
|
138
137
|
url: 'https://m-poc-dev.zaxline.com',
|
|
139
|
-
token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
138
|
+
token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2Nzg2MTk3NiwianRpIjoiUVpWODZPRVNMQXFRTWNpcUxwYm1zWFk2UWpzIiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.U6GGZ87DYMQLf7wUO6t7ABRlT2dxwKfseaCji0Hj85Clh-26YZ66lq5O6ly54kgwH8KKQ-88X0TGHRajMcg4GDmrIzHJyEj0piIrfmt_iK7MGFmmpyXtob4JppQxcSB_Fv1nwc67kl4QbPTtsoAGpcPRn1b6vQcDjPoCVwzggws-ExKJS4cFskgr-ll6ihawvFm6xT5hUKdaOwfQT--q836S1NW-O2hZwytTujCWn6E1wdo4spYhy2HmzHHTT1spYG0vs1tr6iBY01mJpcMRDr4kJFFQah5a6H_-TxwO2mOMcjuvHeb1wle-00GwtsQryTz0awKRGqNqR6tLJD_7Rg',
|
|
140
139
|
config: {
|
|
141
140
|
appNo: 'aNGnfWKZDQeMYy3wCVHW9V5L',
|
|
142
141
|
session: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Button","XAdkWebProvider","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","
|
|
1
|
+
{"version":3,"names":["React","Button","XAdkWebProvider","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","url","token","appNo","providerId","携带历史记录实例","_providerRef$current2","width","onError","providerError","onSuccess","appInfo","onStream","data","onMessage","message","session","showSessionList"],"sources":["../../../../src/components/XAdkWebProvider/XAdkWebProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAdkWebProvider from './index';\n\nconst meta: Meta<typeof XAdkWebProvider> = {\n title: 'AI组件/XAdkWebProvider AI容器',\n component: XAdkWebProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: {\n summary: 'XAdkWebProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n }`,\n },\n category: '配置选项',\n },\n },\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '350px', height: '600px' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n // onError={(providerError) => console.log(providerError)}\n // onMessage={(data) => console.log(data)}\n >\n </XAdkWebProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2NzUzNjE2NSwianRpIjoicnktX0RIQnVFbE9tQW1rZWtLNjBnNzREaGk0IiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.UnedO15cSkYyE6u6ZQATLXSYIYb0GylP7RjeJYHDTVwGPuYKOHENgYMbXkL_FOe_V8681eZ5uXpR5k31HsziIjp_GtZdUqLv5O_bEzZ5gKMPmy9uXpr56M-IiB2c6GZRbJF-DI1b4J9QJcvwlIvQG-I2ug50cGmlZ4YHhRrjHnU6Z8j8iJoF4CLUgzG5R0UasIlonfI1uVUXX1lqD4iomZ7UDWodPLi2QpjlCkUq2kaJbjRSZAPHpugff4ZKzAl47nO2deBOBbmDkzPnKmibCwJ5rZVtYIYvWLq8iX0qgkhXEkEn20DB717WPGi779qB8vxOx4rGlwuegRAz_05_qg',\n config: {\n appNo: 'aNGnfWKZDQeMYy3wCVHW9V5L',\n },\n providerId: 'demo-provider',\n },\n};\n\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ height: '600px', width: '100vw' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onSuccess={(appInfo) => console.log(appInfo)}\n onStream={(data) => console.log(data)}\n onMessage={(data, message) => console.log(data, message)}\n />\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2Nzg2MTk3NiwianRpIjoiUVpWODZPRVNMQXFRTWNpcUxwYm1zWFk2UWpzIiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.U6GGZ87DYMQLf7wUO6t7ABRlT2dxwKfseaCji0Hj85Clh-26YZ66lq5O6ly54kgwH8KKQ-88X0TGHRajMcg4GDmrIzHJyEj0piIrfmt_iK7MGFmmpyXtob4JppQxcSB_Fv1nwc67kl4QbPTtsoAGpcPRn1b6vQcDjPoCVwzggws-ExKJS4cFskgr-ll6ihawvFm6xT5hUKdaOwfQT--q836S1NW-O2hZwytTujCWn6E1wdo4spYhy2HmzHHTT1spYG0vs1tr6iBY01mJpcMRDr4kJFFQah5a6H_-TxwO2mOMcjuvHeb1wle-00GwtsQryTz0awKRGqNqR6tLJD_7Rg',\n config: {\n appNo: 'aNGnfWKZDQeMYy3wCVHW9V5L',\n session: {\n showSessionList: true,\n },\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
|
|
@@ -28,6 +28,8 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
28
28
|
_ref$providerId = _ref.providerId,
|
|
29
29
|
providerId = _ref$providerId === void 0 ? 'defaultId' : _ref$providerId,
|
|
30
30
|
onSuccess = _ref.onSuccess,
|
|
31
|
+
onStream = _ref.onStream,
|
|
32
|
+
onMessage = _ref.onMessage,
|
|
31
33
|
onError = _ref.onError;
|
|
32
34
|
// 使用 useAgentGenerator Hook 管理消息状态
|
|
33
35
|
var styles = useStyles();
|
|
@@ -38,7 +40,9 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
38
40
|
config: config,
|
|
39
41
|
token: token,
|
|
40
42
|
onSuccess: onSuccess,
|
|
41
|
-
onError: onError
|
|
43
|
+
onError: onError,
|
|
44
|
+
onStream: onStream,
|
|
45
|
+
onMessage: onMessage
|
|
42
46
|
}),
|
|
43
47
|
appInfo = _useADKChat.appInfo,
|
|
44
48
|
loading = _useADKChat.loading,
|
|
@@ -53,12 +57,13 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
53
57
|
stopChat = _useADKChat.stopChat,
|
|
54
58
|
clearChat = _useADKChat.clearChat,
|
|
55
59
|
suggestChat = _useADKChat.suggestChat,
|
|
60
|
+
confirmFnCall = _useADKChat.confirmFnCall,
|
|
56
61
|
deleteSession = _useADKChat.deleteSession,
|
|
57
62
|
updateSession = _useADKChat.updateSession,
|
|
58
63
|
setCurrentSessionDetail = _useADKChat.setCurrentSessionDetail;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
|
|
65
|
+
// const { appName, icon } = appInfo || {};
|
|
66
|
+
|
|
62
67
|
useImperativeHandle(ref, function () {
|
|
63
68
|
return {
|
|
64
69
|
startChat: startChat,
|
|
@@ -124,14 +129,16 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
124
129
|
|
|
125
130
|
// 发送消息
|
|
126
131
|
var handleSendMessage = /*#__PURE__*/function () {
|
|
127
|
-
var
|
|
128
|
-
var
|
|
132
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
|
|
133
|
+
var _ref2$text, text;
|
|
129
134
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
130
135
|
while (1) switch (_context.prev = _context.next) {
|
|
131
136
|
case 0:
|
|
132
|
-
|
|
137
|
+
_ref2$text = _ref2.text, text = _ref2$text === void 0 ? '' : _ref2$text;
|
|
133
138
|
_context.next = 3;
|
|
134
|
-
return startChat(
|
|
139
|
+
return startChat({
|
|
140
|
+
text: text
|
|
141
|
+
});
|
|
135
142
|
case 3:
|
|
136
143
|
case "end":
|
|
137
144
|
return _context.stop();
|
|
@@ -139,19 +146,19 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
139
146
|
}, _callee);
|
|
140
147
|
}));
|
|
141
148
|
return function handleSendMessage(_x) {
|
|
142
|
-
return
|
|
149
|
+
return _ref3.apply(this, arguments);
|
|
143
150
|
};
|
|
144
151
|
}();
|
|
145
152
|
|
|
146
153
|
// 处理添加反馈
|
|
147
154
|
var handleAddFeedback = /*#__PURE__*/function () {
|
|
148
|
-
var
|
|
155
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
|
|
149
156
|
var _data$raw$isLike, _data$raw;
|
|
150
|
-
var
|
|
157
|
+
var _ref5, appNo, isLike, _yield$addFeedback, result;
|
|
151
158
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
152
159
|
while (1) switch (_context2.prev = _context2.next) {
|
|
153
160
|
case 0:
|
|
154
|
-
|
|
161
|
+
_ref5 = config || {}, appNo = _ref5.appNo;
|
|
155
162
|
isLike = (_data$raw$isLike = data === null || data === void 0 || (_data$raw = data.raw) === null || _data$raw === void 0 ? void 0 : _data$raw.isLike) !== null && _data$raw$isLike !== void 0 ? _data$raw$isLike : 0;
|
|
156
163
|
if (!(isLike !== 0)) {
|
|
157
164
|
_context2.next = 5;
|
|
@@ -199,16 +206,16 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
199
206
|
}, _callee2);
|
|
200
207
|
}));
|
|
201
208
|
return function handleAddFeedback(_x2) {
|
|
202
|
-
return
|
|
209
|
+
return _ref4.apply(this, arguments);
|
|
203
210
|
};
|
|
204
211
|
}();
|
|
205
|
-
var renderFooter = function renderFooter(
|
|
206
|
-
var
|
|
207
|
-
msg =
|
|
208
|
-
|
|
209
|
-
isLastBotMsg =
|
|
210
|
-
|
|
211
|
-
isLastMsg =
|
|
212
|
+
var renderFooter = function renderFooter(_ref6) {
|
|
213
|
+
var _ref6$message = _ref6.message,
|
|
214
|
+
msg = _ref6$message === void 0 ? {} : _ref6$message,
|
|
215
|
+
_ref6$isLastBotMsg = _ref6.isLastBotMsg,
|
|
216
|
+
isLastBotMsg = _ref6$isLastBotMsg === void 0 ? false : _ref6$isLastBotMsg,
|
|
217
|
+
_ref6$isLastMsg = _ref6.isLastMsg,
|
|
218
|
+
isLastMsg = _ref6$isLastMsg === void 0 ? false : _ref6$isLastMsg;
|
|
212
219
|
if (isLastBotMsg) {
|
|
213
220
|
var _msg$raw;
|
|
214
221
|
return /*#__PURE__*/_jsxs(Flex, {
|
|
@@ -253,7 +260,7 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
253
260
|
msg: msg,
|
|
254
261
|
activeColor: (appInfo === null || appInfo === void 0 ? void 0 : appInfo.appTheme) || primaryBlue,
|
|
255
262
|
onSubmit: ( /*#__PURE__*/function () {
|
|
256
|
-
var
|
|
263
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(formData) {
|
|
257
264
|
var _yield$addFeedback2, result;
|
|
258
265
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
259
266
|
while (1) switch (_context3.prev = _context3.next) {
|
|
@@ -295,7 +302,7 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
295
302
|
}, _callee3);
|
|
296
303
|
}));
|
|
297
304
|
return function (_x3) {
|
|
298
|
-
return
|
|
305
|
+
return _ref7.apply(this, arguments);
|
|
299
306
|
};
|
|
300
307
|
}())
|
|
301
308
|
})
|
|
@@ -442,6 +449,7 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
442
449
|
messages: messages,
|
|
443
450
|
footer: renderFooter,
|
|
444
451
|
onSubmit: handleSendMessage,
|
|
452
|
+
onConfirm: confirmFnCall,
|
|
445
453
|
onStop: stopChat,
|
|
446
454
|
onClear: clearChat,
|
|
447
455
|
onSuggest: suggestChat,
|