@hi-ui/table 4.5.2-alpha.0 → 4.5.2

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,31 +1,29 @@
1
1
  # @hi-ui/table
2
2
 
3
- ## 4.5.2-alpha.0
3
+ ## 4.5.2
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - 1a00f9fc4: build: style-inject(node 环境下有问题) 替换为 @hi-ui/style-inject
8
- - Updated dependencies [1a00f9fc4]
9
- - @hi-ui/env@4.0.5-alpha.0
10
- - @hi-ui/icons@4.0.19-alpha.0
11
- - @hi-ui/button@4.0.10-alpha.0
12
- - @hi-ui/checkbox@4.0.10-alpha.0
13
- - @hi-ui/drawer@4.1.4-alpha.0
14
- - @hi-ui/empty-state@4.1.1-alpha.0
15
- - @hi-ui/icon-button@4.0.9-alpha.0
16
- - @hi-ui/loading@4.2.1-alpha.0
17
- - @hi-ui/pagination@4.0.15-alpha.0
18
- - @hi-ui/popper@4.1.5-alpha.0
19
- - @hi-ui/scrollbar@4.1.1-alpha.0
20
- - @hi-ui/select@4.4.1-alpha.0
21
- - @hi-ui/spinner@4.0.9-alpha.0
22
- - @hi-ui/array-utils@4.0.5-alpha.0
23
- - @hi-ui/classname@4.0.5-alpha.0
24
- - @hi-ui/dom-utils@4.0.8-alpha.0
25
- - @hi-ui/react-utils@4.0.5-alpha.0
26
- - @hi-ui/core@4.0.9-alpha.0
27
- - @hi-ui/object-utils@4.0.5-alpha.0
28
- - @hi-ui/func-utils@4.0.5-alpha.0
7
+ - [#2791](https://github.com/XiaoMi/hiui/pull/2791) [`1a00f9fc4`](https://github.com/XiaoMi/hiui/commit/1a00f9fc4a44619059d7852e846b54fedbd56715) Thanks [@zyprepare](https://github.com/zyprepare)! - build: style-inject(node 环境下有问题) 替换为 @hi-ui/style-inject
8
+
9
+ - [#2790](https://github.com/XiaoMi/hiui/pull/2790) [`86a096b03`](https://github.com/XiaoMi/hiui/commit/86a096b031e42622714c4147ea99d2867baddfda) Thanks [@zyprepare](https://github.com/zyprepare)! - fix: 修复全选时 onChange 第 4 个参数返回 undefined 问题
10
+
11
+ - Updated dependencies [[`1a00f9fc4`](https://github.com/XiaoMi/hiui/commit/1a00f9fc4a44619059d7852e846b54fedbd56715)]:
12
+ - @hi-ui/env@4.0.5
13
+ - @hi-ui/icons@4.0.19
14
+ - @hi-ui/button@4.0.10
15
+ - @hi-ui/checkbox@4.0.10
16
+ - @hi-ui/drawer@4.1.4
17
+ - @hi-ui/empty-state@4.1.1
18
+ - @hi-ui/icon-button@4.0.9
19
+ - @hi-ui/loading@4.2.1
20
+ - @hi-ui/pagination@4.0.15
21
+ - @hi-ui/popper@4.1.5
22
+ - @hi-ui/scrollbar@4.1.1
23
+ - @hi-ui/select@4.4.1
24
+ - @hi-ui/spinner@4.0.9
25
+ - @hi-ui/array-utils@4.0.5
26
+ - @hi-ui/classname@4.0.5
29
27
 
30
28
  ## 4.5.1
31
29
 
@@ -34,6 +34,12 @@ var useTableCheck = function useTableCheck(_ref) {
34
34
  var _useUncontrolledState = useUncontrolledState.useUncontrolledState(DEFAULT_CHECKED_ROW_KEYS, rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys, rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange),
35
35
  checkedRowKeys = _useUncontrolledState[0],
36
36
  trySetCheckedRowKeys = _useUncontrolledState[1];
37
+ React.useEffect(function () {
38
+ checkedRowDataItemsRef.current = checkedRowDataItemsRef.current.filter(function (_ref2) {
39
+ var key = _ref2.key;
40
+ return checkedRowKeys === null || checkedRowKeys === void 0 ? void 0 : checkedRowKeys.includes(key);
41
+ });
42
+ }, [checkedRowKeys]);
37
43
  // 已选中的行数据集合
38
44
  var checkedRowDataItemsRef = React__default["default"].useRef([]);
39
45
  var checkedRowDataItems = checkedRowDataItemsRef.current;
@@ -50,7 +56,10 @@ var useTableCheck = function useTableCheck(_ref) {
50
56
  // 选中项变化会触发该函数
51
57
  var onCheckedRowKeysChange = React__default["default"].useCallback(function (rowItem, checked) {
52
58
  // 记录选中的行数据集合
53
- var nextCheckedDataItems = checkedRowDataItems;
59
+ var nextCheckedDataItems = checkedRowDataItems.filter(function (_ref3) {
60
+ var key = _ref3.key;
61
+ return checkedRowKeys.includes(key);
62
+ });
54
63
  if (checked) {
55
64
  if (!nextCheckedDataItems.find(function (item) {
56
65
  return item[fieldKey] === rowItem[fieldKey];
@@ -63,7 +72,7 @@ var useTableCheck = function useTableCheck(_ref) {
63
72
  });
64
73
  }
65
74
  handleCheckedRowKeysChange(rowItem, checked);
66
- }, [checkedRowDataItems, fieldKey, handleCheckedRowKeysChange]);
75
+ }, [checkedRowDataItems, checkedRowKeys, fieldKey, handleCheckedRowKeysChange]);
67
76
  // 判断是否全选
68
77
  var _React$useMemo = React__default["default"].useMemo(function () {
69
78
  if (rowSelection) {
@@ -101,14 +110,21 @@ var useTableCheck = function useTableCheck(_ref) {
101
110
  });
102
111
  var checkedRowKeysSet = new Set(checkedRowKeys);
103
112
  if (checkedAll) {
113
+ checkedRowDataItemsRef.current = checkedRowDataItemsRef.current.filter(function (_ref4) {
114
+ var key = _ref4.key;
115
+ return !checkedRowKeysSet.has(key);
116
+ });
104
117
  // 移除当前页所有行 ids
105
118
  trySetCheckedRowKeys(function (prev) {
106
119
  return prev.filter(function (id) {
107
120
  return !checkedRowKeysSet.has(id);
108
121
  });
109
- }, targetRowItems, false);
122
+ }, targetRowItems, false, checkedRowDataItemsRef.current);
110
123
  return;
111
124
  }
125
+ checkedRowDataItemsRef.current = targetRowItems.concat(checkedRowDataItemsRef.current.filter(function (item) {
126
+ return !checkedRowKeysSet.has(item.key);
127
+ }));
112
128
  trySetCheckedRowKeys(
113
129
  // 添加当前页所有行 ids
114
130
  function (prev) {
@@ -116,7 +132,7 @@ var useTableCheck = function useTableCheck(_ref) {
116
132
  return checkedRowKeysSet.add(id);
117
133
  });
118
134
  return Array.from(checkedRowKeysSet);
119
- }, targetRowItems, true);
135
+ }, targetRowItems, true, checkedRowDataItemsRef.current);
120
136
  }, [trySetCheckedRowKeys, flattedData, checkRowIsDisabledCheckbox, checkedAll]);
121
137
  return {
122
138
  tryCheckAllRow: tryCheckAllRow,
@@ -8,7 +8,7 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { useCheck } from '@hi-ui/use-check';
11
- import React__default from 'react';
11
+ import React__default, { useEffect } from 'react';
12
12
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
13
13
  var DEFAULT_CHECKED_ROW_KEYS = [];
14
14
  var useTableCheck = function useTableCheck(_ref) {
@@ -22,6 +22,12 @@ var useTableCheck = function useTableCheck(_ref) {
22
22
  var _useUncontrolledState = useUncontrolledState(DEFAULT_CHECKED_ROW_KEYS, rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys, rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange),
23
23
  checkedRowKeys = _useUncontrolledState[0],
24
24
  trySetCheckedRowKeys = _useUncontrolledState[1];
25
+ useEffect(function () {
26
+ checkedRowDataItemsRef.current = checkedRowDataItemsRef.current.filter(function (_ref2) {
27
+ var key = _ref2.key;
28
+ return checkedRowKeys === null || checkedRowKeys === void 0 ? void 0 : checkedRowKeys.includes(key);
29
+ });
30
+ }, [checkedRowKeys]);
25
31
  // 已选中的行数据集合
26
32
  var checkedRowDataItemsRef = React__default.useRef([]);
27
33
  var checkedRowDataItems = checkedRowDataItemsRef.current;
@@ -38,7 +44,10 @@ var useTableCheck = function useTableCheck(_ref) {
38
44
  // 选中项变化会触发该函数
39
45
  var onCheckedRowKeysChange = React__default.useCallback(function (rowItem, checked) {
40
46
  // 记录选中的行数据集合
41
- var nextCheckedDataItems = checkedRowDataItems;
47
+ var nextCheckedDataItems = checkedRowDataItems.filter(function (_ref3) {
48
+ var key = _ref3.key;
49
+ return checkedRowKeys.includes(key);
50
+ });
42
51
  if (checked) {
43
52
  if (!nextCheckedDataItems.find(function (item) {
44
53
  return item[fieldKey] === rowItem[fieldKey];
@@ -51,7 +60,7 @@ var useTableCheck = function useTableCheck(_ref) {
51
60
  });
52
61
  }
53
62
  handleCheckedRowKeysChange(rowItem, checked);
54
- }, [checkedRowDataItems, fieldKey, handleCheckedRowKeysChange]);
63
+ }, [checkedRowDataItems, checkedRowKeys, fieldKey, handleCheckedRowKeysChange]);
55
64
  // 判断是否全选
56
65
  var _React$useMemo = React__default.useMemo(function () {
57
66
  if (rowSelection) {
@@ -89,14 +98,21 @@ var useTableCheck = function useTableCheck(_ref) {
89
98
  });
90
99
  var checkedRowKeysSet = new Set(checkedRowKeys);
91
100
  if (checkedAll) {
101
+ checkedRowDataItemsRef.current = checkedRowDataItemsRef.current.filter(function (_ref4) {
102
+ var key = _ref4.key;
103
+ return !checkedRowKeysSet.has(key);
104
+ });
92
105
  // 移除当前页所有行 ids
93
106
  trySetCheckedRowKeys(function (prev) {
94
107
  return prev.filter(function (id) {
95
108
  return !checkedRowKeysSet.has(id);
96
109
  });
97
- }, targetRowItems, false);
110
+ }, targetRowItems, false, checkedRowDataItemsRef.current);
98
111
  return;
99
112
  }
113
+ checkedRowDataItemsRef.current = targetRowItems.concat(checkedRowDataItemsRef.current.filter(function (item) {
114
+ return !checkedRowKeysSet.has(item.key);
115
+ }));
100
116
  trySetCheckedRowKeys(
101
117
  // 添加当前页所有行 ids
102
118
  function (prev) {
@@ -104,7 +120,7 @@ var useTableCheck = function useTableCheck(_ref) {
104
120
  return checkedRowKeysSet.add(id);
105
121
  });
106
122
  return Array.from(checkedRowKeysSet);
107
- }, targetRowItems, true);
123
+ }, targetRowItems, true, checkedRowDataItemsRef.current);
108
124
  }, [trySetCheckedRowKeys, flattedData, checkRowIsDisabledCheckbox, checkedAll]);
