next-helios-fe 1.4.36 → 1.4.38

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-helios-fe",
3
- "version": "1.4.36",
3
+ "version": "1.4.38",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -55,12 +55,14 @@ interface TableProps {
55
55
  id: number | string;
56
56
  [key: string]: any;
57
57
  }[];
58
- onCheck?: (
59
- checked: {
60
- id: number | string;
61
- [key: string]: any;
62
- }[]
63
- ) => void;
58
+ onChange?: (e: {
59
+ target: {
60
+ checked: {
61
+ id: number | string;
62
+ [key: string]: any;
63
+ }[];
64
+ };
65
+ }) => void;
64
66
  };
65
67
  actionColumn?: (e: any) => React.ReactNode;
66
68
  }
@@ -78,6 +80,7 @@ export const Table: TableComponentProps = ({
78
80
  actionColumn,
79
81
  }) => {
80
82
  const paginationRef = useRef<HTMLDivElement>(null);
83
+ const [excludedColumn, setExcludedColumn] = useState<string[]>([]);
81
84
  const [search, setSearch] = useState<string>("");
82
85
  const [filter, setFilter] = useState<any[]>([]);
83
86
  const [categoryFilter, setCategoryFilter] = useState<any[]>([]);
@@ -93,7 +96,6 @@ export const Table: TableComponentProps = ({
93
96
  column: "",
94
97
  order: "",
95
98
  });
96
- const [excluded, setExcluded] = useState<string[]>([]);
97
99
 
98
100
  const height =
99
101
  options?.height === "fit"
@@ -107,21 +109,20 @@ export const Table: TableComponentProps = ({
107
109
  : "flex-1 h-full";
108
110
 
109
111
  useEffect(() => {
110
- if (checkbox?.checked) {
112
+ if (checkbox?.checked && checkbox?.checked?.length !== 0) {
111
113
  setSelected(checkbox?.checked);
112
114
  }
113
115
  }, [checkbox]);
114
116
 
115
117
  useEffect(() => {
116
- if (selected.length !== 0) {
117
- checkbox?.onCheck && checkbox.onCheck(selected);
118
- }
118
+ checkbox?.onChange &&
119
+ checkbox.onChange({
120
+ target: {
121
+ checked: selected,
122
+ },
123
+ });
119
124
  }, [selected]);
120
125
 
121
- useEffect(() => {
122
- setPage(1);
123
- }, [search, filter, categoryFilter]);
124
-
125
126
  useEffect(() => {
126
127
  setFilter(
127
128
  header.map((item) => {
@@ -180,12 +181,14 @@ export const Table: TableComponentProps = ({
180
181
  if (search === "") {
181
182
  return item;
182
183
  } else if (
183
- header.some((headerItem) => {
184
- return item[headerItem.key as keyof typeof item]
185
- ?.toString()
186
- ?.toLowerCase()
187
- ?.includes(search.toLowerCase());
188
- })
184
+ header
185
+ .filter((item) => !excludedColumn.includes(item.key))
186
+ .some((headerItem) => {
187
+ return item[headerItem.key as keyof typeof item]
188
+ ?.toString()
189
+ ?.toLowerCase()
190
+ ?.includes(search.toLowerCase());
191
+ })
189
192
  ) {
190
193
  return item;
191
194
  }
@@ -200,6 +203,7 @@ export const Table: TableComponentProps = ({
200
203
  })
201
204
  .filter((item) => {
202
205
  return header
206
+ .filter((item) => !excludedColumn.includes(item.key))
203
207
  .filter((headerItem) => headerItem.type === "category")
204
208
  .every((headerItem) => {
205
209
  return categoryFilter.includes(
@@ -229,8 +233,18 @@ export const Table: TableComponentProps = ({
229
233
  }
230
234
  }, [header, data, filter, categoryFilter, search, sortBy]);
231
235
 
236
+ useEffect(() => {
237
+ if (page > Math.ceil(filteredData.length / maxRow)) {
238
+ setPage(1);
239
+ paginationRef.current?.scrollTo({
240
+ left: 0,
241
+ behavior: "smooth",
242
+ });
243
+ }
244
+ }, [filteredData]);
245
+
232
246
  const headerArr = header
233
- ?.filter((item) => !excluded.includes(item.key))
247
+ ?.filter((item) => !excludedColumn.includes(item.key))
234
248
  ?.map((item) => {
235
249
  return (
236
250
  <th
@@ -385,7 +399,7 @@ export const Table: TableComponentProps = ({
385
399
  ? true
386
400
  : false
387
401
  }
388
- onChange={(e) => {
402
+ onClick={() => {
389
403
  if (
390
404
  selected.find((selectedItem) => selectedItem.id === item.id)
391
405
  ) {
@@ -403,7 +417,7 @@ export const Table: TableComponentProps = ({
403
417
  </td>
404
418
  )}
405
419
  {header
406
- ?.filter((headerItem) => !excluded.includes(headerItem.key))
420
+ ?.filter((headerItem) => !excludedColumn.includes(headerItem.key))
407
421
  ?.map((headerItem) => {
408
422
  if (headerItem?.render) {
409
423
  return (
@@ -504,12 +518,12 @@ export const Table: TableComponentProps = ({
504
518
  <Dropdown.Item
505
519
  key={item.key}
506
520
  onClick={() => {
507
- if (excluded.includes(item.key)) {
508
- setExcluded(
509
- excluded.filter((prev) => prev !== item.key)
521
+ if (excludedColumn.includes(item.key)) {
522
+ setExcludedColumn(
523
+ excludedColumn.filter((prev) => prev !== item.key)
510
524
  );
511
525
  } else {
512
- setExcluded([...excluded, item.key]);
526
+ setExcludedColumn([...excludedColumn, item.key]);
513
527
  }
514
528
  }}
515
529
  >
@@ -517,7 +531,7 @@ export const Table: TableComponentProps = ({
517
531
  <Form.Checkbox
518
532
  options={{ disableHover: true }}
519
533
  label={item.title}
520
- checked={!excluded.includes(item.key)}
534
+ checked={!excludedColumn.includes(item.key)}
521
535
  />
522
536
  </div>
523
537
  </Dropdown.Item>