add fallback to last page

This commit is contained in:
Mads Rasmussen
2023-11-06 11:18:44 +01:00
parent deb39a55e5
commit 92e5bfeaa3
2 changed files with 13 additions and 0 deletions

View File

@@ -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', () => {

View File

@@ -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() {