Total Complexity | 0 |
Complexity/F | 0 |
Lines of Code | 34 |
Function Count | 0 |
Duplicated Lines | 0 |
Ratio | 0 % |
Coverage | 50% |
Changes | 0 |
1 | import React from 'react'; |
||
2 | import { DropdownItem, DropdownMenu, DropdownToggle, UncontrolledDropdown } from 'reactstrap'; |
||
3 | import * as PropTypes from 'prop-types'; |
||
4 | |||
5 | 2 | const propTypes = { |
|
6 | toggleClassName: PropTypes.string, |
||
7 | ranges: PropTypes.arrayOf(PropTypes.number).isRequired, |
||
8 | value: PropTypes.number.isRequired, |
||
9 | setValue: PropTypes.func.isRequired, |
||
10 | }; |
||
11 | |||
12 | 2 | const PaginationDropdown = ({ toggleClassName, ranges, value, setValue }) => ( |
|
13 | <UncontrolledDropdown> |
||
14 | <DropdownToggle caret color="link" className={toggleClassName}> |
||
15 | Paginate |
||
16 | </DropdownToggle> |
||
17 | <DropdownMenu right> |
||
18 | {ranges.map((itemsPerPage) => ( |
||
19 | <DropdownItem key={itemsPerPage} active={itemsPerPage === value} onClick={() => setValue(itemsPerPage)}> |
||
20 | <b>{itemsPerPage}</b> items per page |
||
21 | </DropdownItem> |
||
22 | ))} |
||
23 | <DropdownItem divider /> |
||
24 | <DropdownItem disabled={value === Infinity} onClick={() => setValue(Infinity)}> |
||
25 | <i>Clear pagination</i> |
||
26 | </DropdownItem> |
||
27 | </DropdownMenu> |
||
28 | </UncontrolledDropdown> |
||
29 | ); |
||
30 | |||
31 | 2 | PaginationDropdown.propTypes = propTypes; |
|
32 | |||
33 | export default PaginationDropdown; |
||
34 |