import PropTypes from 'prop-types' import React from 'react' import {CSSTransition, TransitionGroup} from 'react-transition-group' import {IconPlus} from '../../icons' function Result({ list, selected, select, add }) { return ( {list.map((item, index) => { return (
  • { e.preventDefault() if (item.valid) { add(item) } }} onMouseEnter={() => { if (item.valid) { select(index) } }} onMouseLeave={() => { if (item.valid) { select(-1) } }} >
    {item.name}
    {item.valid && ( {item.description} )} {!item.valid && ( {item.message} )}
  • ) })}
    ) // } } Result.defaultProps = { list: [], selected: null, } Result.propTypes = { list: PropTypes.arrayOf( PropTypes.shape({ id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, group: PropTypes.string.isRequired, description: PropTypes.string.isRequired, versionRange: PropTypes.string, versionRequirement: PropTypes.string, }) ), add: PropTypes.func.isRequired, selected: PropTypes.number, select: PropTypes.func.isRequired, } export default Result