next-helios-fe 1.4.14 → 1.4.15
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 +30 -24
package/package.json
CHANGED
@@ -113,6 +113,10 @@ export const Table: TableComponentProps = ({
|
|
113
113
|
}
|
114
114
|
}, [selected]);
|
115
115
|
|
116
|
+
useEffect(() => {
|
117
|
+
setPage(1);
|
118
|
+
}, [search, filter, categoryFilter]);
|
119
|
+
|
116
120
|
useEffect(() => {
|
117
121
|
setFilter(
|
118
122
|
header.map((item) => {
|
@@ -183,7 +187,7 @@ export const Table: TableComponentProps = ({
|
|
183
187
|
})
|
184
188
|
?.filter((item) => {
|
185
189
|
return filter.every((filterItem) => {
|
186
|
-
return item[filterItem.key as keyof typeof item]
|
190
|
+
return (item[filterItem.key as keyof typeof item] || "")
|
187
191
|
?.toString()
|
188
192
|
?.toLowerCase()
|
189
193
|
?.includes(filterItem.value.toLowerCase());
|
@@ -646,8 +650,10 @@ export const Table: TableComponentProps = ({
|
|
646
650
|
<span className="hidden md:block text-sm text-slate-400">{`Showing ${
|
647
651
|
(page - 1) * maxRow + 1
|
648
652
|
} to ${
|
649
|
-
page * maxRow >
|
650
|
-
|
653
|
+
page * maxRow > filteredData.length
|
654
|
+
? filteredData.length
|
655
|
+
: page * maxRow
|
656
|
+
} of ${filteredData.length} entries`}</span>
|
651
657
|
<div className="flex items-center gap-2 text-xs">
|
652
658
|
<button
|
653
659
|
type="button"
|
@@ -678,29 +684,29 @@ export const Table: TableComponentProps = ({
|
|
678
684
|
ref={paginationRef}
|
679
685
|
className="flex gap-2 max-w-20 overflow-auto [&::-webkit-scrollbar]:hidden"
|
680
686
|
>
|
681
|
-
{Array.from({
|
682
|
-
(
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
)}
|
687
|
+
{Array.from({
|
688
|
+
length: Math.ceil(filteredData.length / maxRow),
|
689
|
+
}).map((_, index) => {
|
690
|
+
return (
|
691
|
+
<button
|
692
|
+
key={index}
|
693
|
+
id={`pagination-page-${index}`}
|
694
|
+
type="button"
|
695
|
+
className="flex justify-center items-center min-w-9 h-9 border rounded-md select-none hover:bg-secondary-light disabled:bg-primary-transparent disabled:text-primary"
|
696
|
+
disabled={page === index + 1}
|
697
|
+
onClick={() => {
|
698
|
+
setPage(index + 1);
|
699
|
+
}}
|
700
|
+
>
|
701
|
+
{index + 1}
|
702
|
+
</button>
|
703
|
+
);
|
704
|
+
})}
|
699
705
|
</div>
|
700
706
|
<button
|
701
707
|
type="button"
|
702
708
|
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"
|
703
|
-
disabled={
|
709
|
+
disabled={filteredData.length <= page * maxRow}
|
704
710
|
onClick={() => {
|
705
711
|
setPage((prev) => prev + 1);
|
706
712
|
handleOnNextClick();
|
@@ -711,9 +717,9 @@ export const Table: TableComponentProps = ({
|
|
711
717
|
<button
|
712
718
|
type="button"
|
713
719
|
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"
|
714
|
-
disabled={
|
720
|
+
disabled={filteredData.length <= page * maxRow}
|
715
721
|
onClick={() => {
|
716
|
-
setPage(Math.ceil(
|
722
|
+
setPage(Math.ceil(filteredData.length / maxRow));
|
717
723
|
paginationRef.current?.scrollTo({
|
718
724
|
left: paginationRef.current.scrollWidth,
|
719
725
|
behavior: "smooth",
|