add fallback to last page
This commit is contained in:
@@ -98,6 +98,13 @@ describe('UmbContextConsumer', () => {
|
|||||||
manager.setTotalItems(100);
|
manager.setTotalItems(100);
|
||||||
expect(manager.getTotalPages()).to.equal(20);
|
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', () => {
|
describe('Current Page', () => {
|
||||||
|
|||||||
@@ -101,6 +101,12 @@ export class UmbPaginationManager extends EventTarget {
|
|||||||
#calculateTotalPages() {
|
#calculateTotalPages() {
|
||||||
const totalPages = Math.ceil(this.#totalItems.getValue() / this.#pageSize.getValue());
|
const totalPages = Math.ceil(this.#totalItems.getValue() / this.#pageSize.getValue());
|
||||||
this.#totalPages.next(totalPages);
|
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() {
|
#calculateSkip() {
|
||||||
|
|||||||
Reference in New Issue
Block a user