react-bootstrap-table2/packages/react-bootstrap-table2-example/examples/pagination/pagination-hooks.js
Allen 3c88364efe
fix #135
* init react-bootstrap-table2-paginator

* add react-bootstrap-table2-paginator as dependency

* no container

* handle for wrapping pagination component

* add style for paginator addon

* add story for pagination

* implement pagination list

* constants maintain in core package

* implement sizePerPage dropdown

* fix unalign for sizePerPage dropdown and pagination list

* allow to return array from render(react@16 new feature)

* implement pagination hooks

* add story for pagination hooks

* fixed dependencies version and upgrade enzyme

* Shallow renderer no longer calls componentDidMount because DOM refs are not available

* classNames -> className for TextEditor

* add tests for pagination

* fix react-bootstrap-table can't be resolved in other modules

* implement custom page button title

* add test for page button title

* fix bug when sizePerPageList is an object array

* add story for custom pagination

* remove necessary component extends

* move pagination options to react-bootstrap-table2-paginator

* refine pagination stories

* implement hideSizePerPage

* implement hidePageListOnlyOnePage

* fix multiple same key warning

* remove help

* support start from react@^16
2017-11-19 17:42:20 +08:00

83 lines
1.9 KiB
JavaScript

/* eslint react/prefer-stateless-function: 0 */
/* eslint no-console: 0 */
import React from 'react';
import BootstrapTable from 'react-bootstrap-table2';
import paginator from 'react-bootstrap-table2-paginator';
import Code from 'components/common/code-block';
import { productsGenerator } from 'utils/common';
const products = productsGenerator(87);
const columns = [{
dataField: 'id',
text: 'Product ID'
}, {
dataField: 'name',
text: 'Product Name'
}, {
dataField: 'price',
text: 'Product Price'
}];
const sourceCode = `\
import BootstrapTable from 'react-bootstrap-table2';
import paginator from 'react-bootstrap-table2-paginator';
// ...
const columns = [{
dataField: 'id',
text: 'Product ID'
}, {
dataField: 'name',
text: 'Product Name'
}, {
dataField: 'price',
text: 'Product Price'
}];
const options = {
onSizePerPageChange: (sizePerPage, page) => {
console.log('Size per page change!!!');
console.log('Newest size per page:' + sizePerPage);
console.log('Newest page:' + page);
},
onPageChange: (page, sizePerPage) => {
console.log('Page change!!!');
console.log('Newest size per page:' + sizePerPage);
console.log('Newest page:' + page);
}
};
<BootstrapTable
keyField="id"
data={ products }
columns={ columns }
pagination={ paginator(options) }
/>
`;
const options = {
onSizePerPageChange: (sizePerPage, page) => {
console.log('Size per page change!!!');
console.log(`Newest size per page: ${sizePerPage}`);
console.log(`Newest page: ${page}`);
},
onPageChange: (page, sizePerPage) => {
console.log('Page change!!!');
console.log(`Newest size per page: ${sizePerPage}`);
console.log(`Newest page: ${page}`);
}
};
export default () => (
<div>
<BootstrapTable
keyField="id"
data={ products }
columns={ columns }
pagination={ paginator(options) }
/>
<Code>{ sourceCode }</Code>
</div>
);