- {
- sizePerPageList.length > 1 && !hideSizePerPage ?
- (
-
- ) : null
- }
+ { this.renderSizePerPageDropDown() }
{
showTotal ?
this.setTotal(
@@ -182,6 +198,7 @@ Pagination.propTypes = {
showTotal: PropTypes.bool,
pageListRenderer: PropTypes.func,
pageButtonRenderer: PropTypes.func,
+ sizePerPageRenderer: PropTypes.func,
paginationTotalRenderer: PropTypes.func,
sizePerPageOptionRenderer: PropTypes.func,
firstPageText: PropTypes.string,
@@ -206,6 +223,7 @@ Pagination.defaultProps = {
showTotal: Const.SHOW_TOTAL,
pageListRenderer: null,
pageButtonRenderer: null,
+ sizePerPageRenderer: null,
paginationTotalRenderer: Const.PAGINATION_TOTAL,
sizePerPageOptionRenderer: null,
firstPageText: Const.FIRST_PAGE_TEXT,
diff --git a/packages/react-bootstrap-table2-paginator/src/state-context.js b/packages/react-bootstrap-table2-paginator/src/state-context.js
index ff8d806..804fd65 100644
--- a/packages/react-bootstrap-table2-paginator/src/state-context.js
+++ b/packages/react-bootstrap-table2-paginator/src/state-context.js
@@ -78,6 +78,7 @@ class StateProvider extends React.Component {
showTotal: options.showTotal,
pageListRenderer: options.pageListRenderer,
pageButtonRenderer: options.pageButtonRenderer,
+ sizePerPageRenderer: options.sizePerPageRenderer,
paginationTotalRenderer: options.paginationTotalRenderer,
sizePerPageOptionRenderer: options.sizePerPageOptionRenderer,
firstPageText: options.firstPageText || Const.FIRST_PAGE_TEXT,
diff --git a/packages/react-bootstrap-table2-paginator/test/pagination.test.js b/packages/react-bootstrap-table2-paginator/test/pagination.test.js
index 8c1f9f8..54b3fdc 100644
--- a/packages/react-bootstrap-table2-paginator/test/pagination.test.js
+++ b/packages/react-bootstrap-table2-paginator/test/pagination.test.js
@@ -127,6 +127,24 @@ describe('Pagination', () => {
});
});
+ describe('when props.sizePerPageRenderer is defined', () => {
+ const sizePerPageRenderer = jest.fn().mockReturnValue(null);
+ beforeEach(() => {
+ sizePerPageRenderer.mockClear();
+ const props = createMockProps({ sizePerPageRenderer });
+ wrapper = shallow(
);
+ instance = wrapper.instance();
+ });
+
+ it('should not render SizePerPageDropDown', () => {
+ expect(wrapper.find(SizePerPageDropDown)).toHaveLength(0);
+ });
+
+ it('should call props.sizePerPageRenderer correctly', () => {
+ expect(sizePerPageRenderer).toHaveBeenCalledTimes(1);
+ });
+ });
+
describe('componentWillReceiveProps', () => {
describe('when next props.currSizePerPage is diff than current one', () => {
const nextProps = createMockProps({ currSizePerPage: 20 });