react-select-v1
Version:
A Select control built with and for ReactJS
96 lines (82 loc) • 2.75 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var menuRenderer = function menuRenderer(_ref) {
var focusedOption = _ref.focusedOption,
focusOption = _ref.focusOption,
inputValue = _ref.inputValue,
instancePrefix = _ref.instancePrefix,
onFocus = _ref.onFocus,
onOptionRef = _ref.onOptionRef,
onSelect = _ref.onSelect,
optionClassName = _ref.optionClassName,
optionComponent = _ref.optionComponent,
optionRenderer = _ref.optionRenderer,
options = _ref.options,
removeValue = _ref.removeValue,
selectValue = _ref.selectValue,
valueArray = _ref.valueArray,
valueKey = _ref.valueKey;
var Option = optionComponent;
return options.map(function (option, i) {
var isSelected = valueArray && valueArray.some(function (x) {
return x[valueKey] === option[valueKey];
});
var isFocused = option === focusedOption;
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,
focusOption: focusOption,
inputValue: inputValue,
instancePrefix: instancePrefix,
isDisabled: option.disabled,
isFocused: isFocused,
isSelected: isSelected,
key: 'option-' + i + '-' + option[valueKey],
onFocus: onFocus,
onSelect: onSelect,
option: option,
optionIndex: i,
ref: function ref(_ref2) {
onOptionRef(_ref2, isFocused);
},
removeValue: removeValue,
selectValue: selectValue
},
optionRenderer(option, i, inputValue)
);
});
};
menuRenderer.propTypes = {
focusOption: _propTypes2.default.func,
focusedOption: _propTypes2.default.object,
inputValue: _propTypes2.default.string,
instancePrefix: _propTypes2.default.string,
onFocus: _propTypes2.default.func,
onOptionRef: _propTypes2.default.func,
onSelect: _propTypes2.default.func,
optionClassName: _propTypes2.default.string,
optionComponent: _propTypes2.default.func,
optionRenderer: _propTypes2.default.func,
options: _propTypes2.default.array,
removeValue: _propTypes2.default.func,
selectValue: _propTypes2.default.func,
valueArray: _propTypes2.default.array,
valueKey: _propTypes2.default.string
};
exports.default = menuRenderer;