From 0fb061a3d0dd727842bc5e7158be4118f5da502e Mon Sep 17 00:00:00 2001 From: Mike O'Donnell Date: Wed, 19 Feb 2020 18:38:18 -0700 Subject: [PATCH] fix bug where ellipses would unnecessarily display when third to last page is selected (#2015) --- .../src/lib/pagination/pagination.service.spec.ts | 12 ++++++++++++ libs/core/src/lib/pagination/pagination.service.ts | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libs/core/src/lib/pagination/pagination.service.spec.ts b/libs/core/src/lib/pagination/pagination.service.spec.ts index d38bd4277fe..a33905f132f 100644 --- a/libs/core/src/lib/pagination/pagination.service.spec.ts +++ b/libs/core/src/lib/pagination/pagination.service.spec.ts @@ -86,4 +86,16 @@ describe('PaginationService', () => { expect(pages[1]).toEqual(service.MORE); expect(pages[5]).toEqual(service.MORE); }); + + it('should not have two dots sections if second to last page is currentPage', () => { + const pagination: Pagination = { + totalItems: 150, + itemsPerPage: 2, + currentPage: 73 + }; + const pages = service.getPages(pagination); + expect(pages[1]).toEqual(service.MORE); + expect(pages[5]).not.toEqual(service.MORE); + expect(pages[5]).toEqual(75); + }) }); diff --git a/libs/core/src/lib/pagination/pagination.service.ts b/libs/core/src/lib/pagination/pagination.service.ts index f7b3af77090..41850503e8b 100644 --- a/libs/core/src/lib/pagination/pagination.service.ts +++ b/libs/core/src/lib/pagination/pagination.service.ts @@ -58,7 +58,7 @@ export class PaginationService { for (let i = pagination.currentPage - buffer; i <= pagination.currentPage + buffer; i++) { pages.push(i); } - if (totalPages !== DISPLAY_NUM_PAGES + 1) { + if (totalPages !== DISPLAY_NUM_PAGES + 1 && pagination.currentPage !== totalPages - 2) { pages.push(this.MORE); } pages.push(totalPages);