UNPKG

react-select

Version:

A Select control built with and for ReactJS

59 lines (49 loc) 1.59 kB
'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _react = require('react'); var _react2 = _interopRequireDefault(_react); function menuRenderer(_ref) { var focusedOption = _ref.focusedOption; var instancePrefix = _ref.instancePrefix; var labelKey = _ref.labelKey; var onFocus = _ref.onFocus; var onSelect = _ref.onSelect; var optionClassName = _ref.optionClassName; var optionComponent = _ref.optionComponent; var optionRenderer = _ref.optionRenderer; var options = _ref.options; var valueArray = _ref.valueArray; var valueKey = _ref.valueKey; var Option = optionComponent; return options.map(function (option, i) { var isSelected = valueArray && valueArray.indexOf(option) > -1; var isFocused = option === focusedOption; var optionRef = isFocused ? 'focused' : null; var optionClass = (0, _classnames2['default'])(optionClassName, { 'Select-option': true, 'is-selected': isSelected, 'is-focused': isFocused, 'is-disabled': option.disabled }); return _react2['default'].createElement( Option, { className: optionClass, instancePrefix: instancePrefix, isDisabled: option.disabled, isFocused: isFocused, isSelected: isSelected, key: 'option-' + i + '-' + option[valueKey], onFocus: onFocus, onSelect: onSelect, option: option, optionIndex: i, ref: optionRef }, optionRenderer(option, i) ); }); } module.exports = menuRenderer;