|
1 | 1 | import React, {PropTypes} from 'react';
|
2 | 2 | import CSSModules from 'react-css-modules';
|
3 |
| -import _ from 'lodash'; |
4 | 3 | import styles from './Pagination.scss';
|
5 |
| -import Select from '../Select'; |
| 4 | +import ReactPaginate from 'react-paginate'; |
6 | 5 |
|
7 |
| -const pageOptions = [ |
8 |
| - {value: 10, label: '10'}, |
9 |
| - {value: 30, label: '30'}, |
10 |
| - {value: 50, label: '50'}, |
11 |
| -]; |
| 6 | +export const Pagination = ({forcePage, pageCount, onPageChange}) => { |
| 7 | + const props = {...{ |
| 8 | + previousLabel: '', |
| 9 | + nextLabel: '', |
| 10 | + marginPagesDisplayed: 1, |
| 11 | + pageRangeDisplayed: 3, |
| 12 | + containerClassName: styles.pagination, |
| 13 | + pageClassName: styles.page, |
| 14 | + activeClassName: styles.page_active, |
| 15 | + breakClassName: styles.break, |
| 16 | + nextClassName: styles.next, |
| 17 | + previousClassName: styles.prev, |
| 18 | + disabledClassName: styles.disabled, |
| 19 | + }, |
| 20 | + forcePage, |
| 21 | + pageCount, |
| 22 | + onPageChange, |
| 23 | + }; |
12 | 24 |
|
13 |
| - |
14 |
| -export const Pagination = ({pages, activePageIndex}) => ( |
15 |
| - <div styleName="pagination"> |
16 |
| - <div styleName="show-per-page"> |
17 |
| - <span>Show</span> |
18 |
| - <Select |
19 |
| - styleName="pagination-select" |
20 |
| - clearable={false} |
21 |
| - value={10} |
22 |
| - options={pageOptions} |
23 |
| - {..._.pick({}, 'value', 'onChange')} |
24 |
| - /> |
25 |
| - <span>per page</span> |
26 |
| - </div> |
27 |
| - <ul styleName="pageControl"> |
28 |
| - <li styleName="previousPage"><</li> |
29 |
| - {_.range(pages).map((i) => ( |
30 |
| - <li styleName={(activePageIndex || 0) === i ? 'active' : ''} key={i}>{i + 1}</li> |
31 |
| - ))} |
32 |
| - <li>...</li> |
33 |
| - <li styleName="nextPage">></li> |
34 |
| - </ul> |
35 |
| - </div> |
36 |
| -); |
| 25 | + return (<ReactPaginate {...props} />); |
| 26 | +}; |
37 | 27 |
|
38 | 28 | Pagination.propTypes = {
|
39 |
| - pages: PropTypes.number.isRequired, |
40 |
| - activePageIndex: PropTypes.number, |
| 29 | + forcePage: PropTypes.number.isRequired, |
| 30 | + pageCount: PropTypes.number.isRequired, |
| 31 | + onPageChange: PropTypes.func.isRequired, |
41 | 32 | };
|
42 | 33 |
|
43 | 34 | export default CSSModules(Pagination, styles);
|
0 commit comments