es-grid-template 1.9.64 → 1.9.65

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.
@@ -165,9 +165,17 @@ const InternalTable = props => {
165
165
  selectedRowKeys,
166
166
  defaultSelectedRowKeys
167
167
  } = selectionSettings ?? {};
168
- const [mergedSelectedKeys] = useMergedState(selectedRowKeys || defaultSelectedRowKeys || [], {
169
- value: selectedRowKeys
170
- });
168
+
169
+ // const [mergedSelectedKeys] = useMergedState(
170
+ // selectedRowKeys || defaultSelectedRowKeys || [],
171
+ // {
172
+ // value: selectedRowKeys,
173
+ // },
174
+ // );
175
+
176
+ const mergedSelectedKeys = React.useMemo(() => {
177
+ return selectedRowKeys ?? defaultSelectedRowKeys ?? [];
178
+ }, [defaultSelectedRowKeys, selectedRowKeys]);
171
179
  const mergedData = React.useMemo(() => {
172
180
  return filterDataByColumns(convertData, onFilter ? undefined : filterStates ?? defaultFilter, onSorter ? undefined : sorterStates ?? defaultSorter, mergedFilterKeys, ignoreAccents);
173
181
  }, [convertData, filterStates, mergedFilterKeys, sorterStates, ignoreAccents, defaultFilter, defaultSorter, onFilter, onSorter]);
