next-helios-fe 1.4.36 → 1.4.37
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/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/components/table/index.tsx +27 -18
package/package.json
CHANGED
@@ -78,6 +78,7 @@ export const Table: TableComponentProps = ({
|
|
78
78
|
actionColumn,
|
79
79
|
}) => {
|
80
80
|
const paginationRef = useRef<HTMLDivElement>(null);
|
81
|
+
const [excludedColumn, setExcludedColumn] = useState<string[]>([]);
|
81
82
|
const [search, setSearch] = useState<string>("");
|
82
83
|
const [filter, setFilter] = useState<any[]>([]);
|
83
84
|
const [categoryFilter, setCategoryFilter] = useState<any[]>([]);
|
@@ -93,7 +94,6 @@ export const Table: TableComponentProps = ({
|
|
93
94
|
column: "",
|
94
95
|
order: "",
|
95
96
|
});
|
96
|
-
const [excluded, setExcluded] = useState<string[]>([]);
|
97
97
|
|
98
98
|
const height =
|
99
99
|
options?.height === "fit"
|
@@ -118,10 +118,6 @@ export const Table: TableComponentProps = ({
|
|
118
118
|
}
|
119
119
|
}, [selected]);
|
120
120
|
|
121
|
-
useEffect(() => {
|
122
|
-
setPage(1);
|
123
|
-
}, [search, filter, categoryFilter]);
|
124
|
-
|
125
121
|
useEffect(() => {
|
126
122
|
setFilter(
|
127
123
|
header.map((item) => {
|
@@ -180,12 +176,14 @@ export const Table: TableComponentProps = ({
|
|
180
176
|
if (search === "") {
|
181
177
|
return item;
|
182
178
|
} else if (
|
183
|
-
header
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
179
|
+
header
|
180
|
+
.filter((item) => !excludedColumn.includes(item.key))
|
181
|
+
.some((headerItem) => {
|
182
|
+
return item[headerItem.key as keyof typeof item]
|
183
|
+
?.toString()
|
184
|
+
?.toLowerCase()
|
185
|
+
?.includes(search.toLowerCase());
|
186
|
+
})
|
189
187
|
) {
|
190
188
|
return item;
|
191
189
|
}
|
@@ -200,6 +198,7 @@ export const Table: TableComponentProps = ({
|
|
200
198
|
})
|
201
199
|
.filter((item) => {
|
202
200
|
return header
|
201
|
+
.filter((item) => !excludedColumn.includes(item.key))
|
203
202
|
.filter((headerItem) => headerItem.type === "category")
|
204
203
|
.every((headerItem) => {
|
205
204
|
return categoryFilter.includes(
|
@@ -229,8 +228,18 @@ export const Table: TableComponentProps = ({
|
|
229
228
|
}
|
230
229
|
}, [header, data, filter, categoryFilter, search, sortBy]);
|
231
230
|
|
231
|
+
useEffect(() => {
|
232
|
+
if (page > Math.ceil(filteredData.length / maxRow)) {
|
233
|
+
setPage(1);
|
234
|
+
paginationRef.current?.scrollTo({
|
235
|
+
left: 0,
|
236
|
+
behavior: "smooth",
|
237
|
+
});
|
238
|
+
}
|
239
|
+
}, [filteredData]);
|
240
|
+
|
232
241
|
const headerArr = header
|
233
|
-
?.filter((item) => !
|
242
|
+
?.filter((item) => !excludedColumn.includes(item.key))
|
234
243
|
?.map((item) => {
|
235
244
|
return (
|
236
245
|
<th
|
@@ -403,7 +412,7 @@ export const Table: TableComponentProps = ({
|
|
403
412
|
</td>
|
404
413
|
)}
|
405
414
|
{header
|
406
|
-
?.filter((headerItem) => !
|
415
|
+
?.filter((headerItem) => !excludedColumn.includes(headerItem.key))
|
407
416
|
?.map((headerItem) => {
|
408
417
|
if (headerItem?.render) {
|
409
418
|
return (
|
@@ -504,12 +513,12 @@ export const Table: TableComponentProps = ({
|
|
504
513
|
<Dropdown.Item
|
505
514
|
key={item.key}
|
506
515
|
onClick={() => {
|
507
|
-
if (
|
508
|
-
|
509
|
-
|
516
|
+
if (excludedColumn.includes(item.key)) {
|
517
|
+
setExcludedColumn(
|
518
|
+
excludedColumn.filter((prev) => prev !== item.key)
|
510
519
|
);
|
511
520
|
} else {
|
512
|
-
|
521
|
+
setExcludedColumn([...excludedColumn, item.key]);
|
513
522
|
}
|
514
523
|
}}
|
515
524
|
>
|
@@ -517,7 +526,7 @@ export const Table: TableComponentProps = ({
|
|
517
526
|
<Form.Checkbox
|
518
527
|
options={{ disableHover: true }}
|
519
528
|
label={item.title}
|
520
|
-
checked={!
|
529
|
+
checked={!excludedColumn.includes(item.key)}
|
521
530
|
/>
|
522
531
|
</div>
|
523
532
|
</Dropdown.Item>
|