All files / src/lib EasyDropdown.jsx

100% Statements 6/6
100% Branches 2/2
100% Functions 2/2
100% Lines 6/6
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          2x 7x   7x                 14x               2x                       2x          
import React from 'react';
import PropTypes from 'prop-types';
import './EasyEdit.css';
import Globals from './globals';
 
const EasyDropdown = (props) => {
  const {name, options, value, onChange, placeholder, disabled} = props;
 
  return (
      <select
          value={value || ''}
          onChange={onChange}
          name={name}
          disabled={disabled}
      >
        <option key="" value="" disabled="disabled">{placeholder}</option>
        {options.map(option => (
            <option value={option.value} key={option.value}>
              {option.label}
            </option>
        ))}
      </select>
  );
};
 
EasyDropdown.propTypes = {
  name: PropTypes.string,
  options: PropTypes.array.isRequired,
  onChange: PropTypes.func,
  value: PropTypes.oneOfType([
    PropTypes.string,
    PropTypes.number
  ]),
  placeholder: PropTypes.string,
  disabled: PropTypes.bool
};
 
EasyDropdown.defaultProps ={
  placeholder: Globals.DEFAULT_SELECT_PLACEHOLDER
};
 
export default EasyDropdown;