From 8de5d52c9939e27e8f2c487f158fb5c7854c7814 Mon Sep 17 00:00:00 2001 From: zoomdong <1344492820@qq.com> Date: Fri, 29 May 2020 14:44:51 +0800 Subject: [PATCH 1/4] fix: change pageSize not call onChange --- src/Pagination.jsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Pagination.jsx b/src/Pagination.jsx index 782b741d..6706ef64 100644 --- a/src/Pagination.jsx +++ b/src/Pagination.jsx @@ -222,6 +222,11 @@ class Pagination extends React.Component { }); } } + + if ('onChange' in this.props) { + this.props.onChange(current, size) + } + this.props.onShowSizeChange(current, size); }; From 43f42e118e7074680815a15bd181291bca1c57e9 Mon Sep 17 00:00:00 2001 From: zoomdong <1344492820@qq.com> Date: Wed, 3 Jun 2020 16:29:28 +0800 Subject: [PATCH 2/4] feat: adjust onShowSizeChange --- src/Pagination.jsx | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/Pagination.jsx b/src/Pagination.jsx index 6706ef64..cce4d2e2 100644 --- a/src/Pagination.jsx +++ b/src/Pagination.jsx @@ -133,7 +133,7 @@ class Pagination extends React.Component { * @param {React.ReactNode | React.ComponentType} icon received icon. * @returns {React.ReactNode} */ - getItemIcon = icon => { + getItemIcon = (icon) => { const { prefixCls } = this.props; // eslint-disable-next-line jsx-a11y/anchor-has-content let iconNode = icon || ; @@ -161,11 +161,11 @@ class Pagination extends React.Component { return value; } - savePaginationNode = node => { + savePaginationNode = (node) => { this.paginationNode = node; }; - isValid = page => isInteger(page) && page !== this.state.current; + isValid = (page) => isInteger(page) && page !== this.state.current; shouldDisplayQuickJumper = () => { const { showQuickJumper, pageSize, total } = this.props; @@ -175,13 +175,13 @@ class Pagination extends React.Component { return showQuickJumper; }; - handleKeyDown = e => { + handleKeyDown = (e) => { if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) { e.preventDefault(); } }; - handleKeyUp = e => { + handleKeyUp = (e) => { const value = this.getValidValue(e); const { currentInputValue } = this.state; if (value !== currentInputValue) { @@ -198,7 +198,7 @@ class Pagination extends React.Component { } }; - changePageSize = size => { + changePageSize = (size) => { let { current } = this.state; const newCurrent = calculatePage(size, this.state, this.props); current = current > newCurrent ? newCurrent : current; @@ -223,14 +223,14 @@ class Pagination extends React.Component { } } - if ('onChange' in this.props) { - this.props.onChange(current, size) + if ('onChange' in this.props && this.props.onChange) { + this.props.onChange(current, size); } this.props.onShowSizeChange(current, size); }; - handleChange = p => { + handleChange = (p) => { const { disabled } = this.props; let page = p; @@ -283,13 +283,13 @@ class Pagination extends React.Component { hasNext = () => this.state.current < calculatePage(undefined, this.state, this.props); - getShowSizeChanger() { - const { showSizeChanger, total, totalBoundaryShowSizeChanger } = this.props; - if (typeof showSizeChanger !== 'undefined') { - return showSizeChanger; - } - return total > totalBoundaryShowSizeChanger; - } + getShowSizeChanger() { + const { showSizeChanger, total, totalBoundaryShowSizeChanger } = this.props; + if (typeof showSizeChanger !== 'undefined') { + return showSizeChanger; + } + return total > totalBoundaryShowSizeChanger; + } runIfEnter = (event, callback, ...restParams) => { if (event.key === 'Enter' || event.charCode === 13) { @@ -297,23 +297,23 @@ class Pagination extends React.Component { } }; - runIfEnterPrev = e => { + runIfEnterPrev = (e) => { this.runIfEnter(e, this.prev); }; - runIfEnterNext = e => { + runIfEnterNext = (e) => { this.runIfEnter(e, this.next); }; - runIfEnterJumpPrev = e => { + runIfEnterJumpPrev = (e) => { this.runIfEnter(e, this.jumpPrev); }; - runIfEnterJumpNext = e => { + runIfEnterJumpNext = (e) => { this.runIfEnter(e, this.jumpNext); }; - handleGoTO = e => { + handleGoTO = (e) => { if (e.keyCode === KEYCODE.ENTER || e.type === 'click') { this.handleChange(this.state.currentInputValue); } From 6da9e7fb35a92085480ed49fd5f7b1d7951db261 Mon Sep 17 00:00:00 2001 From: zoomdong <1344492820@qq.com> Date: Wed, 3 Jun 2020 16:39:37 +0800 Subject: [PATCH 3/4] adjust perttier From fa0a7d3f90c0ea4f4651e27b5b70246e60292c6a Mon Sep 17 00:00:00 2001 From: zoomdong <1344492820@qq.com> Date: Fri, 12 Jun 2020 00:34:36 +0800 Subject: [PATCH 4/4] feat: add test case --- tests/sizer.test.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/tests/sizer.test.js b/tests/sizer.test.js index 1f2411a6..e8417c8f 100644 --- a/tests/sizer.test.js +++ b/tests/sizer.test.js @@ -40,6 +40,28 @@ describe('Pagination with sizer', () => { />, ); wrapper.find(Select).find('input').simulate('mousedown'); - expect(wrapper.find(Select).find('.rc-select-item').at(2).text()).toBe('45 条/页✓'); + expect(wrapper.find(Select).find('.rc-select-item').at(2).text()).toBe( + '45 条/页✓', + ); + }); + + it('should onChange called when pageSize change', () => { + const onChange = jest.fn(); + const wrapper = mount( + , + ); + wrapper.find(Select).find('input').simulate('mousedown'); + expect(wrapper.find(Select).find('.rc-select-item').at(2).text()).toBe( + '50 条/页', + ); + const pageSize1 = wrapper.find(Select).find('.rc-select-item').at(0); + pageSize1.simulate('click'); + expect(onChange).toBeCalled(); + expect(onChange).toHaveBeenLastCalledWith(1, 10); }); });