@aloudata/aloudata-design 2.18.2 → 2.18.3

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.
@@ -181,17 +181,20 @@ export default /*#__PURE__*/forwardRef(function AldSelect(props, ref) {
181
181
  };
182
182
  // Used for OptionList selection
183
183
  var onOptionSelect = function onOptionSelect(val) {
184
+ // Get the original value from keyMenuItems to preserve the type (number/string)
185
+ var menuItem = keyMenuItems.get(toString(val));
186
+ var originalValue = (menuItem === null || menuItem === void 0 ? void 0 : menuItem.value) !== undefined ? menuItem.value : val;
184
187
  var selected = displayValues.find(function (item) {
185
188
  return toString(item.value) === toString(val);
186
189
  });
187
190
  if (isMultiple(mode)) {
188
191
  if (!selected) {
189
- triggerSelect(val, true, 'add');
192
+ triggerSelect(originalValue, true, 'add');
190
193
  } else {
191
- triggerSelect(val, false, 'remove');
194
+ triggerSelect(originalValue, false, 'remove');
192
195
  }
193
196
  } else {
194
- triggerSelect(val, true, 'add');
197
+ triggerSelect(originalValue, true, 'add');
195
198
  }
196
199
  };
197
200
  // ======================= Display Change =======================
@@ -217,6 +220,9 @@ export default /*#__PURE__*/forwardRef(function AldSelect(props, ref) {
217
220
  items: (mergedMenu === null || mergedMenu === void 0 ? void 0 : mergedMenu.items) || [],
218
221
  onClick: function onClick(menuInfo) {
219
222
  var _mergedMenu$onClick;
223
+ // Get the original value from keyMenuItems to preserve the type (number/string)
224
+ var menuItem = keyMenuItems.get(menuInfo.key);
225
+ var originalValue = (menuItem === null || menuItem === void 0 ? void 0 : menuItem.value) !== undefined ? menuItem.value : menuInfo.key;
220
226
  if (mode && isMultiple(mode)) {
221
227
  if (displayValues.find(function (item) {
222
228
  return toString(item.value) === menuInfo.key;
@@ -227,15 +233,15 @@ export default /*#__PURE__*/forwardRef(function AldSelect(props, ref) {
227
233
  return item.value;
228
234
  }));
229
235
  } else {
230
- triggerChange([].concat(_toConsumableArray(displayValues), [menuInfo.key]));
236
+ triggerChange([].concat(_toConsumableArray(displayValues), [originalValue]));
231
237
  }
232
238
  } else {
233
- triggerChange(menuInfo.key);
239
+ triggerChange(originalValue);
234
240
  }
235
241
  mergedMenu === null || mergedMenu === void 0 ? void 0 : (_mergedMenu$onClick = mergedMenu.onClick) === null || _mergedMenu$onClick === void 0 ? void 0 : _mergedMenu$onClick.call(mergedMenu, menuInfo);
236
242
  }
237
243
  });
238
- }, [mergedMenu, mode, displayValues, triggerChange]);
244
+ }, [mergedMenu, mode, displayValues, triggerChange, keyMenuItems]);
239
245
  var displayMenu = useDisplayMenu(selectMenu,
240
246
  // 如果用户接管了搜索,则默认不做搜索过滤
241
247
  onSearch ? filterOption || noOpFilter : filterOption, innerSearchValue);
@@ -62,14 +62,14 @@ export default function InputSearch(props) {
62
62
  }, [locale, size]);
63
63
 
64
64
  // 判断是否为受控模式
65
- var isControlled = value !== undefined;
65
+ var isControlled = ('value' in props);
66
66
  var _useState = useState(defaultValue || ''),
67
67
  _useState2 = _slicedToArray(_useState, 2),
68
68
  searchValue = _useState2[0],
69
69
  setSearchValue = _useState2[1];
70
70
 
71
71
  // 获取当前值:受控模式使用 value,非受控模式使用内部状态
72
- var currentValue = isControlled ? value : searchValue;
72
+ var currentValue = isControlled ? value !== null && value !== void 0 ? value : '' : searchValue;
73
73
  var isComposing = useRef(false);
74
74
  var onPressEnter = useCallback(function (e) {
75
75
  if (!isComposing.current) {
@@ -93,7 +93,8 @@ export default function InputSearch(props) {
93
93
  setSearchValue(newValue);
94
94
  }
95
95
  if (!isComposing.current) {
96
- if (debounce) {
96
+ // 受控的时候debounce不生效
97
+ if (debounce && !isControlled) {
97
98
  debounceSearch(newValue);
98
99
  } else {
99
100
  onSearch(newValue);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aloudata/aloudata-design",
3
- "version": "2.18.2",
3
+ "version": "2.18.3",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",