@myun/gimi-chat 0.9.66 → 0.9.68
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/components/chat-input/extension/skill/MentionList.d.ts +1 -0
- package/dist/components/chat-input/extension/skill/MentionList.js +8 -1
- package/dist/components/chat-input/extension/skill/suggestion.js +44 -22
- package/dist/components/knowledge-trace/KnowledgeIconComponent.js +1 -6
- package/dist/components/knowledge-trace/tryWatch.js +1 -1
- package/dist/umd/index.min.js +1 -1
- package/package.json +1 -1
|
@@ -26,6 +26,7 @@ interface MentionListProps {
|
|
|
26
26
|
agentId?: number;
|
|
27
27
|
apiService?: IUseApi | null;
|
|
28
28
|
getCurrentTextLength?: () => number;
|
|
29
|
+
onVisibilityChange?: (visible: boolean) => void;
|
|
29
30
|
}
|
|
30
31
|
declare const MentionList: React.ForwardRefExoticComponent<MentionListProps & React.RefAttributes<MentionListRef>>;
|
|
31
32
|
export default MentionList;
|
|
@@ -15,7 +15,8 @@ var MentionList = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
15
15
|
query = _ref.query,
|
|
16
16
|
agentId = _ref.agentId,
|
|
17
17
|
apiService = _ref.apiService,
|
|
18
|
-
getCurrentTextLength = _ref.getCurrentTextLength
|
|
18
|
+
getCurrentTextLength = _ref.getCurrentTextLength,
|
|
19
|
+
onVisibilityChange = _ref.onVisibilityChange;
|
|
19
20
|
var _useState = useState(0),
|
|
20
21
|
_useState2 = _slicedToArray(_useState, 2),
|
|
21
22
|
selectedIndex = _useState2[0],
|
|
@@ -88,6 +89,12 @@ var MentionList = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
88
89
|
setFilterOptions(filter);
|
|
89
90
|
setSelectedIndex(0);
|
|
90
91
|
}, [query, skillList]);
|
|
92
|
+
|
|
93
|
+
// 通知外部当前是否有可显示内容(决定面板显示/隐藏)
|
|
94
|
+
useEffect(function () {
|
|
95
|
+
var hasContent = loading || filterOptions.length > 0;
|
|
96
|
+
onVisibilityChange === null || onVisibilityChange === void 0 || onVisibilityChange(hasContent);
|
|
97
|
+
}, [loading, filterOptions.length, onVisibilityChange]);
|
|
91
98
|
var upHandler = function upHandler() {
|
|
92
99
|
setSelectedIndex(function (i) {
|
|
93
100
|
return filterOptions.length ? (i + filterOptions.length - 1) % filterOptions.length : 0;
|
|
@@ -103,6 +103,38 @@ export var suggestion = {
|
|
|
103
103
|
var outsideClickHandler = null;
|
|
104
104
|
var currentEditor = null;
|
|
105
105
|
var currentRange = null;
|
|
106
|
+
var isVisible = true; // 面板当前可见状态
|
|
107
|
+
|
|
108
|
+
// 统一的清理和退出逻辑
|
|
109
|
+
var cleanup = function cleanup() {
|
|
110
|
+
var _component, _component2;
|
|
111
|
+
if (reposition) {
|
|
112
|
+
window.removeEventListener('resize', reposition);
|
|
113
|
+
window.removeEventListener('scroll', reposition, true);
|
|
114
|
+
reposition = null;
|
|
115
|
+
}
|
|
116
|
+
if (outsideClickHandler) {
|
|
117
|
+
document.removeEventListener('mousedown', outsideClickHandler, true);
|
|
118
|
+
outsideClickHandler = null;
|
|
119
|
+
}
|
|
120
|
+
currentEditor = null;
|
|
121
|
+
currentRange = null;
|
|
122
|
+
(_component = component) === null || _component === void 0 || (_component = _component.element) === null || _component === void 0 || _component.remove();
|
|
123
|
+
(_component2 = component) === null || _component2 === void 0 || _component2.destroy();
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
// MentionList 通知可见性变化
|
|
127
|
+
var handleVisibilityChange = function handleVisibilityChange(visible) {
|
|
128
|
+
var _component3;
|
|
129
|
+
if (!((_component3 = component) !== null && _component3 !== void 0 && _component3.element)) return;
|
|
130
|
+
isVisible = visible;
|
|
131
|
+
if (visible) {
|
|
132
|
+
component.element.style.display = '';
|
|
133
|
+
positionPanel(currentEditor, component.element);
|
|
134
|
+
} else {
|
|
135
|
+
component.element.style.display = 'none';
|
|
136
|
+
}
|
|
137
|
+
};
|
|
106
138
|
return {
|
|
107
139
|
onStart: function onStart(props) {
|
|
108
140
|
var _skillContext$getSkil, _skillContext;
|
|
@@ -122,7 +154,8 @@ export var suggestion = {
|
|
|
122
154
|
props: _objectSpread(_objectSpread({}, props), {}, {
|
|
123
155
|
agentId: agentId,
|
|
124
156
|
apiService: apiService,
|
|
125
|
-
getCurrentTextLength: getCurrentTextLength
|
|
157
|
+
getCurrentTextLength: getCurrentTextLength,
|
|
158
|
+
onVisibilityChange: handleVisibilityChange
|
|
126
159
|
}),
|
|
127
160
|
editor: props.editor
|
|
128
161
|
});
|
|
@@ -141,8 +174,8 @@ export var suggestion = {
|
|
|
141
174
|
window.addEventListener('resize', reposition);
|
|
142
175
|
window.addEventListener('scroll', reposition, true);
|
|
143
176
|
outsideClickHandler = function outsideClickHandler(e) {
|
|
144
|
-
var
|
|
145
|
-
if (!((
|
|
177
|
+
var _component4;
|
|
178
|
+
if (!((_component4 = component) !== null && _component4 !== void 0 && _component4.element)) return;
|
|
146
179
|
if (component.element.contains(e.target)) return;
|
|
147
180
|
e.stopPropagation();
|
|
148
181
|
// 手动移除面板 DOM,再通过内容变更让 suggestion plugin 退出
|
|
@@ -161,33 +194,22 @@ export var suggestion = {
|
|
|
161
194
|
if (!component) return;
|
|
162
195
|
currentRange = props.range;
|
|
163
196
|
component.updateProps(props);
|
|
164
|
-
// query
|
|
165
|
-
|
|
197
|
+
// query 变化导致面板高度变化,只在可见时重新定位
|
|
198
|
+
if (isVisible) {
|
|
199
|
+
positionPanel(props.editor, component.element);
|
|
200
|
+
}
|
|
166
201
|
},
|
|
167
202
|
onKeyDown: function onKeyDown(props) {
|
|
168
|
-
var
|
|
203
|
+
var _component5, _component5$onKeyDown;
|
|
169
204
|
function onExit() {
|
|
170
|
-
|
|
205
|
+
cleanup();
|
|
171
206
|
}
|
|
172
|
-
return (
|
|
207
|
+
return (_component5 = component) === null || _component5 === void 0 || (_component5 = _component5.ref) === null || _component5 === void 0 || (_component5$onKeyDown = _component5.onKeyDown) === null || _component5$onKeyDown === void 0 ? void 0 : _component5$onKeyDown.call(_component5, _objectSpread(_objectSpread({}, props), {}, {
|
|
173
208
|
exitCb: onExit
|
|
174
209
|
}));
|
|
175
210
|
},
|
|
176
211
|
onExit: function onExit() {
|
|
177
|
-
|
|
178
|
-
if (reposition) {
|
|
179
|
-
window.removeEventListener('resize', reposition);
|
|
180
|
-
window.removeEventListener('scroll', reposition, true);
|
|
181
|
-
reposition = null;
|
|
182
|
-
}
|
|
183
|
-
if (outsideClickHandler) {
|
|
184
|
-
document.removeEventListener('mousedown', outsideClickHandler, true);
|
|
185
|
-
outsideClickHandler = null;
|
|
186
|
-
}
|
|
187
|
-
currentEditor = null;
|
|
188
|
-
currentRange = null;
|
|
189
|
-
(_component3 = component) === null || _component3 === void 0 || (_component3 = _component3.element) === null || _component3 === void 0 || _component3.remove();
|
|
190
|
-
(_component4 = component) === null || _component4 === void 0 || _component4.destroy();
|
|
212
|
+
cleanup();
|
|
191
213
|
},
|
|
192
214
|
focusEditor: function focusEditor(props) {
|
|
193
215
|
props.editor.commands.focus();
|
|
@@ -92,14 +92,9 @@ export var KnowledgeIconComponent = function KnowledgeIconComponent(_ref2) {
|
|
|
92
92
|
curPlayer === null || curPlayer === void 0 || curPlayer.pause();
|
|
93
93
|
}
|
|
94
94
|
setShowPanel(false);
|
|
95
|
-
// 资讯溯源:有权益直接跳转资讯详情,无权益则弹试看弹框
|
|
96
|
-
if (type === 'information' && trace.hasEntitlement) {
|
|
97
|
-
window.open("/news-list/new-information/".concat(trace.informationId, "?packageId=").concat(trace.packageId));
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
95
|
setCurTrace(trace);
|
|
101
96
|
setTryWatchVisible(true);
|
|
102
|
-
}, [
|
|
97
|
+
}, [setCurTrace]);
|
|
103
98
|
var hoverPanelContent = useMemo(function () {
|
|
104
99
|
if (isLoading) return /*#__PURE__*/React.createElement("div", {
|
|
105
100
|
style: {
|
|
@@ -337,7 +337,7 @@ var TryWatch = function TryWatch(_ref7) {
|
|
|
337
337
|
className: styles.tryFullBtnContainer
|
|
338
338
|
}, /*#__PURE__*/React.createElement("div", {
|
|
339
339
|
className: styles.tips
|
|
340
|
-
}, t(
|
|
340
|
+
}, t('trace.tryFullTips')), /*#__PURE__*/React.createElement(Button, {
|
|
341
341
|
className: styles.tryFullBtn,
|
|
342
342
|
onClick: handleFull
|
|
343
343
|
}, t('trace.tryFull')))));
|