next-helios-fe 1.5.3 → 1.6.1

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.
@@ -115,9 +115,9 @@ export const Table: TableComponentProps = ({
115
115
  }, [checkbox?.checked]);
116
116
 
117
117
  useEffect(() => {
118
- if (selected && selected.length !== 0) {
118
+ if (selected && selected?.length !== 0) {
119
119
  checkbox?.onChange &&
120
- checkbox.onChange({
120
+ checkbox?.onChange({
121
121
  target: {
122
122
  checked: selected,
123
123
  },
@@ -127,14 +127,14 @@ export const Table: TableComponentProps = ({
127
127
 
128
128
  useEffect(() => {
129
129
  setFilter(
130
- header.map((item) => {
130
+ header?.map((item) => {
131
131
  return { key: item.key, value: "", type: item.type };
132
132
  })
133
133
  );
134
134
 
135
135
  header
136
- .filter((item) => item.type === "category")
137
- .map((item) => {
136
+ ?.filter((item) => item.type === "category")
137
+ ?.map((item) => {
138
138
  data
139
139
  .map((dataItem) => dataItem[item.key as keyof typeof dataItem])
140
140
  .sort((a, b) => (a || "").localeCompare(b || ""))
@@ -163,9 +163,9 @@ export const Table: TableComponentProps = ({
163
163
  };
164
164
 
165
165
  const handleOnNextClick = () => {
166
- if (page + 1 === Math.ceil(data.length / maxRow)) {
166
+ if (page + 1 === Math.ceil(data?.length / maxRow)) {
167
167
  paginationRef.current?.scrollTo({
168
- left: paginationRef.current.scrollWidth,
168
+ left: paginationRef.current?.scrollWidth,
169
169
  behavior: "smooth",
170
170
  });
171
171
  } else {
@@ -184,8 +184,8 @@ export const Table: TableComponentProps = ({
184
184
  return item;
185
185
  } else if (
186
186
  header
187
- .filter((item) => !excludedColumn.includes(item.key))
188
- .some((headerItem) => {
187
+ ?.filter((item) => !excludedColumn.includes(item.key))
188
+ ?.some((headerItem) => {
189
189
  return item[headerItem.key as keyof typeof item]
190
190
  ?.toString()
191
191
  ?.toLowerCase()
@@ -203,31 +203,31 @@ export const Table: TableComponentProps = ({
203
203
  ?.includes(filterItem.value.toLowerCase());
204
204
  });
205
205
  })
206
- .filter((item) => {
206
+ ?.filter((item) => {
207
207
  return header
208
- .filter((item) => !excludedColumn.includes(item.key))
209
- .filter((headerItem) => headerItem.type === "category")
210
- .every((headerItem) => {
211
- return categoryFilter.includes(
208
+ ?.filter((item) => !excludedColumn?.includes(item.key))
209
+ ?.filter((headerItem) => headerItem.type === "category")
210
+ ?.every((headerItem) => {
211
+ return categoryFilter?.includes(
212
212
  item[headerItem.key as keyof typeof item]
213
213
  );
214
214
  });
215
215
  });
216
216
 
217
- if (sortBy.column === "") {
217
+ if (sortBy?.column === "") {
218
218
  return tempData;
219
219
  } else {
220
220
  return tempData?.sort((a, b): any => {
221
- if (sortBy.column === "") {
221
+ if (sortBy?.column === "") {
222
222
  return a.id > b.id ? 1 : -1;
223
- } else if (sortBy.order === "asc") {
224
- return a[sortBy.column as keyof typeof a] >
225
- b[sortBy.column as keyof typeof b]
223
+ } else if (sortBy?.order === "asc") {
224
+ return a[sortBy?.column as keyof typeof a] >
225
+ b[sortBy?.column as keyof typeof b]
226
226
  ? 1
227
227
  : -1;
228
- } else if (sortBy.order === "desc") {
229
- return a[sortBy.column as keyof typeof a] <
230
- b[sortBy.column as keyof typeof b]
228
+ } else if (sortBy?.order === "desc") {
229
+ return a[sortBy?.column as keyof typeof a] <
230
+ b[sortBy?.column as keyof typeof b]
231
231
  ? 1
232
232
  : -1;
233
233
  }
@@ -236,7 +236,7 @@ export const Table: TableComponentProps = ({
236
236
  }, [header, data, filter, categoryFilter, search, sortBy]);
237
237
 
238
238
  useEffect(() => {
239
- if (page > Math.ceil(filteredData.length / maxRow)) {
239
+ if (page > Math.ceil(filteredData?.length / maxRow)) {
240
240
  setPage(1);
241
241
  paginationRef.current?.scrollTo({
242
242
  left: 0,
@@ -246,7 +246,7 @@ export const Table: TableComponentProps = ({
246
246
  }, [filteredData]);
247
247
 
248
248
  const headerArr = header
249
- ?.filter((item) => !excludedColumn.includes(item.key))
249
+ ?.filter((item) => !excludedColumn?.includes(item.key))
250
250
  ?.map((item) => {
251
251
  return (
252
252
  <th
@@ -301,15 +301,15 @@ export const Table: TableComponentProps = ({
301
301
  }
302
302
  >
303
303
  {data
304
- .map(
304
+ ?.map(
305
305
  (dataItem) =>
306
306
  dataItem[item.key as keyof typeof dataItem]
307
307
  )
308
- .sort((a, b) => (a || "").localeCompare(b || ""))
309
- .filter(
308
+ ?.sort((a, b) => (a || "").localeCompare(b || ""))
309
+ ?.filter(
310
310
  (value, index, self) => self.indexOf(value) === index
311
311
  )
312
- .map((value) => {
312
+ ?.map((value) => {
313
313
  return (
314
314
  <Dropdown.Item
315
315
  key={value}
@@ -350,12 +350,12 @@ export const Table: TableComponentProps = ({
350
350
  className="w-full px-6 pt-0 pb-0.5 border-default border-t-0 border-b border-x-0 bg-secondary-bg text-sm font-normal placeholder:duration-300 placeholder:translate-x-0 [&::-webkit-search-cancel-button]:appearance-none focus:placeholder:translate-x-1 placeholder:text-slate-300 focus:outline-none focus:ring-0 focus:border-primary-dark disabled:bg-secondary-light disabled:text-slate-400"
351
351
  placeholder="search.."
352
352
  value={
353
- filter.find((filterItem) => filterItem.key === item.key)
353
+ filter?.find((filterItem) => filterItem.key === item.key)
354
354
  ?.value
355
355
  }
356
356
  onChange={(e) => {
357
357
  setFilter(
358
- filter.map((filterItem) => {
358
+ filter?.map((filterItem) => {
359
359
  return filterItem.key === item.key
360
360
  ? { ...filterItem, value: e.target.value }
361
361
  : filterItem;
@@ -363,13 +363,13 @@ export const Table: TableComponentProps = ({
363
363
  );
364
364
  }}
365
365
  />
366
- {filter.find((filterItem) => filterItem.key === item.key)
366
+ {filter?.find((filterItem) => filterItem.key === item.key)
367
367
  ?.value && (
368
368
  <button
369
369
  className="absolute right-0 rounded-full text-slate-400 hover:bg-secondary-light"
370
370
  onClick={() => {
371
371
  setFilter(
372
- filter.map((filterItem) => {
372
+ filter?.map((filterItem) => {
373
373
  return filterItem.key === item.key
374
374
  ? { ...filterItem, value: "" }
375
375
  : filterItem;
@@ -397,15 +397,19 @@ export const Table: TableComponentProps = ({
397
397
  <Form.Checkbox
398
398
  options={{ disableHover: true }}
399
399
  checked={
400
- selected.find((selectedItem) => selectedItem.id === item.id)
400
+ selected?.find((selectedItem) => selectedItem.id === item.id)
401
401
  ? true
402
402
  : false
403
403
  }
404
404
  onClick={(e) => {
405
405
  if (
406
- selected.find((selectedItem) => selectedItem.id === item.id)
406
+ selected?.find(
407
+ (selectedItem) => selectedItem.id === item.id
408
+ )
407
409
  ) {
408
- setSelected(selected.filter((prev) => prev.id !== item.id));
410
+ setSelected(
411
+ selected?.filter((prev) => prev.id !== item.id)
412
+ );
409
413
  } else {
410
414
  setSelected((prev) => [...prev, item]);
411
415
  }
@@ -419,7 +423,7 @@ export const Table: TableComponentProps = ({
419
423
  </td>
420
424
  )}
421
425
  {header
422
- ?.filter((headerItem) => !excludedColumn.includes(headerItem.key))
426
+ ?.filter((headerItem) => !excludedColumn?.includes(headerItem.key))
423
427
  ?.map((headerItem) => {
424
428
  if (headerItem?.render) {
425
429
  return (
@@ -515,14 +519,14 @@ export const Table: TableComponentProps = ({
515
519
  </button>
516
520
  }
517
521
  >
518
- {header.map((item) => {
522
+ {header?.map((item) => {
519
523
  return (
520
524
  <Dropdown.Item
521
525
  key={item.key}
522
526
  onClick={() => {
523
- if (excludedColumn.includes(item.key)) {
527
+ if (excludedColumn?.includes(item.key)) {
524
528
  setExcludedColumn(
525
- excludedColumn.filter((prev) => prev !== item.key)
529
+ excludedColumn?.filter((prev) => prev !== item.key)
526
530
  );
527
531
  } else {
528
532
  setExcludedColumn([...excludedColumn, item.key]);
@@ -533,7 +537,7 @@ export const Table: TableComponentProps = ({
533
537
  <Form.Checkbox
534
538
  options={{ disableHover: true }}
535
539
  label={item.title}
536
- checked={!excludedColumn.includes(item.key)}
540
+ checked={!excludedColumn?.includes(item.key)}
537
541
  />
538
542
  </div>
539
543
  </Dropdown.Item>
@@ -582,24 +586,24 @@ export const Table: TableComponentProps = ({
582
586
  <Form.Checkbox
583
587
  options={{ disableHover: true }}
584
588
  checked={
585
- filteredData.length !== 0 &&
586
- filteredData.filter((item) => {
587
- return selected.find((selectedItem) => {
589
+ filteredData?.length !== 0 &&
590
+ filteredData?.filter((item) => {
591
+ return selected?.find((selectedItem) => {
588
592
  return selectedItem.id === item.id;
589
593
  });
590
- }).length === filteredData.length
594
+ })?.length === filteredData?.length
591
595
  }
592
596
  onChange={(e) => {
593
597
  if (
594
- filteredData.filter((item) => {
595
- return selected.find((selectedItem) => {
598
+ filteredData?.filter((item) => {
599
+ return selected?.find((selectedItem) => {
596
600
  return selectedItem.id === item.id;
597
601
  });
598
- }).length === filteredData.length
602
+ })?.length === filteredData?.length
599
603
  ) {
600
604
  setSelected((prev) => {
601
605
  return prev.filter((prevItem) => {
602
- return !filteredData.find((filteredItem) => {
606
+ return !filteredData?.find((filteredItem) => {
603
607
  return filteredItem.id === prevItem.id;
604
608
  });
605
609
  });
@@ -698,10 +702,10 @@ export const Table: TableComponentProps = ({
698
702
  <span className="hidden md:block text-sm text-slate-400">{`Showing ${
699
703
  (page - 1) * maxRow + 1
700
704
  } to ${
701
- page * maxRow > filteredData.length
702
- ? filteredData.length
705
+ page * maxRow > filteredData?.length
706
+ ? filteredData?.length
703
707
  : page * maxRow
704
- } of ${filteredData.length} entries`}</span>
708
+ } of ${filteredData?.length} entries`}</span>
705
709
  <div className="flex items-center gap-2 text-xs">
706
710
  <button
707
711
  type="button"
@@ -733,7 +737,7 @@ export const Table: TableComponentProps = ({
733
737
  className="flex gap-2 max-w-20 overflow-auto [&::-webkit-scrollbar]:hidden"
734
738
  >
735
739
  {Array.from({
736
- length: Math.ceil(filteredData.length / maxRow),
740
+ length: Math.ceil(filteredData?.length / maxRow),
737
741
  }).map((_, index) => {
738
742
  return (
739
743
  <button
@@ -754,7 +758,7 @@ export const Table: TableComponentProps = ({
754
758
  <button
755
759
  type="button"
756
760
  className="hidden md:flex justify-center items-center min-w-9 h-9 border rounded-md bg-secondary-bg hover:bg-secondary-light disabled:bg-secondary-light disabled:text-slate-400 disabled:pointer-events-none"
757
- disabled={filteredData.length <= page * maxRow}
761
+ disabled={filteredData?.length <= page * maxRow}
758
762
  onClick={() => {
759
763
  setPage((prev) => prev + 1);
760
764
  handleOnNextClick();
@@ -765,11 +769,11 @@ export const Table: TableComponentProps = ({
765
769
  <button
766
770
  type="button"
767
771
  className="flex justify-center items-center min-w-9 h-9 border rounded-md bg-secondary-bg hover:bg-secondary-light disabled:bg-secondary-light disabled:text-slate-400 disabled:pointer-events-none"
768
- disabled={filteredData.length <= page * maxRow}
772
+ disabled={filteredData?.length <= page * maxRow}
769
773
  onClick={() => {
770
- setPage(Math.ceil(filteredData.length / maxRow));
774
+ setPage(Math.ceil(filteredData?.length / maxRow));
771
775
  paginationRef.current?.scrollTo({
772
- left: paginationRef.current.scrollWidth,
776
+ left: paginationRef.current?.scrollWidth,
773
777
  behavior: "smooth",
774
778
  });
775
779
  }}