@lobehub/ui 1.103.2 → 1.104.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/es/ChatList/Item.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
2
|
import { type ChatItemProps } from "../ChatItem";
|
|
3
3
|
import { ChatMessage } from "../types/chatMessage";
|
|
4
4
|
import { LLMRoleType } from "../types/llm";
|
|
5
5
|
import { type ActionsBarProps } from './ActionsBar';
|
|
6
6
|
export type OnMessageChange = (id: string, content: string) => void;
|
|
7
|
-
export type OnActionClick = (
|
|
7
|
+
export type OnActionClick = (props: ChatMessage) => void;
|
|
8
8
|
export type RenderRole = LLMRoleType | 'default' | string;
|
|
9
9
|
export type RenderItem = FC<{
|
|
10
10
|
key: string;
|
|
11
11
|
} & ChatMessage & ListItemProps>;
|
|
12
|
-
export type RenderMessage = FC<ChatMessage
|
|
12
|
+
export type RenderMessage = FC<ChatMessage & {
|
|
13
|
+
editableContent: ReactNode;
|
|
14
|
+
}>;
|
|
13
15
|
export type RenderMessageExtra = FC<ChatMessage>;
|
|
14
16
|
export type RenderErrorMessage = FC<ChatMessage>;
|
|
15
17
|
export type RenderAction = FC<ActionsBarProps & ChatMessage>;
|
|
@@ -19,13 +21,15 @@ export interface ListItemProps {
|
|
|
19
21
|
/**
|
|
20
22
|
* @description 点击操作按钮的回调函数
|
|
21
23
|
*/
|
|
22
|
-
|
|
24
|
+
onActionsClick?: {
|
|
25
|
+
[role: RenderRole]: OnActionClick;
|
|
26
|
+
};
|
|
23
27
|
/**
|
|
24
28
|
* @description 消息变化的回调函数
|
|
25
29
|
*/
|
|
26
30
|
onMessageChange?: OnMessageChange;
|
|
27
31
|
renderActions?: {
|
|
28
|
-
[
|
|
32
|
+
[actionKey: string]: RenderAction;
|
|
29
33
|
};
|
|
30
34
|
/**
|
|
31
35
|
* @description 渲染错误消息的函数
|
package/es/ChatList/Item.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["renderMessagesExtra", "showTitle", "
|
|
4
|
+
var _excluded = ["renderMessagesExtra", "showTitle", "onActionsClick", "onMessageChange", "type", "text", "renderMessages", "renderErrorMessages", "renderActions", "loading", "groupNav", "renderItems"];
|
|
5
5
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
6
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
7
|
import { App } from 'antd';
|
|
8
|
-
import
|
|
8
|
+
import _copy from 'copy-to-clipboard';
|
|
9
9
|
import { memo, useCallback, useMemo, useState } from 'react';
|
|
10
10
|
import ChatItem from "../ChatItem";
|
|
11
11
|
import ActionsBar from "./ActionsBar";
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
var Item = /*#__PURE__*/memo(function (props) {
|
|
14
|
+
var _item$error2;
|
|
14
15
|
var renderMessagesExtra = props.renderMessagesExtra,
|
|
15
16
|
showTitle = props.showTitle,
|
|
16
|
-
|
|
17
|
+
onActionsClick = props.onActionsClick,
|
|
17
18
|
onMessageChange = props.onMessageChange,
|
|
18
19
|
type = props.type,
|
|
19
20
|
text = props.text,
|
|
@@ -32,87 +33,109 @@ var Item = /*#__PURE__*/memo(function (props) {
|
|
|
32
33
|
message = _App$useApp.message;
|
|
33
34
|
var RenderItem = useMemo(function () {
|
|
34
35
|
if (!renderItems || !(item !== null && item !== void 0 && item.role)) return;
|
|
35
|
-
|
|
36
|
-
if (renderItems !== null && renderItems !== void 0 && renderItems[
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
var renderFunction;
|
|
37
|
+
if (renderItems !== null && renderItems !== void 0 && renderItems[item.role]) renderFunction = renderItems[item.role];
|
|
38
|
+
if (!renderFunction && renderItems !== null && renderItems !== void 0 && renderItems['default']) renderFunction = renderItems['default'];
|
|
39
|
+
if (!renderFunction) return;
|
|
40
|
+
return renderFunction;
|
|
41
|
+
}, [renderItems === null || renderItems === void 0 ? void 0 : renderItems[item.role]]);
|
|
42
|
+
var RenderMessage = useCallback(function (_ref) {
|
|
43
|
+
var editableContent = _ref.editableContent,
|
|
44
|
+
data = _ref.data;
|
|
39
45
|
if (!renderMessages || !(item !== null && item !== void 0 && item.role)) return;
|
|
40
46
|
var RenderFunction;
|
|
41
47
|
if (renderMessages !== null && renderMessages !== void 0 && renderMessages[item.role]) RenderFunction = renderMessages[item.role];
|
|
42
|
-
if (renderMessages !== null && renderMessages !== void 0 && renderMessages['default']) RenderFunction = renderMessages['default'];
|
|
48
|
+
if (!RenderFunction && renderMessages !== null && renderMessages !== void 0 && renderMessages['default']) RenderFunction = renderMessages['default'];
|
|
43
49
|
if (!RenderFunction) return;
|
|
44
|
-
return /*#__PURE__*/_jsx(RenderFunction, _objectSpread(_objectSpread({},
|
|
45
|
-
|
|
50
|
+
return /*#__PURE__*/_jsx(RenderFunction, _objectSpread(_objectSpread({}, data), {}, {
|
|
51
|
+
editableContent: editableContent
|
|
46
52
|
}));
|
|
47
|
-
}, [renderMessages
|
|
48
|
-
var MessageExtra = useCallback(function () {
|
|
53
|
+
}, [renderMessages === null || renderMessages === void 0 ? void 0 : renderMessages[item.role]]);
|
|
54
|
+
var MessageExtra = useCallback(function (_ref2) {
|
|
55
|
+
var data = _ref2.data;
|
|
49
56
|
if (!renderMessagesExtra || !(item !== null && item !== void 0 && item.role)) return;
|
|
50
57
|
var RenderFunction;
|
|
51
58
|
if (renderMessagesExtra !== null && renderMessagesExtra !== void 0 && renderMessagesExtra[item.role]) RenderFunction = renderMessagesExtra[item.role];
|
|
52
59
|
if (renderMessagesExtra !== null && renderMessagesExtra !== void 0 && renderMessagesExtra['default']) RenderFunction = renderMessagesExtra['default'];
|
|
53
|
-
if (!RenderFunction) return;
|
|
54
|
-
return /*#__PURE__*/_jsx(RenderFunction, _objectSpread({},
|
|
55
|
-
}, [renderMessagesExtra
|
|
56
|
-
var ErrorMessage = useCallback(function () {
|
|
60
|
+
if (!RenderFunction && !RenderFunction) return;
|
|
61
|
+
return /*#__PURE__*/_jsx(RenderFunction, _objectSpread({}, data));
|
|
62
|
+
}, [renderMessagesExtra === null || renderMessagesExtra === void 0 ? void 0 : renderMessagesExtra[item.role]]);
|
|
63
|
+
var ErrorMessage = useCallback(function (_ref3) {
|
|
57
64
|
var _item$error;
|
|
65
|
+
var data = _ref3.data;
|
|
58
66
|
if (!renderErrorMessages || !(item !== null && item !== void 0 && (_item$error = item.error) !== null && _item$error !== void 0 && _item$error.type)) return;
|
|
59
67
|
var RenderFunction;
|
|
60
68
|
if (renderErrorMessages !== null && renderErrorMessages !== void 0 && renderErrorMessages[item.error.type]) RenderFunction = renderErrorMessages[item.error.type];
|
|
61
|
-
if (renderErrorMessages !== null && renderErrorMessages !== void 0 && renderErrorMessages['default']) RenderFunction = renderErrorMessages['default'];
|
|
69
|
+
if (!RenderFunction && renderErrorMessages !== null && renderErrorMessages !== void 0 && renderErrorMessages['default']) RenderFunction = renderErrorMessages['default'];
|
|
62
70
|
if (!RenderFunction) return;
|
|
63
|
-
return /*#__PURE__*/_jsx(RenderFunction, _objectSpread({},
|
|
64
|
-
}, [renderErrorMessages
|
|
65
|
-
var
|
|
71
|
+
return /*#__PURE__*/_jsx(RenderFunction, _objectSpread({}, data));
|
|
72
|
+
}, [renderErrorMessages === null || renderErrorMessages === void 0 ? void 0 : renderErrorMessages[item === null || item === void 0 ? void 0 : (_item$error2 = item.error) === null || _item$error2 === void 0 ? void 0 : _item$error2.type]]);
|
|
73
|
+
var _onActionClick = useCallback(function (actionKey, data) {
|
|
74
|
+
if (!actionKey) return;
|
|
75
|
+
var handleActionClick = _objectSpread({
|
|
76
|
+
copy: function copy(data) {
|
|
77
|
+
_copy(data.content);
|
|
78
|
+
message.success((text === null || text === void 0 ? void 0 : text.copySuccess) || 'Copy Success');
|
|
79
|
+
},
|
|
80
|
+
edit: function edit() {
|
|
81
|
+
return setEditing(true);
|
|
82
|
+
}
|
|
83
|
+
}, onActionsClick);
|
|
84
|
+
return function () {
|
|
85
|
+
var _handleActionClick$ac;
|
|
86
|
+
return handleActionClick === null || handleActionClick === void 0 ? void 0 : (_handleActionClick$ac = handleActionClick[actionKey]) === null || _handleActionClick$ac === void 0 ? void 0 : _handleActionClick$ac.call(handleActionClick, data);
|
|
87
|
+
};
|
|
88
|
+
}, [onActionsClick === null || onActionsClick === void 0 ? void 0 : onActionsClick[item.role], text]);
|
|
89
|
+
var Actions = useCallback(function (_ref4) {
|
|
90
|
+
var data = _ref4.data;
|
|
66
91
|
if (!renderActions || !(item !== null && item !== void 0 && item.role)) return;
|
|
67
92
|
var RenderFunction;
|
|
68
93
|
if (renderActions !== null && renderActions !== void 0 && renderActions[item.role]) RenderFunction = renderActions[item.role];
|
|
69
94
|
if (renderActions !== null && renderActions !== void 0 && renderActions['default']) RenderFunction = renderActions['default'];
|
|
70
95
|
if (!RenderFunction) RenderFunction = ActionsBar;
|
|
71
|
-
return /*#__PURE__*/_jsx(RenderFunction, _objectSpread(_objectSpread({},
|
|
96
|
+
return /*#__PURE__*/_jsx(RenderFunction, _objectSpread(_objectSpread({}, data), {}, {
|
|
72
97
|
onActionClick: function onActionClick(actionKey) {
|
|
73
|
-
|
|
74
|
-
case 'copy':
|
|
75
|
-
{
|
|
76
|
-
copy(item.content);
|
|
77
|
-
message.success((text === null || text === void 0 ? void 0 : text.copySuccess) || 'Copy Success');
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
case 'edit':
|
|
81
|
-
{
|
|
82
|
-
setEditing(true);
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
_onActionClick === null || _onActionClick === void 0 ? void 0 : _onActionClick(actionKey, item.id);
|
|
98
|
+
return _onActionClick(actionKey, data);
|
|
87
99
|
},
|
|
88
100
|
text: text
|
|
89
101
|
}));
|
|
90
|
-
}, [renderActions
|
|
102
|
+
}, [renderActions === null || renderActions === void 0 ? void 0 : renderActions[item.role], text, _onActionClick]);
|
|
91
103
|
var error = useMemo(function () {
|
|
92
|
-
var _item$
|
|
104
|
+
var _item$error3;
|
|
93
105
|
if (!item.error) return;
|
|
94
106
|
return {
|
|
95
|
-
message: (_item$
|
|
107
|
+
message: (_item$error3 = item.error) === null || _item$error3 === void 0 ? void 0 : _item$error3.message
|
|
96
108
|
};
|
|
97
109
|
}, [item.error]);
|
|
98
110
|
if (RenderItem) return /*#__PURE__*/_jsx(RenderItem, _objectSpread({}, props), item.id);
|
|
99
111
|
return /*#__PURE__*/_jsx(ChatItem, {
|
|
100
|
-
actions: /*#__PURE__*/_jsx(Actions, {
|
|
112
|
+
actions: /*#__PURE__*/_jsx(Actions, {
|
|
113
|
+
data: item
|
|
114
|
+
}),
|
|
101
115
|
avatar: item.meta,
|
|
102
116
|
avatarAddon: groupNav,
|
|
103
117
|
editing: editing,
|
|
104
118
|
error: error,
|
|
105
|
-
errorMessage: /*#__PURE__*/_jsx(ErrorMessage, {
|
|
119
|
+
errorMessage: /*#__PURE__*/_jsx(ErrorMessage, {
|
|
120
|
+
data: item
|
|
121
|
+
}),
|
|
106
122
|
loading: loading,
|
|
107
123
|
message: item.content,
|
|
108
|
-
messageExtra: /*#__PURE__*/_jsx(MessageExtra, {
|
|
124
|
+
messageExtra: /*#__PURE__*/_jsx(MessageExtra, {
|
|
125
|
+
data: item
|
|
126
|
+
}),
|
|
109
127
|
onChange: function onChange(value) {
|
|
110
128
|
return onMessageChange === null || onMessageChange === void 0 ? void 0 : onMessageChange(item.id, value);
|
|
111
129
|
},
|
|
112
130
|
onEditingChange: setEditing,
|
|
113
131
|
placement: type === 'chat' ? item.role === 'user' ? 'right' : 'left' : 'left',
|
|
114
132
|
primary: item.role === 'user',
|
|
115
|
-
renderMessage:
|
|
133
|
+
renderMessage: function renderMessage(editableContent) {
|
|
134
|
+
return /*#__PURE__*/_jsx(RenderMessage, {
|
|
135
|
+
data: item,
|
|
136
|
+
editableContent: editableContent
|
|
137
|
+
});
|
|
138
|
+
},
|
|
116
139
|
showTitle: showTitle,
|
|
117
140
|
text: text,
|
|
118
141
|
time: item.updateAt || item.createAt,
|
package/es/ChatList/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["
|
|
3
|
+
var _excluded = ["onActionsClick", "renderMessagesExtra", "className", "data", "type", "text", "showTitle", "onMessageChange", "renderMessages", "renderErrorMessages", "loadingId", "renderItems", "enableHistoryCount", "renderActions", "historyCount"];
|
|
4
4
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
6
|
import { Fragment, memo } from 'react';
|
|
@@ -10,7 +10,7 @@ import { useStyles } from "./style";
|
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
var ChatList = /*#__PURE__*/memo(function (_ref) {
|
|
13
|
-
var
|
|
13
|
+
var onActionsClick = _ref.onActionsClick,
|
|
14
14
|
renderMessagesExtra = _ref.renderMessagesExtra,
|
|
15
15
|
className = _ref.className,
|
|
16
16
|
data = _ref.data,
|
|
@@ -37,7 +37,7 @@ var ChatList = /*#__PURE__*/memo(function (_ref) {
|
|
|
37
37
|
children: data.map(function (item, index) {
|
|
38
38
|
var itemProps = {
|
|
39
39
|
loading: loadingId === item.id,
|
|
40
|
-
|
|
40
|
+
onActionsClick: onActionsClick,
|
|
41
41
|
onMessageChange: onMessageChange,
|
|
42
42
|
renderActions: renderActions,
|
|
43
43
|
renderErrorMessages: renderErrorMessages,
|