File tree 3 files changed +3
-3
lines changed
3 files changed +3
-3
lines changed Original file line number Diff line number Diff line change @@ -93,7 +93,7 @@ test('displays an out of range page', () => {
93
93
items : processed ,
94
94
pagesCount,
95
95
actualPageIndex,
96
- } = processItems ( items , { currentPageIndex : 3 } , { pagination : { } } ) ;
96
+ } = processItems ( items , { currentPageIndex : 3 } , { pagination : { allowPageOutOfRange : true } } ) ;
97
97
expect ( actualPageIndex ) . toEqual ( 3 ) ;
98
98
expect ( pagesCount ) . toEqual ( 2 ) ;
99
99
expect ( processed ) . toHaveLength ( 0 ) ;
Original file line number Diff line number Diff line change @@ -44,7 +44,7 @@ export interface UseCollectionOptions<T> {
44
44
freeTextFiltering ?: PropertyFilterFreeTextFiltering ;
45
45
} ;
46
46
sorting ?: { defaultState ?: SortingState < T > } ;
47
- pagination ?: { defaultPage ?: number ; pageSize ?: number } ;
47
+ pagination ?: { defaultPage ?: number ; pageSize ?: number ; allowPageOutOfRange ?: boolean } ;
48
48
selection ?: {
49
49
defaultSelectedItems ?: ReadonlyArray < T > ;
50
50
keepSelection ?: boolean ;
Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ export function createPageProps<T>(
16
16
const pageSize = pagination . pageSize ?? DEFAULT_PAGE_SIZE ;
17
17
const pagesCount = Math . ceil ( items . length / pageSize ) ;
18
18
let pageIndex = currentPageIndex ?? 1 ;
19
- if ( pageIndex < 1 || Number . isNaN ( pageIndex ) ) {
19
+ if ( pageIndex < 1 || ( pageIndex > pagesCount && ! pagination . allowPageOutOfRange ) || Number . isNaN ( pageIndex ) ) {
20
20
pageIndex = 1 ;
21
21
}
22
22
return { pageSize, pagesCount, pageIndex } ;
You can’t perform that action at this time.
0 commit comments