Passed
Push — master ( f602d8...7b3414 )
by Huu-Phat
02:55 queued 11s
created

modules/home/components/nav/NavItem.js   A

Complexity

Total Complexity 1
Complexity/F 0

Size

Lines of Code 54
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
eloc 34
mnd 1
bc 1
fnc 0
dl 0
loc 54
ccs 8
cts 8
cp 1
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
rs 10
1
import React from 'react'
2
import PropTypes from 'prop-types'
3
import styled from 'styled-components/macro'
4
import { Translate } from 'react-localize-redux'
5
6 3
const NavItem = ({ page, isSelected, setSelectedPage }) => {
7 31
  return isSelected ? (
8
    <SelectedContainer>
9
      <Translate id={page.name} />
10
    </SelectedContainer>
11
  ) : (
12
    <Container
13
      data-test-id="nav-link"
14
      href={page.url}
15
      onClick={() => {
16 1
        setSelectedPage(page.name)
17
      }}
18
    >
19
      <Translate id={page.name} />
20
    </Container>
21
  )
22
}
23
24 3
NavItem.propTypes = {
25
  page: PropTypes.shape({
26
    url: PropTypes.string,
27
    name: PropTypes.string
28
  }),
29
  isSelected: PropTypes.bool,
30
  setSelectedPage: PropTypes.func
31
}
32
33
export default NavItem
34
35
const Container = styled.a`
36 29
  line-height: ${props => props.theme.navContentMinHeight};
37 29
  font-size: ${props => props.theme.fontSizes.XL};
38
  transition: color 0.5s;
39
40
  &:hover {
41 29
    color: ${props => props.theme.colors.colorDarken};
42
    border: none;
43
  }
44
45
  @media screen and (max-width: 800px) {
46
    line-height: 2;
47
    border-bottom: none;
48
  }
49
`
50
const SelectedContainer = styled(Container)`
51 1
  color: ${props => props.theme.colors.colorDarken} !important;
52
  border: none;
53
`
54