Skip to content

Commit 98e17ca

Browse files
authored
fix(b-pagination): properly calculate number of links with hide-ellipsis option (closes #5514) (#5678)
* fix(b-pagination): properly calculate number of links with `hide-ellipsis` option * Update pagination.spec.js
1 parent 31c06b5 commit 98e17ca

File tree

2 files changed

+28
-7
lines changed

2 files changed

+28
-7
lines changed

src/components/pagination/pagination.spec.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,25 @@ describe('pagination', () => {
374374
wrapper.destroy()
375375
})
376376

377+
it('has correct number of links when `hide-ellipsis` is enabled', async () => {
378+
const wrapper = mount(BPagination, {
379+
propsData: {
380+
hideEllipsis: true,
381+
totalRows: 100,
382+
perPage: 10,
383+
value: 1
384+
}
385+
})
386+
expect(wrapper.element.tagName).toBe('UL')
387+
expect(wrapper.findAll('li').length).toBe(9)
388+
389+
await wrapper.setProps({ value: 5 })
390+
await waitNT(wrapper.vm)
391+
expect(wrapper.findAll('li').length).toBe(9)
392+
393+
wrapper.destroy()
394+
})
395+
377396
it('has attribute aria-controls on page links when prop aria-controls is set', async () => {
378397
const wrapper = mount(BPagination, {
379398
propsData: {

src/mixins/pagination.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -223,12 +223,14 @@ export default {
223223
},
224224
paginationParams() {
225225
// Determine if we should show the the ellipsis
226-
const limit = this.localLimit
227-
const numberOfPages = this.localNumberOfPages
228-
const currentPage = this.computedCurrentPage
229-
const hideEllipsis = this.hideEllipsis
230-
const firstNumber = this.firstNumber
231-
const lastNumber = this.lastNumber
226+
const {
227+
localLimit: limit,
228+
localNumberOfPages: numberOfPages,
229+
computedCurrentPage: currentPage,
230+
hideEllipsis,
231+
firstNumber,
232+
lastNumber
233+
} = this
232234
let showFirstDots = false
233235
let showLastDots = false
234236
let numberOfLinks = limit
@@ -252,7 +254,7 @@ export default {
252254
} else {
253255
// We are somewhere in the middle of the page list
254256
if (limit > ELLIPSIS_THRESHOLD) {
255-
numberOfLinks = limit - 2
257+
numberOfLinks = limit - (hideEllipsis ? 0 : 2)
256258
showFirstDots = !!(!hideEllipsis || firstNumber)
257259
showLastDots = !!(!hideEllipsis || lastNumber)
258260
}

0 commit comments

Comments
 (0)