From 5b10f8978b4250ab68891185eabbd5d98469f3ee Mon Sep 17 00:00:00 2001 From: Akshay Anand Date: Sun, 28 Mar 2021 14:09:52 -0400 Subject: [PATCH] fixes #833 - only emit per-page event on per page change --- src/components/Table.vue | 12 +++++++----- src/components/pagination/VgtPagination.vue | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/components/Table.vue b/src/components/Table.vue index d7e70f83..41135a38 100644 --- a/src/components/Table.vue +++ b/src/components/Table.vue @@ -1103,11 +1103,13 @@ export default { pageChanged(pagination) { this.currentPage = pagination.currentPage; - const pageChangedEvent = this.pageChangedEvent(); - pageChangedEvent.prevPage = pagination.prevPage; - this.$emit('on-page-change', pageChangedEvent); - if (this.mode === 'remote') { - this.$emit('update:isLoading', true); + if (!pagination.noEmit) { + const pageChangedEvent = this.pageChangedEvent(); + pageChangedEvent.prevPage = pagination.prevPage; + this.$emit('on-page-change', pageChangedEvent); + if (this.mode === 'remote') { + this.$emit('update:isLoading', true); + } } }, diff --git a/src/components/pagination/VgtPagination.vue b/src/components/pagination/VgtPagination.vue index 1661f663..336147c6 100644 --- a/src/components/pagination/VgtPagination.vue +++ b/src/components/pagination/VgtPagination.vue @@ -144,7 +144,7 @@ export default { if (pageNumber > 0 && this.total > this.currentPerPage * (pageNumber - 1)) { this.prevPage = this.currentPage; this.currentPage = pageNumber; - if (emit) this.pageChanged(); + this.pageChanged(emit); } }, @@ -167,11 +167,13 @@ export default { }, // Indicate page changing - pageChanged() { - this.$emit('page-changed', { + pageChanged(emit = true) { + const payload = { currentPage: this.currentPage, prevPage: this.prevPage, - }); + }; + if (!emit) payload.noEmit = true; + this.$emit('page-changed', payload); }, // Indicate per page changing @@ -181,7 +183,7 @@ export default { //* only emit if this isn't first initialization this.$emit('per-page-changed', { currentPerPage: this.currentPerPage }); } - this.changePage(1, true); + this.changePage(1, false); }, // Handle per page changing