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(
- ,
- { bootstrap4: false }
+ wrapper = shallow(
+
);
});
@@ -140,9 +130,8 @@ describe('SizePerPageDropDown', () => {
describe('when btnContextual prop is defined', () => {
const contextual = 'btn-warning';
beforeEach(() => {
- wrapper = shallowWithContext(
- ,
- { bootstrap4: false }
+ wrapper = shallow(
+
);
});
@@ -154,9 +143,8 @@ describe('SizePerPageDropDown', () => {
describe('when variation prop is defined', () => {
const variation = 'dropup';
beforeEach(() => {
- wrapper = shallowWithContext(
- ,
- { bootstrap4: false }
+ wrapper = shallow(
+
);
});
@@ -168,9 +156,8 @@ describe('SizePerPageDropDown', () => {
describe('when className prop is defined', () => {
const className = 'custom-class';
beforeEach(() => {
- wrapper = shallowWithContext(
- ,
- { bootstrap4: false }
+ wrapper = shallow(
+
);
});
@@ -183,9 +170,8 @@ describe('SizePerPageDropDown', () => {
const optionRenderer = jest.fn();
beforeEach(() => {
optionRenderer.mockReset();
- wrapper = shallowWithContext(
- ,
- { bootstrap4: false }
+ wrapper = shallow(
+
);
});