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 44          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 {options, value, onChange, placeholder, attributes} = props;
 
  return (
      <div className="easy-edit-component-wrapper">
        <select
            value={value || ''}
            onChange={onChange}
            {...attributes}
        >
          <option key="" value="" disabled="disabled">{placeholder}</option>
          {options.map(option => (
              <option value={option.value} key={option.value}>
                {option.label}
              </option>
          ))}
        </select>
      </div>
  );
};
 
EasyDropdown.propTypes = {
  options: PropTypes.array.isRequired,
  onChange: PropTypes.func,
  value: PropTypes.oneOfType([
    PropTypes.string,
    PropTypes.number
  ]),
  placeholder: PropTypes.string,
  attributes: PropTypes.object
};
 
EasyDropdown.defaultProps = {
  attributes: {},
  placeholder: Globals.DEFAULT_SELECT_PLACEHOLDER
};
 
export default EasyDropdown;