bhd-components 0.10.3 → 0.10.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/README.md +1 -1
- package/dist/index.esm.es5.development.js +100 -76
- package/dist/index.esm.es5.production.js +1 -1
- package/dist/vendor.esm.es5.development.js +2 -2
- package/dist/vendor.esm.es5.production.js +2 -2
- package/es2017/AIMessageList/components/footer/index.js +4 -3
- package/es2017/AIMessageList/type.d.ts +25 -12
- package/esm/AIMessageList/components/footer/index.js +100 -74
- package/esm/AIMessageList/type.d.ts +25 -12
- package/package.json +1 -1
|
@@ -183,8 +183,8 @@ const Footer = /*#__PURE__*/ forwardRef((props, ref)=>{
|
|
|
183
183
|
});
|
|
184
184
|
sendMsgAjax();
|
|
185
185
|
};
|
|
186
|
-
const sendMsgAjax = ()=>{
|
|
187
|
-
const { url, method = "POST", headers = {}, params = ()=>"", onOpen = ()=>{}, onMessage = (ev)=>ev, onClose = ()=>{}, onError = ()=>{}, coverProps = {} } = sendMsgAjaxParams;
|
|
186
|
+
const sendMsgAjax = async ()=>{
|
|
187
|
+
const { url, method = "POST", headers = {}, params = ()=>"", onOpen = ()=>{}, onMessage = (ev)=>ev, onClose = ()=>{}, onError = ()=>{}, coverProps = {}, beforeSendMsg = ()=>Promise.resolve() } = sendMsgAjaxParams;
|
|
188
188
|
ctrl.current = new AbortController();
|
|
189
189
|
// apiRef
|
|
190
190
|
console.log("apiRef", apiRef);
|
|
@@ -208,13 +208,14 @@ const Footer = /*#__PURE__*/ forwardRef((props, ref)=>{
|
|
|
208
208
|
recordRef.current.referencesSource,
|
|
209
209
|
fileListRef.current ? fileListRef.current.getFileList() : []
|
|
210
210
|
];
|
|
211
|
+
let beforeInfo = await beforeSendMsg(...arg);
|
|
211
212
|
fetchEventSource(url, _object_spread({
|
|
212
213
|
method,
|
|
213
214
|
headers: _object_spread({
|
|
214
215
|
"Content-Type": "application/json",
|
|
215
216
|
Accept: "text/event-stream,application/json"
|
|
216
217
|
}, headers),
|
|
217
|
-
body: params(...arg),
|
|
218
|
+
body: params(...arg, beforeInfo),
|
|
218
219
|
openWhenHidden: true,
|
|
219
220
|
signal: ctrl.current.signal,
|
|
220
221
|
onopen: (res)=>{
|
|
@@ -47,10 +47,13 @@ export interface contentConfigProps {
|
|
|
47
47
|
}>; // 列表数据
|
|
48
48
|
loadMore?: boolean; // 是否开启加载更多 // 默认为true
|
|
49
49
|
helloMsg?: string; //欢迎语
|
|
50
|
-
pageSize?: number
|
|
50
|
+
pageSize?: number; //每页数量 默认为30
|
|
51
51
|
coverRenderText?: (item, html) => React.ReactNode; // 覆盖文本内容
|
|
52
|
-
coverRenderReferences?: (
|
|
53
|
-
|
|
52
|
+
coverRenderReferences?: (
|
|
53
|
+
item: dataItemType,
|
|
54
|
+
referenceNode: React.ReactNode
|
|
55
|
+
) => React.ReactNode; //覆盖引用内容
|
|
56
|
+
onRecordMessage?: (item: dataItemType) => void; // 发送和接收的消息记录
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
// content props
|
|
@@ -82,13 +85,19 @@ export interface sendMsgAjaxParams {
|
|
|
82
85
|
params: (
|
|
83
86
|
value: string,
|
|
84
87
|
refereces: referenceType,
|
|
85
|
-
fileList: fileCustomProps[]
|
|
88
|
+
fileList: fileCustomProps[],
|
|
89
|
+
beforeInfo:any,
|
|
86
90
|
) => string;
|
|
87
91
|
onOpen?: (res: Response) => void;
|
|
88
92
|
onMessage?: (ev: EventSourceMessage) => { id: string; content: string };
|
|
89
93
|
onClose?: () => void;
|
|
90
94
|
onError?: (err: any) => void;
|
|
91
95
|
coverProps?: object;
|
|
96
|
+
beforeSendMsg: (
|
|
97
|
+
value: string,
|
|
98
|
+
refereces: referenceType,
|
|
99
|
+
fileList: fileCustomProps[]
|
|
100
|
+
) => Promise<any>;
|
|
92
101
|
}
|
|
93
102
|
|
|
94
103
|
// footer file Props
|
|
@@ -100,7 +109,12 @@ export interface fileUploadProps {
|
|
|
100
109
|
multiple?: boolean; // 是否允许多选
|
|
101
110
|
customRequest: (
|
|
102
111
|
file: File
|
|
103
|
-
) => Promise<{
|
|
112
|
+
) => Promise<{
|
|
113
|
+
url: string;
|
|
114
|
+
fileId: string;
|
|
115
|
+
source: File;
|
|
116
|
+
status: fileStatus;
|
|
117
|
+
}>; // 自定义上传方法
|
|
104
118
|
mapUploadCount?: number; // 并发上传的数量 默认为1
|
|
105
119
|
deleteFileAjax?: (fileId: string) => Promise<{ fileId: string }>; // 删除文件的ajax 返回删除文件的fileId
|
|
106
120
|
statusText?: (status: fileStatus) => React.ReactNode; // 自定义状态显示
|
|
@@ -127,7 +141,7 @@ export interface footerRefProps {
|
|
|
127
141
|
clearText: () => void; // 清空输入框
|
|
128
142
|
getCanSendMsg: () => boolean; //获取当前是否允许发送消息的状态
|
|
129
143
|
stopMessage: () => void; //停止发送消息
|
|
130
|
-
setReferences:(reference:referenceType)=>void
|
|
144
|
+
setReferences: (reference: referenceType) => void; // 添加引用
|
|
131
145
|
}
|
|
132
146
|
|
|
133
147
|
// sendBtn Props
|
|
@@ -152,10 +166,9 @@ export interface fileListProps {
|
|
|
152
166
|
prefix: string;
|
|
153
167
|
fileUpload: fileUploadProps;
|
|
154
168
|
errorCallback: (error: errorMessageProps) => void;
|
|
155
|
-
changeFileCanSending:(flag:boolean)=>void;
|
|
169
|
+
changeFileCanSending: (flag: boolean) => void;
|
|
156
170
|
}
|
|
157
171
|
|
|
158
|
-
|
|
159
172
|
// file 自定义对象
|
|
160
173
|
|
|
161
174
|
export interface fileCustomProps {
|
|
@@ -175,8 +188,8 @@ export interface FileListRefProps {
|
|
|
175
188
|
deleteFile: (fileId: string) => void;
|
|
176
189
|
updateFile: (fileId: string, status: fileStatus) => void;
|
|
177
190
|
getFileList: () => fileCustomProps[];
|
|
178
|
-
vaildFile: (file: File,fileId?:string) => boolean
|
|
179
|
-
fileToCustomFile:(file:File)=>fileCustomProps
|
|
191
|
+
vaildFile: (file: File, fileId?: string) => boolean; // 校验文件是否合规
|
|
192
|
+
fileToCustomFile: (file: File) => fileCustomProps;
|
|
180
193
|
}
|
|
181
194
|
|
|
182
195
|
// error Message
|
|
@@ -222,8 +235,8 @@ export interface VirtuosoListProps {
|
|
|
222
235
|
export interface VirtuosoListRefProps {
|
|
223
236
|
addMsg: (msg: dataItemType) => void;
|
|
224
237
|
updateMsg: (id: string, obj: any) => void;
|
|
225
|
-
clearInputing: () => void
|
|
226
|
-
recordMsg:(item: dataItemType) => void;
|
|
238
|
+
clearInputing: () => void; //清楚正在输入的inputing
|
|
239
|
+
recordMsg: (item: dataItemType) => void;
|
|
227
240
|
}
|
|
228
241
|
|
|
229
242
|
export interface contentRefProps extends VirtuosoListRefProps {}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
1
2
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
3
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
3
4
|
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
5
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
4
6
|
import { jsx as _jsx, jsxs as _jsxs } from "@ice/jsx-runtime/jsx-runtime";
|
|
5
7
|
import React, { useState, useEffect, useImperativeHandle, forwardRef, useRef, useMemo } from "react";
|
|
6
8
|
import styles from "./index.module.less";
|
|
@@ -186,81 +188,105 @@ var Footer = /*#__PURE__*/ forwardRef(function(props, ref) {
|
|
|
186
188
|
sendMsgAjax();
|
|
187
189
|
};
|
|
188
190
|
var sendMsgAjax = function() {
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
191
|
+
var _ref = _async_to_generator(function() {
|
|
192
|
+
var url, _sendMsgAjaxParams_method, method, _sendMsgAjaxParams_headers, headers, _sendMsgAjaxParams_params, params, _sendMsgAjaxParams_onOpen, onOpen, _sendMsgAjaxParams_onMessage, onMessage, _sendMsgAjaxParams_onClose, onClose, _sendMsgAjaxParams_onError, onError, _sendMsgAjaxParams_coverProps, coverProps, _sendMsgAjaxParams_beforeSendMsg, beforeSendMsg, msgId, createTime, msgContent, recordMsgObj, arg, beforeInfo;
|
|
193
|
+
return _ts_generator(this, function(_state) {
|
|
194
|
+
switch(_state.label){
|
|
195
|
+
case 0:
|
|
196
|
+
url = sendMsgAjaxParams.url, _sendMsgAjaxParams_method = sendMsgAjaxParams.method, method = _sendMsgAjaxParams_method === void 0 ? "POST" : _sendMsgAjaxParams_method, _sendMsgAjaxParams_headers = sendMsgAjaxParams.headers, headers = _sendMsgAjaxParams_headers === void 0 ? {} : _sendMsgAjaxParams_headers, _sendMsgAjaxParams_params = sendMsgAjaxParams.params, params = _sendMsgAjaxParams_params === void 0 ? function() {
|
|
197
|
+
return "";
|
|
198
|
+
} : _sendMsgAjaxParams_params, _sendMsgAjaxParams_onOpen = sendMsgAjaxParams.onOpen, onOpen = _sendMsgAjaxParams_onOpen === void 0 ? function() {} : _sendMsgAjaxParams_onOpen, _sendMsgAjaxParams_onMessage = sendMsgAjaxParams.onMessage, onMessage = _sendMsgAjaxParams_onMessage === void 0 ? function(ev) {
|
|
199
|
+
return ev;
|
|
200
|
+
} : _sendMsgAjaxParams_onMessage, _sendMsgAjaxParams_onClose = sendMsgAjaxParams.onClose, onClose = _sendMsgAjaxParams_onClose === void 0 ? function() {} : _sendMsgAjaxParams_onClose, _sendMsgAjaxParams_onError = sendMsgAjaxParams.onError, onError = _sendMsgAjaxParams_onError === void 0 ? function() {} : _sendMsgAjaxParams_onError, _sendMsgAjaxParams_coverProps = sendMsgAjaxParams.coverProps, coverProps = _sendMsgAjaxParams_coverProps === void 0 ? {} : _sendMsgAjaxParams_coverProps, _sendMsgAjaxParams_beforeSendMsg = sendMsgAjaxParams.beforeSendMsg, beforeSendMsg = _sendMsgAjaxParams_beforeSendMsg === void 0 ? function() {
|
|
201
|
+
return Promise.resolve();
|
|
202
|
+
} : _sendMsgAjaxParams_beforeSendMsg;
|
|
203
|
+
ctrl.current = new AbortController();
|
|
204
|
+
// apiRef
|
|
205
|
+
console.log("apiRef", apiRef);
|
|
206
|
+
msgId = "inputing";
|
|
207
|
+
createTime = new Date().getTime();
|
|
208
|
+
apiRef.contentApi.addMsg({
|
|
209
|
+
id: msgId,
|
|
210
|
+
createTime: createTime,
|
|
211
|
+
content: "正在输入...",
|
|
212
|
+
location: "left",
|
|
213
|
+
reference: null,
|
|
214
|
+
source: null
|
|
215
|
+
});
|
|
216
|
+
msgContent = "";
|
|
217
|
+
setSending(true);
|
|
218
|
+
setTextValue("");
|
|
219
|
+
setReferencesSource(null);
|
|
220
|
+
recordMsgObj = {};
|
|
221
|
+
arg = [
|
|
222
|
+
recordRef.current.value,
|
|
223
|
+
recordRef.current.referencesSource,
|
|
224
|
+
fileListRef.current ? fileListRef.current.getFileList() : []
|
|
225
|
+
];
|
|
226
|
+
return [
|
|
227
|
+
4,
|
|
228
|
+
beforeSendMsg.apply(void 0, _to_consumable_array(arg))
|
|
229
|
+
];
|
|
230
|
+
case 1:
|
|
231
|
+
beforeInfo = _state.sent();
|
|
232
|
+
fetchEventSource(url, _object_spread({
|
|
233
|
+
method: method,
|
|
234
|
+
headers: _object_spread({
|
|
235
|
+
"Content-Type": "application/json",
|
|
236
|
+
Accept: "text/event-stream,application/json"
|
|
237
|
+
}, headers),
|
|
238
|
+
body: params.apply(void 0, _to_consumable_array(arg).concat([
|
|
239
|
+
beforeInfo
|
|
240
|
+
])),
|
|
241
|
+
openWhenHidden: true,
|
|
242
|
+
signal: ctrl.current.signal,
|
|
243
|
+
onopen: function(res) {
|
|
244
|
+
onOpen(res);
|
|
245
|
+
if (res.status === 200) {}
|
|
246
|
+
return null;
|
|
247
|
+
},
|
|
248
|
+
onmessage: function(ev) {
|
|
249
|
+
var data = onMessage(ev);
|
|
250
|
+
msgContent += data.content;
|
|
251
|
+
delete data.content;
|
|
252
|
+
recordMsgObj = _object_spread({
|
|
253
|
+
createTime: createTime,
|
|
254
|
+
content: msgContent,
|
|
255
|
+
location: "left",
|
|
256
|
+
reference: null,
|
|
257
|
+
source: null
|
|
258
|
+
}, data);
|
|
259
|
+
updateMsgRef.current = setTimeout(function() {
|
|
260
|
+
apiRef.contentApi.updateMsg(msgId, recordMsgObj);
|
|
261
|
+
msgId = data.id;
|
|
262
|
+
}, 100);
|
|
263
|
+
},
|
|
264
|
+
onclose: function() {
|
|
265
|
+
onClose();
|
|
266
|
+
setSending(false);
|
|
267
|
+
if (recordMsgObj.id) {
|
|
268
|
+
apiRef.contentApi.recordMsg(recordMsgObj);
|
|
269
|
+
}
|
|
270
|
+
console.log("onclose: ", recordMsgObj);
|
|
271
|
+
},
|
|
272
|
+
onerror: function(err) {
|
|
273
|
+
onError(err);
|
|
274
|
+
if (recordMsgObj.id) {
|
|
275
|
+
apiRef.contentApi.recordMsg(recordMsgObj);
|
|
276
|
+
}
|
|
277
|
+
console.log("onerror: ", err);
|
|
278
|
+
}
|
|
279
|
+
}, coverProps));
|
|
280
|
+
return [
|
|
281
|
+
2
|
|
282
|
+
];
|
|
259
283
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
return function sendMsgAjax() {
|
|
287
|
+
return _ref.apply(this, arguments);
|
|
288
|
+
};
|
|
289
|
+
}();
|
|
264
290
|
// 判断是否超出最大字数
|
|
265
291
|
var judegTextLengthWarn = function() {
|
|
266
292
|
if (typeof maxLength === "function") {
|
|
@@ -47,10 +47,13 @@ export interface contentConfigProps {
|
|
|
47
47
|
}>; // 列表数据
|
|
48
48
|
loadMore?: boolean; // 是否开启加载更多 // 默认为true
|
|
49
49
|
helloMsg?: string; //欢迎语
|
|
50
|
-
pageSize?: number
|
|
50
|
+
pageSize?: number; //每页数量 默认为30
|
|
51
51
|
coverRenderText?: (item, html) => React.ReactNode; // 覆盖文本内容
|
|
52
|
-
coverRenderReferences?: (
|
|
53
|
-
|
|
52
|
+
coverRenderReferences?: (
|
|
53
|
+
item: dataItemType,
|
|
54
|
+
referenceNode: React.ReactNode
|
|
55
|
+
) => React.ReactNode; //覆盖引用内容
|
|
56
|
+
onRecordMessage?: (item: dataItemType) => void; // 发送和接收的消息记录
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
// content props
|
|
@@ -82,13 +85,19 @@ export interface sendMsgAjaxParams {
|
|
|
82
85
|
params: (
|
|
83
86
|
value: string,
|
|
84
87
|
refereces: referenceType,
|
|
85
|
-
fileList: fileCustomProps[]
|
|
88
|
+
fileList: fileCustomProps[],
|
|
89
|
+
beforeInfo:any,
|
|
86
90
|
) => string;
|
|
87
91
|
onOpen?: (res: Response) => void;
|
|
88
92
|
onMessage?: (ev: EventSourceMessage) => { id: string; content: string };
|
|
89
93
|
onClose?: () => void;
|
|
90
94
|
onError?: (err: any) => void;
|
|
91
95
|
coverProps?: object;
|
|
96
|
+
beforeSendMsg: (
|
|
97
|
+
value: string,
|
|
98
|
+
refereces: referenceType,
|
|
99
|
+
fileList: fileCustomProps[]
|
|
100
|
+
) => Promise<any>;
|
|
92
101
|
}
|
|
93
102
|
|
|
94
103
|
// footer file Props
|
|
@@ -100,7 +109,12 @@ export interface fileUploadProps {
|
|
|
100
109
|
multiple?: boolean; // 是否允许多选
|
|
101
110
|
customRequest: (
|
|
102
111
|
file: File
|
|
103
|
-
) => Promise<{
|
|
112
|
+
) => Promise<{
|
|
113
|
+
url: string;
|
|
114
|
+
fileId: string;
|
|
115
|
+
source: File;
|
|
116
|
+
status: fileStatus;
|
|
117
|
+
}>; // 自定义上传方法
|
|
104
118
|
mapUploadCount?: number; // 并发上传的数量 默认为1
|
|
105
119
|
deleteFileAjax?: (fileId: string) => Promise<{ fileId: string }>; // 删除文件的ajax 返回删除文件的fileId
|
|
106
120
|
statusText?: (status: fileStatus) => React.ReactNode; // 自定义状态显示
|
|
@@ -127,7 +141,7 @@ export interface footerRefProps {
|
|
|
127
141
|
clearText: () => void; // 清空输入框
|
|
128
142
|
getCanSendMsg: () => boolean; //获取当前是否允许发送消息的状态
|
|
129
143
|
stopMessage: () => void; //停止发送消息
|
|
130
|
-
setReferences:(reference:referenceType)=>void
|
|
144
|
+
setReferences: (reference: referenceType) => void; // 添加引用
|
|
131
145
|
}
|
|
132
146
|
|
|
133
147
|
// sendBtn Props
|
|
@@ -152,10 +166,9 @@ export interface fileListProps {
|
|
|
152
166
|
prefix: string;
|
|
153
167
|
fileUpload: fileUploadProps;
|
|
154
168
|
errorCallback: (error: errorMessageProps) => void;
|
|
155
|
-
changeFileCanSending:(flag:boolean)=>void;
|
|
169
|
+
changeFileCanSending: (flag: boolean) => void;
|
|
156
170
|
}
|
|
157
171
|
|
|
158
|
-
|
|
159
172
|
// file 自定义对象
|
|
160
173
|
|
|
161
174
|
export interface fileCustomProps {
|
|
@@ -175,8 +188,8 @@ export interface FileListRefProps {
|
|
|
175
188
|
deleteFile: (fileId: string) => void;
|
|
176
189
|
updateFile: (fileId: string, status: fileStatus) => void;
|
|
177
190
|
getFileList: () => fileCustomProps[];
|
|
178
|
-
vaildFile: (file: File,fileId?:string) => boolean
|
|
179
|
-
fileToCustomFile:(file:File)=>fileCustomProps
|
|
191
|
+
vaildFile: (file: File, fileId?: string) => boolean; // 校验文件是否合规
|
|
192
|
+
fileToCustomFile: (file: File) => fileCustomProps;
|
|
180
193
|
}
|
|
181
194
|
|
|
182
195
|
// error Message
|
|
@@ -222,8 +235,8 @@ export interface VirtuosoListProps {
|
|
|
222
235
|
export interface VirtuosoListRefProps {
|
|
223
236
|
addMsg: (msg: dataItemType) => void;
|
|
224
237
|
updateMsg: (id: string, obj: any) => void;
|
|
225
|
-
clearInputing: () => void
|
|
226
|
-
recordMsg:(item: dataItemType) => void;
|
|
238
|
+
clearInputing: () => void; //清楚正在输入的inputing
|
|
239
|
+
recordMsg: (item: dataItemType) => void;
|
|
227
240
|
}
|
|
228
241
|
|
|
229
242
|
export interface contentRefProps extends VirtuosoListRefProps {}
|