ringcentral-widget
Version: 
RingCentral Integration Widget Library
89 lines (74 loc) • 2.24 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Select;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _styles = require('./styles.scss');
var _styles2 = _interopRequireDefault(_styles);
require('../../assets/DynamicsFont/DynamicsFont.scss');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// import font face
function Select(_ref) {
  var className = _ref.className,
      value = _ref.value,
      onChange = _ref.onChange,
      disabled = _ref.disabled,
      options = _ref.options,
      valueFunction = _ref.valueFunction,
      renderFunction = _ref.renderFunction,
      paddingLeft = _ref.paddingLeft;
  return _react2.default.createElement(
    'div',
    {
      className: (0, _classnames2.default)(_styles2.default.root, className) },
    _react2.default.createElement(
      'select',
      {
        className: _styles2.default.select,
        disabled: disabled,
        value: value,
        style: {
          paddingLeft: paddingLeft
        },
        onChange: onChange },
      options.map(function (option, idx) {
        return (
          // eslint-disable-next-line react/no-array-index-key
          _react2.default.createElement(
            'option',
            { key: idx, value: valueFunction(option, idx) },
            renderFunction(option, idx)
          )
        );
      })
    )
  );
}
Select.propTypes = {
  className: _react.PropTypes.string,
  value: _react.PropTypes.string,
  onChange: _react.PropTypes.func,
  disabled: _react.PropTypes.bool,
  options: _react.PropTypes.arrayOf(_react.PropTypes.any).isRequired,
  paddingLeft: _react.PropTypes.number,
  valueFunction: _react.PropTypes.func,
  renderFunction: _react.PropTypes.func
};
Select.defaultProps = {
  className: undefined,
  value: undefined,
  onChange: undefined,
  disabled: false,
  paddingLeft: 10,
  valueFunction: function valueFunction(option) {
    return option;
  },
  renderFunction: function renderFunction(option) {
    return option;
  }
};
//# sourceMappingURL=index.js.map