@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 +21 -23
- package/lib/cjs/hooks/use-check.js +20 -4
- package/lib/esm/hooks/use-check.js +21 -5
- package/package.json +22 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,31 +1,29 @@
|
|
|
1
1
|
# @hi-ui/table
|
|
2
2
|
|
|
3
|
-
## 4.5.2
|
|
3
|
+
## 4.5.2
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
- 1a00f9fc4
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- @hi-ui/
|
|
13
|
-
- @hi-ui/
|
|
14
|
-
- @hi-ui/
|
|
15
|
-
- @hi-ui/
|
|
16
|
-
- @hi-ui/
|
|
17
|
-
- @hi-ui/
|
|
18
|
-
- @hi-ui/
|
|
19
|
-
- @hi-ui/
|
|
20
|
-
- @hi-ui/
|
|
21
|
-
- @hi-ui/
|
|
22
|
-
- @hi-ui/
|
|
23
|
-
- @hi-ui/
|
|
24
|
-
- @hi-ui/
|
|
25
|
-
- @hi-ui/
|
|
26
|
-
- @hi-ui/
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
59
|
-
"@hi-ui/pagination": "^4.0.15
|
|
60
|
-
"@hi-ui/popper": "^4.1.5
|
|
61
|
-
"@hi-ui/react-utils": "^4.0.
|
|
62
|
-
"@hi-ui/scrollbar": "^4.1.1
|
|
63
|
-
"@hi-ui/select": "^4.4.1
|
|
64
|
-
"@hi-ui/spinner": "^4.0.9
|
|
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.
|
|
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.
|
|
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",
|