@hi-ui/check-select 4.6.2 → 4.6.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @hi-ui/check-select
2
2
 
3
+ ## 4.6.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#3126](https://github.com/XiaoMi/hiui/pull/3126) [`6173495f3`](https://github.com/XiaoMi/hiui/commit/6173495f3a09ed8fce6ebdf1a99a50ffdc394952) Thanks [@zyprepare](https://github.com/zyprepare)! - fix(check-select): 增强 mergedCheckedItems 逻辑以支持自定义渲染函数,并修复 getAllCheckedStatus 函数对非数组值的处理 (#3124)
8
+
9
+ - Updated dependencies [[`b97a8f8`](https://github.com/XiaoMi/hiui/commit/b97a8f81664b023237791769e0fd62b90956fc90)]:
10
+ - @hi-ui/popper@4.1.6
11
+
3
12
  ## 4.6.2
4
13
 
5
14
  ### Patch Changes
@@ -186,6 +186,22 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
186
186
  var nextData = checkedItems.concat(flattedData);
187
187
  return arrayUtils.uniqBy(nextData, 'id');
188
188
  }, [checkedItems, flattedData]);
189
+ var mergedCheckedItems = React.useMemo(function () {
190
+ if (typeof customRender !== 'function') {
191
+ return [];
192
+ }
193
+ if (!Array.isArray(value)) {
194
+ return [];
195
+ }
196
+ return value.map(function (id) {
197
+ return mergedData.find(function (item) {
198
+ return item.id === id;
199
+ }) || {
200
+ id: id,
201
+ title: id
202
+ };
203
+ });
204
+ }, [customRender, mergedData, value]);
189
205
  var _useState = React.useState(null),
190
206
  filterItems = _useState[0],
191
207
  setFilterItems = _useState[1];
@@ -299,10 +315,7 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
299
315
  onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
300
316
  loading: rest.loading !== undefined ? rest.loading : loading,
301
317
  footer: renderDefaultFooter(),
302
- trigger: customRender ? typeof customRender === 'function' ? customRender(dropdownItems.filter(function (item) {
303
- var _a;
304
- return value.includes((_a = item.id) !== null && _a !== void 0 ? _a : '');
305
- })) : customRender : ( /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, Object.assign({}, tagInputProps, {
318
+ trigger: customRender ? typeof customRender === 'function' ? customRender(mergedCheckedItems) : customRender : ( /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, Object.assign({}, tagInputProps, {
306
319
  size: size,
307
320
  clearable: clearable,
308
321
  placeholder: placeholder,
@@ -29,6 +29,9 @@ var isOption = function isOption(item) {
29
29
  return true;
30
30
  };
31
31
  var getAllCheckedStatus = function getAllCheckedStatus(dropdownItems, values, filterFunc) {
32
+ if (!Array.isArray(values)) {
33
+ return [false, false];
34
+ }
32
35
  var dropdownIds = dropdownItems.filter(filterFunc).map(function (_ref) {
33
36
  var id = _ref.id;
34
37
  return id;
@@ -172,6 +172,22 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
172
172
  var nextData = checkedItems.concat(flattedData);
173
173
  return uniqBy(nextData, 'id');
174
174
  }, [checkedItems, flattedData]);
175
+ var mergedCheckedItems = useMemo(function () {
176
+ if (typeof customRender !== 'function') {
177
+ return [];
178
+ }
179
+ if (!Array.isArray(value)) {
180
+ return [];
181
+ }
182
+ return value.map(function (id) {
183
+ return mergedData.find(function (item) {
184
+ return item.id === id;
185
+ }) || {
186
+ id: id,
187
+ title: id
188
+ };
189
+ });
190
+ }, [customRender, mergedData, value]);
175
191
  var _useState = useState(null),
176
192
  filterItems = _useState[0],
177
193
  setFilterItems = _useState[1];
@@ -285,10 +301,7 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
285
301
  onSearch: callAllFuncs(onSearchProp, onSearch),
286
302
  loading: rest.loading !== undefined ? rest.loading : loading,
287
303
  footer: renderDefaultFooter(),
288
- trigger: customRender ? typeof customRender === 'function' ? customRender(dropdownItems.filter(function (item) {
289
- var _a;
290
- return value.includes((_a = item.id) !== null && _a !== void 0 ? _a : '');
291
- })) : customRender : ( /*#__PURE__*/React.createElement(TagInputMock, Object.assign({}, tagInputProps, {
304
+ trigger: customRender ? typeof customRender === 'function' ? customRender(mergedCheckedItems) : customRender : ( /*#__PURE__*/React.createElement(TagInputMock, Object.assign({}, tagInputProps, {
292
305
  size: size,
293
306
  clearable: clearable,
294
307
  placeholder: placeholder,
@@ -23,6 +23,9 @@ var isOption = function isOption(item) {
23
23
  return true;
24
24
  };
25
25
  var getAllCheckedStatus = function getAllCheckedStatus(dropdownItems, values, filterFunc) {
26
+ if (!Array.isArray(values)) {
27
+ return [false, false];
28
+ }
26
29
  var dropdownIds = dropdownItems.filter(filterFunc).map(function (_ref) {
27
30
  var id = _ref.id;
28
31
  return id;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/check-select",
3
- "version": "4.6.2",
3
+ "version": "4.6.3",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",
@@ -53,7 +53,7 @@
53
53
  "@hi-ui/icons": "^4.0.19",
54
54
  "@hi-ui/input": "^4.3.0",
55
55
  "@hi-ui/picker": "^4.1.6",
56
- "@hi-ui/popper": "^4.1.5",
56
+ "@hi-ui/popper": "^4.1.6",
57
57
  "@hi-ui/tag-input": "^4.1.3",
58
58
  "@hi-ui/times": "^4.0.4",
59
59
  "@hi-ui/tree-utils": "^4.1.6",