Passed
Push — main ( 017db1...f1f3c3 )
by Alejandro
42:56 queued 39:55
created

src/utils/PaginationDropdown.tsx

Complexity

Total Complexity 0
Complexity/F 0

Size

Lines of Code 30
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 25%

Importance

Changes 0
Metric Value
wmc 0
eloc 25
mnd 0
bc 0
fnc 0
dl 0
loc 30
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
ccs 1
cts 4
cp 0.25
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