Skip to content

Commit 39d6f34

Browse files
authored
Merge pull request #1499 from ASU/uds-1856-pagination-ellipses2
fix(unity-react-core): change the number of pages displayed
2 parents 1006096 + 77d4ede commit 39d6f34

File tree

1 file changed

+47
-4
lines changed

1 file changed

+47
-4
lines changed

packages/unity-react-core/src/components/Pagination/Pagination.jsx

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,39 @@ export const Pagination = ({
6161
};
6262

6363
const renderPages = () => {
64+
65+
if (totalPages < 5) {
66+
return (
67+
<>
68+
{Array.from({ length: totalPages }, (_, index) => {
69+
const page = index + 1;
70+
return (
71+
<PageItem
72+
ariaLabel={`Page ${page} of ${totalPages}`}
73+
isClickeable
74+
key={page}
75+
selectedPage={selectedPage === page}
76+
onClick={e => handleChangePage(e, page)}
77+
>
78+
{page}
79+
</PageItem>
80+
);
81+
})}
82+
</>
83+
);
84+
}
85+
6486
// Set the ranges to be shown in the pagination
87+
const displayMinimumPages = 2;
6588
const lowerRangeLimit = iff(
6689
selectedPage === totalPages - 1,
67-
2,
68-
selectedPage === totalPages ? 3 : 1
90+
1,
91+
selectedPage === totalPages ? 2 : 1
6992
);
7093
const upperRangeLimit = iff(
7194
selectedPage === 1,
72-
3,
73-
selectedPage === 2 ? 2 : 1
95+
2,
96+
selectedPage === 2 ? 1 : 1
7497
);
7598
const lowerRange = createRange(
7699
selectedPage - lowerRangeLimit,
@@ -96,6 +119,16 @@ export const Pagination = ({
96119
1
97120
</PageItem>
98121
)}
122+
{selectedPage > (totalPages - displayMinimumPages ) && (
123+
<PageItem
124+
isClickeable
125+
ariaLabel={`Page 2 of ${totalPages}`}
126+
selectedPage={selectedPage === 2}
127+
onClick={e => handleChangePage(e, 2)}
128+
>
129+
2
130+
</PageItem>
131+
)}
99132
{renderedPages[0] > 2 && <PageItem ellipses>...</PageItem>}
100133
{renderedPages.map(page => (
101134
<PageItem
@@ -111,6 +144,16 @@ export const Pagination = ({
111144
{renderedPages[renderedPages.length - 1] < totalPages - 1 && (
112145
<PageItem ellipses>...</PageItem>
113146
)}
147+
{selectedPage < displayMinimumPages + 1 && (
148+
<PageItem
149+
isClickeable
150+
ariaLabel={`Page ${totalPages-1} of ${totalPages}`}
151+
selectedPage={selectedPage === totalPages - 1}
152+
onClick={e => handleChangePage(e, totalPages - 1)}
153+
>
154+
{totalPages - 1}
155+
</PageItem>
156+
)}
114157
{renderedPages[renderedPages.length - 1] !== totalPages && (
115158
<PageItem
116159
isClickeable

0 commit comments

Comments
 (0)