109
125
  return {
110
126
  tryCheckAllRow: tryCheckAllRow,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/table",
3
- "version": "4.5.2-alpha.0",
3
+ "version": "4.5.2",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",
@@ -43,25 +43,25 @@
43
43
  "url": "https://github.com/XiaoMi/hiui/issues"
44
44
  },
45
45
  "dependencies": {
46
- "@hi-ui/array-utils": "^4.0.5-alpha.0",
47
- "@hi-ui/button": "^4.0.10-alpha.0",
48
- "@hi-ui/checkbox": "^4.0.10-alpha.0",
49
- "@hi-ui/classname": "^4.0.5-alpha.0",
50
- "@hi-ui/dom-utils": "^4.0.8-alpha.0",
51
- "@hi-ui/drawer": "^4.1.4-alpha.0",
52
- "@hi-ui/empty-state": "^4.1.1-alpha.0",
53
- "@hi-ui/env": "^4.0.5-alpha.0",
54
- "@hi-ui/func-utils": "^4.0.5-alpha.0",
55
- "@hi-ui/icon-button": "^4.0.9-alpha.0",
56
- "@hi-ui/icons": "^4.0.19-alpha.0",
57
- "@hi-ui/loading": "^4.2.1-alpha.0",
58
- "@hi-ui/object-utils": "^4.0.5-alpha.0",
59
- "@hi-ui/pagination": "^4.0.15-alpha.0",
60
- "@hi-ui/popper": "^4.1.5-alpha.0",
61
- "@hi-ui/react-utils": "^4.0.5-alpha.0",
62
- "@hi-ui/scrollbar": "^4.1.1-alpha.0",
63
- "@hi-ui/select": "^4.4.1-alpha.0",
64
- "@hi-ui/spinner": "^4.0.9-alpha.0",
46
+ "@hi-ui/array-utils": "^4.0.5",
47
+ "@hi-ui/button": "^4.0.10",
48
+ "@hi-ui/checkbox": "^4.0.10",
49
+ "@hi-ui/classname": "^4.0.5",
50
+ "@hi-ui/dom-utils": "^4.0.7",
51
+ "@hi-ui/drawer": "^4.1.4",
52
+ "@hi-ui/empty-state": "^4.1.1",
53
+ "@hi-ui/env": "^4.0.5",
54
+ "@hi-ui/func-utils": "^4.0.4",
55
+ "@hi-ui/icon-button": "^4.0.9",
56
+ "@hi-ui/icons": "^4.0.19",
57
+ "@hi-ui/loading": "^4.2.1",
58
+ "@hi-ui/object-utils": "^4.0.4",
59
+ "@hi-ui/pagination": "^4.0.15",
60
+ "@hi-ui/popper": "^4.1.5",
61
+ "@hi-ui/react-utils": "^4.0.4",
62
+ "@hi-ui/scrollbar": "^4.1.1",
63
+ "@hi-ui/select": "^4.4.1",
64
+ "@hi-ui/spinner": "^4.0.9",
65
65
  "@hi-ui/times": "^4.0.4",
66
66
  "@hi-ui/tree-utils": "^4.1.6",
67
67
  "@hi-ui/type-assertion": "^4.0.4",
@@ -77,12 +77,12 @@
77
77
  "react-resizable": "^3.0.4"
78
78
  },
79
79
  "peerDependencies": {
80
- "@hi-ui/core": ">=4.0.9-alpha.0",
80
+ "@hi-ui/core": ">=4.0.8",
81
81
  "react": ">=16.8.6",
82
82
  "react-dom": ">=16.8.6"
83
83
  },
84
84
  "devDependencies": {
85
- "@hi-ui/core": "^4.0.9-alpha.0",
85
+ "@hi-ui/core": "^4.0.8",
86
86
  "@hi-ui/core-css": "^4.1.5",
87
87
  "@types/react-resizable": "^1.7.4",
88
88
  "react": "^17.0.1",