# All files / react/Checkbox index.jsx

100% Statements 5/5
100% Branches 2/2
100% Functions 1/1
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44

    1x
    3x
    3x

    1x

    1x

     import React from 'react'
    import cx from 'classnames'
    import PropTypes from 'prop-types'
    import styles from './styles.styl'

    const Checkbox = props => {
      const { className, value, name, label, error, mixed, ...restProps } = props
      return (
        <label
          className={cx(
            styles['c-input-checkbox'],
            {
              [styles['is-error']]: error
            },
            className
          )}
          aria-checked={mixed ? 'mixed' : ''}
        >
          <input type="checkbox" value={value} name={name} {...restProps} />
          <span>{label}</span>
        </label>
      )
    }

    Checkbox.propTypes = {
      className: PropTypes.string,
      value: PropTypes.string,
      name: PropTypes.string,
      error: PropTypes.bool,
      mixed: PropTypes.bool,
      label: PropTypes.string
    }

    Checkbox.defaultProps = {
      className: '',
      value: '',
      name: '',
      error: false,
      mixed: false,
      label: ''
    }

    export default Checkbox