add fallback to last page
This commit is contained in:
@@ -98,6 +98,13 @@ describe('UmbContextConsumer', () => {
|
||||
manager.setTotalItems(100);
|
||||
expect(manager.getTotalPages()).to.equal(20);
|
||||
});
|
||||
|
||||
it('it fall backs to the last page number if the totalPages is less than the currentPage', () => {
|
||||
manager.setPageSize(5);
|
||||
manager.setTotalItems(10);
|
||||
manager.setCurrentPageNumber(5);
|
||||
expect(manager.getCurrentPageNumber()).to.equal(2);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Current Page', () => {
|
||||
|
||||
@@ -101,6 +101,12 @@ export class UmbPaginationManager extends EventTarget {
|
||||
#calculateTotalPages() {
|
||||
const totalPages = Math.ceil(this.#totalItems.getValue() / this.#pageSize.getValue());
|
||||
this.#totalPages.next(totalPages);
|
||||
|
||||
/* If we currently are on a page higher than the total pages. We need to reset the current page to the last page.
|
||||
This can happen if we have a filter that returns less items than the current page size. */
|
||||
if (this.getCurrentPageNumber() > totalPages) {
|
||||
this.setCurrentPageNumber(totalPages);
|
||||
}
|
||||
}
|
||||
|
||||
#calculateSkip() {
|
||||
|
||||
Reference in New Issue
Block a user