foxit-component 1.0.4-alpha.11 → 1.0.4-alpha.13

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.
@@ -1,10 +1,22 @@
1
- import { useState, useMemo } from 'react';
1
+ import { useState, useEffect, useMemo } from 'react';
2
2
 
3
3
  var useRowSelection = function (_a) {
4
4
  var data = _a.data, rowSelection = _a.rowSelection, rowKey = _a.rowKey;
5
5
  var _b = useState(new Set((rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) || [])), selectedKeys = _b[0], setSelectedKeys = _b[1];
6
- var _c = useState(null), hoveredRow = _c[0], setHoveredRow = _c[1];
6
+ var _c = useState(new Map()), selectedRowsMap = _c[0], setSelectedRowsMap = _c[1];
7
+ var _d = useState(null), hoveredRow = _d[0], setHoveredRow = _d[1];
7
8
  var hasSelection = selectedKeys.size > 0;
9
+ useEffect(function () {
10
+ if (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) {
11
+ var externalKeys_1 = new Set(rowSelection.selectedRowKeys);
12
+ var externalRowsMap = new Map(Array.from(selectedRowsMap.entries()).filter(function (_a) {
13
+ var key = _a[0];
14
+ return externalKeys_1.has(key);
15
+ }));
16
+ setSelectedKeys(externalKeys_1);
17
+ setSelectedRowsMap(externalRowsMap);
18
+ }
19
+ }, [JSON.stringify(rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys)]);
8
20
  // 获取行的唯一 key
9
21
  var getRowKey = function (record, index) {
10
22
  var _a;
@@ -17,39 +29,48 @@ var useRowSelection = function (_a) {
17
29
  var handleRowSelect = function (record, index, checked) {
18
30
  var key = getRowKey(record, index);
19
31
  var newSelectedKeys = new Set(selectedKeys);
32
+ var newSelectedRowsMap = new Map(selectedRowsMap);
20
33
  if (checked) {
21
34
  newSelectedKeys.add(key);
35
+ newSelectedRowsMap.set(key, record);
22
36
  }
23
37
  else {
24
38
  newSelectedKeys.delete(key);
39
+ newSelectedRowsMap.delete(key);
25
40
  }
26
41
  setSelectedKeys(newSelectedKeys);
42
+ setSelectedRowsMap(newSelectedRowsMap);
27
43
  if (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange) {
28
- var selectedRows = data.filter(function (item, idx) { return newSelectedKeys.has(getRowKey(item, idx)); });
44
+ var selectedRows = Array.from(newSelectedRowsMap.values());
29
45
  rowSelection.onChange(Array.from(newSelectedKeys), selectedRows);
30
46
  }
31
47
  };
32
48
  // 处理全选
33
49
  var handleSelectAll = function (checked) {
34
- var newSelectedKeys = new Set();
50
+ var newSelectedKeys = new Set(selectedKeys);
51
+ var newSelectedRowsMap = new Map(selectedRowsMap);
35
52
  if (checked) {
36
53
  data.forEach(function (record, index) {
37
54
  var _a;
38
55
  var checkboxProps = ((_a = rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.getCheckboxProps) === null || _a === void 0 ? void 0 : _a.call(rowSelection, record)) || {};
39
56
  if (!checkboxProps.disabled) {
40
- newSelectedKeys.add(getRowKey(record, index));
57
+ var key = getRowKey(record, index);
58
+ newSelectedKeys.add(key);
59
+ newSelectedRowsMap.set(key, record);
41
60
  }
42
61
  });
43
62
  }
63
+ else {
64
+ data.forEach(function (record, index) {
65
+ var key = getRowKey(record, index);
66
+ newSelectedKeys.delete(key);
67
+ newSelectedRowsMap.delete(key);
68
+ });
69
+ }
44
70
  setSelectedKeys(newSelectedKeys);
71
+ setSelectedRowsMap(newSelectedRowsMap);
45
72
  if (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange) {
46
- var selectedRows = checked
47
- ? data.filter(function (record) {
48
- var _a;
49
- var checkboxProps = ((_a = rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.getCheckboxProps) === null || _a === void 0 ? void 0 : _a.call(rowSelection, record)) || {};
50
- return !checkboxProps.disabled;
51
- })
52
- : [];
73
+ var selectedRows = Array.from(newSelectedRowsMap.values());
53
74
  rowSelection.onChange(Array.from(newSelectedKeys), selectedRows);
54
75
  }
55
76
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foxit-component",
3
- "version": "1.0.4-alpha.11",
3
+ "version": "1.0.4-alpha.13",
4
4
  "author": {
5
5
  "name": "linye",
6
6
  "email": "869675630@qq.com"