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