From 6e753bb95594b3a2de52bd6d5b1263591d266680 Mon Sep 17 00:00:00 2001 From: sean Date: Wed, 6 Jun 2018 15:11:54 +0200 Subject: [PATCH] Prevent remote pagination from setting the page incorrectly --- packages/react-bootstrap-table2-paginator/src/wrapper.js | 7 +++++-- .../react-bootstrap-table2-paginator/test/wrapper.test.js | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/react-bootstrap-table2-paginator/src/wrapper.js b/packages/react-bootstrap-table2-paginator/src/wrapper.js index b220b58..ff88c59 100644 --- a/packages/react-bootstrap-table2-paginator/src/wrapper.js +++ b/packages/react-bootstrap-table2-paginator/src/wrapper.js @@ -54,11 +54,14 @@ export default (Base, { if (typeof page !== 'undefined' && currPage !== page) { // user defined page currPage = page; needNewState = true; - } else if (nextProps.isDataChanged) { // user didn't defined page but data change - currPage = typeof pageStartIndex !== 'undefined' ? pageStartIndex : Const.PAGE_START_INDEX; + } else if (nextProps.isDataChanged) { needNewState = true; } + if (typeof currPage === 'undefined') { + currPage = typeof pageStartIndex !== 'undefined' ? pageStartIndex : Const.PAGE_START_INDEX; + } + if (typeof sizePerPage !== 'undefined') { currSizePerPage = sizePerPage; needNewState = true; diff --git a/packages/react-bootstrap-table2-paginator/test/wrapper.test.js b/packages/react-bootstrap-table2-paginator/test/wrapper.test.js index b578ec1..feea75c 100644 --- a/packages/react-bootstrap-table2-paginator/test/wrapper.test.js +++ b/packages/react-bootstrap-table2-paginator/test/wrapper.test.js @@ -177,10 +177,11 @@ describe('Wrapper', () => { }); }); - describe('when nextProps.isDataChanged is true and options.pageStartIndex is existing', () => { + describe('when nextProps.isDataChanged is true, currPage is undefined and options.pageStartIndex exists', () => { beforeEach(() => { nextProps.isDataChanged = true; nextProps.pagination.options.pageStartIndex = 0; + instance.state.currPage = undefined; instance.componentWillReceiveProps(nextProps); });