@@ -62,15 +62,16 @@ export const Pagination = ({
6262
6363 const renderPages = ( ) => {
6464 // Set the ranges to be shown in the pagination
65+ const displayMinimumPages = 2 ;
6566 const lowerRangeLimit = iff (
6667 selectedPage === totalPages - 1 ,
67- 2 ,
68- selectedPage === totalPages ? 3 : 1
68+ 1 ,
69+ selectedPage === totalPages ? 2 : 1
6970 ) ;
7071 const upperRangeLimit = iff (
7172 selectedPage === 1 ,
72- 3 ,
73- selectedPage === 2 ? 2 : 1
73+ 2 ,
74+ selectedPage === 2 ? 1 : 1
7475 ) ;
7576 const lowerRange = createRange (
7677 selectedPage - lowerRangeLimit ,
@@ -96,6 +97,16 @@ export const Pagination = ({
9697 1
9798 </ PageItem >
9899 ) }
100+ { selectedPage > ( totalPages - displayMinimumPages ) && (
101+ < PageItem
102+ isClickeable
103+ ariaLabel = { `Page 2 of ${ totalPages } ` }
104+ selectedPage = { selectedPage === 2 }
105+ onClick = { e => handleChangePage ( e , 2 ) }
106+ >
107+ 2
108+ </ PageItem >
109+ ) }
99110 { renderedPages [ 0 ] > 2 && < PageItem ellipses > ...</ PageItem > }
100111 { renderedPages . map ( page => (
101112 < PageItem
@@ -111,6 +122,16 @@ export const Pagination = ({
111122 { renderedPages [ renderedPages . length - 1 ] < totalPages - 1 && (
112123 < PageItem ellipses > ...</ PageItem >
113124 ) }
125+ { selectedPage < displayMinimumPages + 1 && (
126+ < PageItem
127+ isClickeable
128+ ariaLabel = { `Page ${ totalPages - 1 } of ${ totalPages } ` }
129+ selectedPage = { selectedPage === totalPages - 1 }
130+ onClick = { e => handleChangePage ( e , totalPages - 1 ) }
131+ >
132+ { totalPages - 1 }
133+ </ PageItem >
134+ ) }
114135 { renderedPages [ renderedPages . length - 1 ] !== totalPages && (
115136 < PageItem
116137 isClickeable
0 commit comments