import React from 'react'; import PropTypes from 'prop-types'; export default function VirtualizedRendererWrap(renderer) { function WrapperRenderer({ focusedOption, focusOption, key, option, selectValue, style, valueArray, }) { if (!option) { return null; } const className = ['VirtualizedSelectOption']; if (option === focusedOption) { className.push('VirtualizedSelectFocusedOption'); } if (option.disabled) { className.push('VirtualizedSelectDisabledOption'); } if (valueArray && valueArray.indexOf(option) >= 0) { className.push('VirtualizedSelectSelectedOption'); } if (option.className) { className.push(option.className); } const events = option.disabled ? {} : { onClick: () => selectValue(option), onMouseEnter: () => focusOption(option), }; return (
{renderer(option)}
); } WrapperRenderer.propTypes = { focusedOption: PropTypes.object.isRequired, focusOption: PropTypes.func.isRequired, key: PropTypes.string, option: PropTypes.object, selectValue: PropTypes.func.isRequired, style: PropTypes.object, valueArray: PropTypes.array, }; return WrapperRenderer; }