one-design-next 0.0.84 → 0.0.85
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/composer/index.js +64 -37
- package/package.json +1 -1
package/dist/composer/index.js
CHANGED
|
@@ -187,27 +187,35 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
187
187
|
setTriggerActiveIndex = _useState8[1];
|
|
188
188
|
/** trigger menu 的命令式句柄:导航语义在 SkillSlot 内,composer 只转发 ↑↓。 */
|
|
189
189
|
var triggerSkillSlotRef = useRef(null);
|
|
190
|
-
/**
|
|
190
|
+
/** 同步标记:handleTriggerKeyDown 已在本轮事件中取消了 trigger,
|
|
191
|
+
* onPressEnter 检测此标记以跳过 stale triggerMenuVisible 拦截。 */
|
|
192
|
+
var triggerDismissedRef = useRef(false);
|
|
193
|
+
/** 当 trigger 被 dismiss(无匹配 skill 按 Enter)时跳过 Popover 关闭动画 */
|
|
191
194
|
var _useState9 = useState(false),
|
|
192
195
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
+
skipTriggerTransition = _useState10[0],
|
|
197
|
+
setSkipTriggerTransition = _useState10[1];
|
|
198
|
+
/** lite 模式下由内容高度驱动的单行 / 多行布局状态。 */
|
|
196
199
|
var _useState11 = useState(false),
|
|
197
200
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
var _useState13 = useState(
|
|
201
|
+
expanded = _useState12[0],
|
|
202
|
+
setExpanded = _useState12[1];
|
|
203
|
+
/** full 模式下由右上角按钮控制的 50vh 展开态。 */
|
|
204
|
+
var _useState13 = useState(false),
|
|
202
205
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
203
|
-
|
|
204
|
-
|
|
206
|
+
fullExpanded = _useState14[0],
|
|
207
|
+
setFullExpanded = _useState14[1];
|
|
208
|
+
/** ComposerEditor 反馈的 editor 自然高度(offsetHeight,未 clamp),用于 lite 升格判断 */
|
|
209
|
+
var _useState15 = useState(0),
|
|
210
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
211
|
+
editorHeight = _useState16[0],
|
|
212
|
+
setEditorHeight = _useState16[1];
|
|
205
213
|
/** editor 内容是否真正达到 maxRows 触顶——配合 SCSS 控制 viewport overflow,
|
|
206
214
|
* 阻止升格 transition / 换行未触顶时的 scrollbar 闪现 */
|
|
207
|
-
var
|
|
208
|
-
|
|
209
|
-
atMax =
|
|
210
|
-
setAtMax =
|
|
215
|
+
var _useState17 = useState(false),
|
|
216
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
217
|
+
atMax = _useState18[0],
|
|
218
|
+
setAtMax = _useState18[1];
|
|
211
219
|
var fileInputRef = useRef(null);
|
|
212
220
|
var editorRef = useRef(null);
|
|
213
221
|
var boxRef = useRef(null);
|
|
@@ -226,10 +234,10 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
226
234
|
preventScroll: true
|
|
227
235
|
});
|
|
228
236
|
}, [disabled]);
|
|
229
|
-
var
|
|
230
|
-
|
|
231
|
-
paramEdit =
|
|
232
|
-
setParamEdit =
|
|
237
|
+
var _useState19 = useState(null),
|
|
238
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
239
|
+
paramEdit = _useState20[0],
|
|
240
|
+
setParamEdit = _useState20[1];
|
|
233
241
|
var openParamPanel = useCallback(function (chipId) {
|
|
234
242
|
if (!renderParamPanel) return;
|
|
235
243
|
requestAnimationFrame(function () {
|
|
@@ -564,10 +572,10 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
564
572
|
* 不夺回焦点时 Enter 会再次激活按钮而不是发送 */
|
|
565
573
|
(_editorRef$current15 = editorRef.current) === null || _editorRef$current15 === void 0 || _editorRef$current15.focus();
|
|
566
574
|
};
|
|
567
|
-
var
|
|
568
|
-
|
|
569
|
-
fileDragOver =
|
|
570
|
-
setFileDragOver =
|
|
575
|
+
var _useState21 = useState(false),
|
|
576
|
+
_useState22 = _slicedToArray(_useState21, 2),
|
|
577
|
+
fileDragOver = _useState22[0],
|
|
578
|
+
setFileDragOver = _useState22[1];
|
|
571
579
|
var composerBoxFileDragAttrs = fileDragOver ? {
|
|
572
580
|
'data-odn-composer-file-drag': ''
|
|
573
581
|
} : {};
|
|
@@ -686,18 +694,26 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
686
694
|
return true;
|
|
687
695
|
}
|
|
688
696
|
if (e.key === 'Enter' && !e.shiftKey || e.key === 'Tab') {
|
|
689
|
-
var _ref6, _triggerSkillSlotRef$3, _triggerSkillSlotRef$4;
|
|
690
|
-
e.preventDefault();
|
|
697
|
+
var _ref6, _triggerSkillSlotRef$3, _triggerSkillSlotRef$4, _editorRef$current19;
|
|
691
698
|
var _skill = (_ref6 = (_triggerSkillSlotRef$3 = (_triggerSkillSlotRef$4 = triggerSkillSlotRef.current) === null || _triggerSkillSlotRef$4 === void 0 ? void 0 : _triggerSkillSlotRef$4.getActiveSkill()) !== null && _triggerSkillSlotRef$3 !== void 0 ? _triggerSkillSlotRef$3 : filteredSkills === null || filteredSkills === void 0 ? void 0 : filteredSkills[triggerActiveIndex]) !== null && _ref6 !== void 0 ? _ref6 : filteredSkillGroups === null || filteredSkillGroups === void 0 ? void 0 : filteredSkillGroups.flatMap(function (g) {
|
|
692
699
|
return g.skills;
|
|
693
700
|
})[triggerActiveIndex];
|
|
694
|
-
if (_skill)
|
|
695
|
-
|
|
701
|
+
if (_skill) {
|
|
702
|
+
e.preventDefault();
|
|
703
|
+
handleSelectSkill(_skill, 'trigger');
|
|
704
|
+
return true;
|
|
705
|
+
}
|
|
706
|
+
/* 过滤后列表为空(无匹配 skill):取消 trigger,让 Enter 继续走发送流程 */
|
|
707
|
+
(_editorRef$current19 = editorRef.current) === null || _editorRef$current19 === void 0 || _editorRef$current19.cancelTrigger();
|
|
708
|
+
setTriggerInfo(null);
|
|
709
|
+
setSkipTriggerTransition(true);
|
|
710
|
+
triggerDismissedRef.current = true;
|
|
711
|
+
return false;
|
|
696
712
|
}
|
|
697
713
|
if (e.key === 'Escape') {
|
|
698
|
-
var _editorRef$
|
|
714
|
+
var _editorRef$current20;
|
|
699
715
|
e.preventDefault();
|
|
700
|
-
(_editorRef$
|
|
716
|
+
(_editorRef$current20 = editorRef.current) === null || _editorRef$current20 === void 0 || _editorRef$current20.cancelTrigger();
|
|
701
717
|
setTriggerInfo(null);
|
|
702
718
|
return true;
|
|
703
719
|
}
|
|
@@ -1036,9 +1052,9 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
1036
1052
|
"data-odn-composer-file-input": true,
|
|
1037
1053
|
onChange: handleFileChange
|
|
1038
1054
|
});
|
|
1039
|
-
var paramPanelNode = function (_editorRef$current$ge4, _editorRef$
|
|
1055
|
+
var paramPanelNode = function (_editorRef$current$ge4, _editorRef$current21, _boxRef$current) {
|
|
1040
1056
|
if (!paramEdit || !renderParamPanel) return null;
|
|
1041
|
-
var chips = (_editorRef$current$ge4 = (_editorRef$
|
|
1057
|
+
var chips = (_editorRef$current$ge4 = (_editorRef$current21 = editorRef.current) === null || _editorRef$current21 === void 0 ? void 0 : _editorRef$current21.getChips()) !== null && _editorRef$current$ge4 !== void 0 ? _editorRef$current$ge4 : [];
|
|
1042
1058
|
var chip = chips.find(function (c) {
|
|
1043
1059
|
return c.id === paramEdit.chipId;
|
|
1044
1060
|
});
|
|
@@ -1048,8 +1064,8 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
1048
1064
|
chip: chip,
|
|
1049
1065
|
anchor: paramEdit.anchor,
|
|
1050
1066
|
onApply: function onApply(patch) {
|
|
1051
|
-
var _editorRef$
|
|
1052
|
-
(_editorRef$
|
|
1067
|
+
var _editorRef$current22;
|
|
1068
|
+
(_editorRef$current22 = editorRef.current) === null || _editorRef$current22 === void 0 || _editorRef$current22.updateChipData(chip.id, patch);
|
|
1053
1069
|
},
|
|
1054
1070
|
onClose: closeParamPanel
|
|
1055
1071
|
};
|
|
@@ -1078,7 +1094,10 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
1078
1094
|
onInlineRefClick: renderParamPanel ? handleInlineRefClick : undefined
|
|
1079
1095
|
/* 本轮只接 `/`,`@` 留给业务接 mention 搜索时再加 */,
|
|
1080
1096
|
triggers: ['/'],
|
|
1081
|
-
onTriggerChange:
|
|
1097
|
+
onTriggerChange: function onTriggerChange(info) {
|
|
1098
|
+
setTriggerInfo(info);
|
|
1099
|
+
if (info) setSkipTriggerTransition(false);
|
|
1100
|
+
},
|
|
1082
1101
|
onTriggerKeyDown: handleTriggerKeyDown,
|
|
1083
1102
|
onPasteFiles: addFilesFromList,
|
|
1084
1103
|
onHeightChange: function onHeightChange(height, overflow) {
|
|
@@ -1090,9 +1109,14 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
1090
1109
|
onPressEnter: function onPressEnter(e) {
|
|
1091
1110
|
if (e.nativeEvent.isComposing || e.keyCode === 229) return;
|
|
1092
1111
|
// trigger 浮层激活时,普通 Enter 留给浮层做选择;Shift+Enter 继续换行
|
|
1112
|
+
// 但若 handleTriggerKeyDown 已在本轮事件中取消了 trigger(列表为空),则放行
|
|
1093
1113
|
if (triggerMenuVisible && !e.shiftKey) {
|
|
1094
|
-
|
|
1095
|
-
|
|
1114
|
+
if (triggerDismissedRef.current) {
|
|
1115
|
+
triggerDismissedRef.current = false;
|
|
1116
|
+
} else {
|
|
1117
|
+
e.preventDefault();
|
|
1118
|
+
return false;
|
|
1119
|
+
}
|
|
1096
1120
|
}
|
|
1097
1121
|
var isSubmitKey = submitType === 'enter' ? !e.shiftKey : e.shiftKey;
|
|
1098
1122
|
if (!isSubmitKey) return; // 不阻止 → 让 editor 走默认 <br>
|
|
@@ -1114,11 +1138,14 @@ export var Composer = /*#__PURE__*/forwardRef(function Composer(_ref, ref) {
|
|
|
1114
1138
|
placement: "topLeft",
|
|
1115
1139
|
offset: 4,
|
|
1116
1140
|
visible: triggerMenuVisible,
|
|
1141
|
+
transitionDuration: skipTriggerTransition ? 0 : undefined,
|
|
1117
1142
|
onVisibleChange: function onVisibleChange(v) {
|
|
1118
1143
|
if (!v) {
|
|
1119
|
-
var _editorRef$
|
|
1120
|
-
(_editorRef$
|
|
1144
|
+
var _editorRef$current23;
|
|
1145
|
+
(_editorRef$current23 = editorRef.current) === null || _editorRef$current23 === void 0 || _editorRef$current23.cancelTrigger();
|
|
1121
1146
|
setTriggerInfo(null);
|
|
1147
|
+
} else {
|
|
1148
|
+
setSkipTriggerTransition(false);
|
|
1122
1149
|
}
|
|
1123
1150
|
},
|
|
1124
1151
|
popupClassName: "odn-composer-skill-popup",
|