diff --git a/packages/react-bootstrap-table2-example/examples/pagination/custom-pagination.js b/packages/react-bootstrap-table2-example/examples/pagination/custom-pagination.js index f45690497..078f75934 100644 --- a/packages/react-bootstrap-table2-example/examples/pagination/custom-pagination.js +++ b/packages/react-bootstrap-table2-example/examples/pagination/custom-pagination.js @@ -47,6 +47,7 @@ const options = { lastPageTitle: 'Last page', showTotal: true, paginationTotalRenderer: customTotal, + disablePageTitle: true, sizePerPageList: [{ text: '5', value: 5 }, { @@ -82,6 +83,7 @@ const options = { lastPageTitle: 'Last page', showTotal: true, paginationTotalRenderer: customTotal, + disablePageTitle: true, sizePerPageList: [{ text: '5', value: 5 }, { diff --git a/packages/react-bootstrap-table2-example/examples/pagination/standalone-size-per-page.js b/packages/react-bootstrap-table2-example/examples/pagination/standalone-size-per-page.js index 40526a212..477c0a204 100644 --- a/packages/react-bootstrap-table2-example/examples/pagination/standalone-size-per-page.js +++ b/packages/react-bootstrap-table2-example/examples/pagination/standalone-size-per-page.js @@ -74,6 +74,7 @@ export default class StandaloneSizePerPage extends React.Component { return (
{ @@ -84,7 +85,7 @@ export default class StandaloneSizePerPage extends React.Component {
{ if (!this.props.pagination.options.custom) { const { - bootstrap4, page: currPage, sizePerPage: currSizePerPage, dataSize, ...rest } = this.getPaginationProps(); return ( - - - + ); } return null; diff --git a/packages/react-bootstrap-table2-paginator/src/page-resolver.js b/packages/react-bootstrap-table2-paginator/src/page-resolver.js index 9afbc53eb..cb02c880e 100644 --- a/packages/react-bootstrap-table2-paginator/src/page-resolver.js +++ b/packages/react-bootstrap-table2-paginator/src/page-resolver.js @@ -107,7 +107,7 @@ export default ExtendBase => return pages; } - calculatePageStatus(pages = [], lastPage) { + calculatePageStatus(pages = [], lastPage, disablePageTitle = false) { const { currPage, pageStartIndex, @@ -146,7 +146,11 @@ export default ExtendBase => title = `${page}`; } - return { page, active, disabled, title }; + const pageResult = { page, active, disabled }; + if (!disablePageTitle) { + pageResult.title = title; + } + return pageResult; }); } diff --git a/packages/react-bootstrap-table2-paginator/src/pagination-list-adapter.js b/packages/react-bootstrap-table2-paginator/src/pagination-list-adapter.js index 33c5115b5..fb9c642b4 100644 --- a/packages/react-bootstrap-table2-paginator/src/pagination-list-adapter.js +++ b/packages/react-bootstrap-table2-paginator/src/pagination-list-adapter.js @@ -7,8 +7,22 @@ import PaginationList from './pagination-list'; const paginationListAdapter = WrappedComponent => class PaginationListAdapter extends pageResolver(Component) { render() { - const { lastPage, totalPages, pageButtonRenderer, onPageChange } = this.props; - const pages = this.calculatePageStatus(this.calculatePages(totalPages, lastPage), lastPage); + const { + lastPage, + totalPages, + pageButtonRenderer, + onPageChange, + disablePageTitle, + hidePageListOnlyOnePage + } = this.props; + const pages = this.calculatePageStatus( + this.calculatePages(totalPages, lastPage), + lastPage, + disablePageTitle + ); + if (totalPages === 1 && hidePageListOnlyOnePage) { + return null; + } return (
render() { const { tableId, + bootstrap4, sizePerPageList, currSizePerPage, hideSizePerPage, @@ -58,6 +59,7 @@ const sizePerPageDropdownAdapter = WrappedComponent => onBlur={ this.closeDropDown } open={ open } tableId={ tableId } + bootstrap4={ bootstrap4 } /> ); } diff --git a/packages/react-bootstrap-table2-paginator/src/size-per-page-dropdown.js b/packages/react-bootstrap-table2-paginator/src/size-per-page-dropdown.js index df3f278c6..779f2415c 100644 --- a/packages/react-bootstrap-table2-paginator/src/size-per-page-dropdown.js +++ b/packages/react-bootstrap-table2-paginator/src/size-per-page-dropdown.js @@ -1,7 +1,6 @@ import React from 'react'; import cs from 'classnames'; import PropTypes from 'prop-types'; -import { BootstrapContext } from './bootstrap'; import SizePerPageOption from './size-per-page-option'; const sizePerPageDefaultClass = 'react-bs-table-sizePerPage-dropdown'; @@ -16,6 +15,7 @@ const SizePerPageDropDown = (props) => { options, className, variation, + bootstrap4, btnContextual, optionRenderer, currSizePerPage, @@ -34,60 +34,54 @@ const SizePerPageDropDown = (props) => { const id = tableId ? `${tableId}-pageDropDown` : 'pageDropDown'; return ( - - { - ({ bootstrap4 }) => ( - - -
    - { - options.map((option) => { - if (optionRenderer) { - return optionRenderer({ - ...option, - onSizePerPageChange - }); - } - return ( - - ); - }) - } -
-
- ) - } -
+ + +
    + { + options.map((option) => { + if (optionRenderer) { + return optionRenderer({ + ...option, + onSizePerPageChange + }); + } + return ( + + ); + }) + } +
+
); }; @@ -97,6 +91,7 @@ SizePerPageDropDown.propTypes = { onClick: PropTypes.func.isRequired, onBlur: PropTypes.func.isRequired, onSizePerPageChange: PropTypes.func.isRequired, + bootstrap4: PropTypes.bool, tableId: PropTypes.string, open: PropTypes.bool, hidden: PropTypes.bool, @@ -112,6 +107,7 @@ SizePerPageDropDown.defaultProps = { variation: 'dropdown', className: '', optionRenderer: null, + bootstrap4: false, tableId: null }; diff --git a/packages/react-bootstrap-table2-paginator/test/size-per-page-dropdown.test.js b/packages/react-bootstrap-table2-paginator/test/size-per-page-dropdown.test.js index 8e1b964b4..d78fe61da 100644 --- a/packages/react-bootstrap-table2-paginator/test/size-per-page-dropdown.test.js +++ b/packages/react-bootstrap-table2-paginator/test/size-per-page-dropdown.test.js @@ -5,12 +5,6 @@ import { shallow } from 'enzyme'; import SizePerPageOption from '../src/size-per-page-option'; import SizePerPageDropDown from '../src/size-per-page-dropdown'; -const shallowWithContext = (elem, context = {}) => { - const wrapper = shallow(elem); - const Children = wrapper.props().children(context); - return shallow(Children); -}; - describe('SizePerPageDropDown', () => { let wrapper; const currSizePerPage = '25'; @@ -34,9 +28,8 @@ describe('SizePerPageDropDown', () => { describe('default SizePerPageDropDown component', () => { beforeEach(() => { - wrapper = shallowWithContext( - , - { bootstrap4: false } + wrapper = shallow( + ); }); @@ -71,9 +64,8 @@ describe('SizePerPageDropDown', () => { describe('when bootstrap4 context is true', () => { beforeEach(() => { - wrapper = shallowWithContext( - , - { bootstrap4: true } + wrapper = shallow( + ); }); @@ -112,9 +104,8 @@ describe('SizePerPageDropDown', () => { describe('when open prop is true', () => { beforeEach(() => { - wrapper = shallowWithContext( - , - { bootstrap4: false } + wrapper = shallow( + ); }); @@ -126,9 +117,8 @@ describe('SizePerPageDropDown', () => { describe('when hidden prop is true', () => { beforeEach(() => { - wrapper = shallowWithContext( -