@@ -125,9 +125,9 @@ const TableHeadCell2 = props => {
125
125
  const doFilter = type => {
126
126
  if (type) {
127
127
  if (fieldOriginal) {
128
- fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
128
+ fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : [selectedKeys[0].trim()] : selectedKeys);
129
129
  } else {
130
- column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
130
+ column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : [selectedKeys[0].trim()] : selectedKeys);
131
131
  }
132
132
 
133
133
  // column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? (selectedKeys.length === 0 ? [''] : selectedKeys) : selectedKeys)
@@ -316,7 +316,7 @@ export const renderFilter = args => {
316
316
  ,
317
317
  placeholder: tableLocal?.search ?? `Search`,
318
318
  value: selectedKeys[0],
319
- onChange: e => setSelectedKeys(e.target.value ? [e.target.value.trim()] : [])
319
+ onChange: e => setSelectedKeys(e.target.value ? [e.target.value] : [])
320
320
  // onPressEnter={() => handleSearch(selectedKeys as string[], confirm)}
321
321
  ,
322
322
  onPressEnter: () => doFilter?.(true),
@@ -255,7 +255,7 @@ export const toggleRowSelection = props => {
255
255
  // đã chọn
256
256
 
257
257
  // xóa row ra list selected
258
- const newRowsSelected = prevSelected.filter(it => it.id !== row.id);
258
+ const newRowsSelected = prevSelected.filter(it => it.rowId !== row.id);
259
259
  setIsSelectionChange({
260
260
  isChange: true,
261
261
  type: 'rowSelected',
@@ -14,7 +14,7 @@ import { arrayMove } from '@dnd-kit/sortable';
14
14
  import React, { Fragment } from 'react';
15
15
  import TableContainer from "../TableContainer";
16
16
  import { OperatorFeature } from "../features/operator";
17
- import { convertFilters, convertToObjTrue, filterByIds, filterDataByColumns, getAllRowKey, isObjEqual, revertConvertFilters } from "../hook/utils";
17
+ import { convertFilters, convertToObjTrue, filterByIds, filterDataByColumns, flattenArray, getAllRowKey, revertConvertFilters } from "../hook/utils";
18
18
  import TableContainerEdit from "../TableContainerEdit";
19
19
  import classNames from 'classnames';
20
20
  import { GridStyle } from "../style";
@@ -169,6 +169,25 @@ const Grid = props => {
169
169
 
170
170
  // debugTable: true
171
171
  });
172
+ React.useEffect(() => {
173
+ if (!isSelectionChange.isChange) {
174
+ if (mergedSelectedKeys.length === 0) {
175
+ setIsSelectionChange(prev => ({
176
+ ...prev,
177
+ rowsData: []
178
+ }));
179
+ } else {
180
+ const abc = flattenArray(dataSource);
181
+ const selectedKeySet = new Set(mergedSelectedKeys);
182
+ const result = abc.filter(row => selectedKeySet.has(row.id));
183
+ setRowSelection(convertToObjTrue(mergedSelectedKeys));
184
+ setIsSelectionChange(prev => ({
185
+ ...prev,
186
+ rowsData: result
187
+ }));
188
+ }
189
+ }
190
+ }, [mergedSelectedKeys, dataSource]);
172
191
  React.useEffect(() => {
173
192
  if (defaultFilter) {
174
193
  const a = revertConvertFilters(defaultFilter);
@@ -198,20 +217,6 @@ const Grid = props => {
198
217
  }
199
218
  }
200
219
  }, [columnHidden, columnSizingInfo]);
201
- React.useEffect(() => {
202
- const isEqual = isObjEqual(convertToObjTrue(mergedSelectedKeys), rowSelection);
203
- if (!isEqual) {
204
- setRowSelection(convertToObjTrue(mergedSelectedKeys));
205
- // table.setRowSelection(convertToObjTrue(mergedSelectedKeys))
206
-
207
- if (mergedSelectedKeys.length === 0) {
208
- setIsSelectionChange(prev => ({
209
- ...prev,
210
- rowsData: []
211
- }));
212
- }
213
- }
214
- }, [mergedSelectedKeys]);
215
220
  React.useEffect(() => {
216
221
  if (isSelectionChange.isChange) {
217
222
  const aa = table.getState().rowSelection;
@@ -220,11 +225,12 @@ const Grid = props => {
220
225
  // const ssss = dataTable.filter(it => ids.includes(it.id)) // lấy rowsData của trang hiện tại
221
226
  const ssss = filterByIds(ids, isSelectionChange.rowsData ?? []); // lấy rowsData của trang hiện tại
222
227
 
223
- const rs = ssss.map(it => it.original);
228
+ // const rs = ssss.map(it => it.original)
229
+
224
230
  rowSelected?.({
225
231
  type: isSelectionChange.type,
226
232
  rowData: isSelectionChange.rowData,
227
- selected: rs
233
+ selected: ssss
228
234
  });
229
235
  }
230
236
  }, [isSelectionChange, rowSelection, table.getState().rowSelection]);
@@ -170,9 +170,17 @@ const InternalTable = props => {
170
170
  selectedRowKeys,
171
171
  defaultSelectedRowKeys
172
172
  } = selectionSettings ?? {};
173
- const [mergedSelectedKeys] = (0, _useMergedState.default)(selectedRowKeys || defaultSelectedRowKeys || [], {
174
- value: selectedRowKeys
175
- });
173
+
174
+ // const [mergedSelectedKeys] = useMergedState(
175
+ // selectedRowKeys || defaultSelectedRowKeys || [],
176
+ // {
177
+ // value: selectedRowKeys,
178
+ // },
179
+ // );
180
+
181
+ const mergedSelectedKeys = _react.default.useMemo(() => {
182
+ return selectedRowKeys ?? defaultSelectedRowKeys ?? [];
183
+ }, [defaultSelectedRowKeys, selectedRowKeys]);
176
184
  const mergedData = _react.default.useMemo(() => {
177
185
  return (0, _utils.filterDataByColumns)(convertData, onFilter ? undefined : filterStates ?? defaultFilter, onSorter ? undefined : sorterStates ?? defaultSorter, mergedFilterKeys, ignoreAccents);
178
186
  }, [convertData, filterStates, mergedFilterKeys, sorterStates, ignoreAccents, defaultFilter, defaultSorter, onFilter, onSorter]);
@@ -133,9 +133,9 @@ const TableHeadCell2 = props => {
133
133
  const doFilter = type => {
134
134
  if (type) {
135
135
  if (fieldOriginal) {
136
- fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
136
+ fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : [selectedKeys[0].trim()] : selectedKeys);
137
137
  } else {
138
- column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
138
+ column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : [selectedKeys[0].trim()] : selectedKeys);
139
139
  }
140
140
 
141
141
  // column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? (selectedKeys.length === 0 ? [''] : selectedKeys) : selectedKeys)
@@ -325,7 +325,7 @@ const renderFilter = args => {
325
325
  ,
326
326
  placeholder: tableLocal?.search ?? `Search`,
327
327
  value: selectedKeys[0],
328
- onChange: e => setSelectedKeys(e.target.value ? [e.target.value.trim()] : [])
328
+ onChange: e => setSelectedKeys(e.target.value ? [e.target.value] : [])
329
329
  // onPressEnter={() => handleSearch(selectedKeys as string[], confirm)}
330
330
  ,
331
331
  onPressEnter: () => doFilter?.(true),
@@ -267,7 +267,7 @@ const toggleRowSelection = props => {
267
267
  // đã chọn
268
268
 
269
269
  // xóa row ra list selected
270
- const newRowsSelected = prevSelected.filter(it => it.id !== row.id);
270
+ const newRowsSelected = prevSelected.filter(it => it.rowId !== row.id);
271
271
  setIsSelectionChange({
272
272
  isChange: true,
273
273
  type: 'rowSelected',
@@ -174,6 +174,25 @@ const Grid = props => {
174
174
 
175
175
  // debugTable: true
176
176
  });
177
+ _react.default.useEffect(() => {
178
+ if (!isSelectionChange.isChange) {
179
+ if (mergedSelectedKeys.length === 0) {
180
+ setIsSelectionChange(prev => ({
181
+ ...prev,
182
+ rowsData: []
183
+ }));
184
+ } else {
185
+ const abc = (0, _utils.flattenArray)(dataSource);
186
+ const selectedKeySet = new Set(mergedSelectedKeys);
187
+ const result = abc.filter(row => selectedKeySet.has(row.id));
188
+ setRowSelection((0, _utils.convertToObjTrue)(mergedSelectedKeys));
189
+ setIsSelectionChange(prev => ({
190
+ ...prev,
191
+ rowsData: result
192
+ }));
193
+ }
194
+ }
195
+ }, [mergedSelectedKeys, dataSource]);
177
196
  _react.default.useEffect(() => {
178
197
  if (defaultFilter) {
179
198
  const a = (0, _utils.revertConvertFilters)(defaultFilter);
@@ -203,20 +222,6 @@ const Grid = props => {
203
222
  }
204
223
  }
205
224
  }, [columnHidden, columnSizingInfo]);
206
- _react.default.useEffect(() => {
207
- const isEqual = (0, _utils.isObjEqual)((0, _utils.convertToObjTrue)(mergedSelectedKeys), rowSelection);
208
- if (!isEqual) {
209
- setRowSelection((0, _utils.convertToObjTrue)(mergedSelectedKeys));
210
- // table.setRowSelection(convertToObjTrue(mergedSelectedKeys))
211
-
212
- if (mergedSelectedKeys.length === 0) {
213
- setIsSelectionChange(prev => ({
214
- ...prev,
215
- rowsData: []
216
- }));
217
- }
218
- }
219
- }, [mergedSelectedKeys]);
220
225
  _react.default.useEffect(() => {
221
226
  if (isSelectionChange.isChange) {
222
227
  const aa = table.getState().rowSelection;
@@ -225,11 +230,12 @@ const Grid = props => {
225
230
  // const ssss = dataTable.filter(it => ids.includes(it.id)) // lấy rowsData của trang hiện tại
226
231
  const ssss = (0, _utils.filterByIds)(ids, isSelectionChange.rowsData ?? []); // lấy rowsData của trang hiện tại
227
232
 
228
- const rs = ssss.map(it => it.original);
233
+ // const rs = ssss.map(it => it.original)
234
+
229
235
  rowSelected?.({
230
236
  type: isSelectionChange.type,
231
237
  rowData: isSelectionChange.rowData,
232
- selected: rs
238
+ selected: ssss
233
239
  });
234
240
  }
235
241
  }, [isSelectionChange, rowSelection, table.getState().rowSelection]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "es-grid-template",
3
- "version": "1.9.64",
3
+ "version": "1.9.65",
4
4
  "description": "es-grid-template",
5
5
  "keywords": [
6
6
  "react",