UNPKG

react-tm-nucleus

Version:
164 lines (130 loc) 5.16 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _get2 = require('babel-runtime/helpers/get'); var _get3 = _interopRequireDefault(_get2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _callbackBase = require('./abstract/callbackBase'); var _callbackBase2 = _interopRequireDefault(_callbackBase); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Select = function (_CallbackBase) { (0, _inherits3.default)(Select, _CallbackBase); function Select(props) { (0, _classCallCheck3.default)(this, Select); var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Select).call(this, props)); _this.state = { multiple: props.multiple, value: props.defaultValue, required: props.required }; _this._onChange = _this._onChange.bind(_this); return _this; } (0, _createClass3.default)(Select, [{ key: 'componentDidUpdate', value: function componentDidUpdate(prevProps, prevState) { this.props.changeCallback(); } }, { key: '_onChange', value: function _onChange(e) { this.setState({ value: e.target.value }); } }, { key: 'value', value: function value(v) { if (typeof v === 'undefined') { return this.state.value; } else { if (this.state.multiple) { this.setState({ value: (typeof v === 'undefined' ? 'undefined' : (0, _typeof3.default)(v)) === (0, _typeof3.default)([]) ? v : [v] }); } else { this.setState({ value: v }); } } } }, { key: 'required', value: function required(v) { if (typeof v === 'undefined') { return this.state.required; } else { this.setState({ required: v }); } } }, { key: 'multiple', value: function multiple(v) { if (typeof v === 'undefined') { return this.state.multiple; } else { this.setState({ multiple: v }); } } }, { key: 'filterProps', value: function filterProps(props) { var multiple = props.multiple; var defaultValue = props.defaultValue; var changeCallback = props.changeCallback; var other = (0, _objectWithoutProperties3.default)(props, ['multiple', 'defaultValue', 'changeCallback']); return (0, _get3.default)((0, _getPrototypeOf2.default)(Select.prototype), 'filterProps', this).call(this, other); } }, { key: 'render', value: function render() { var props = this.filterProps(this.props); return _react2.default.createElement( 'select', (0, _extends3.default)({ className: 'dropdown__select', value: this.state.value, multiple: this.state.multiple, onChange: this._onChange }, props), this.props.children ); } }]); return Select; }(_callbackBase2.default); Select.propTypes = { multiple: _react2.default.PropTypes.bool, defaultValue: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.arrayOf(_react2.default.PropTypes.string), _react2.default.PropTypes.string]), required: _react2.default.PropTypes.bool, changeCallback: _react2.default.PropTypes.func }; Select.defaultProps = { multiple: false, defaultValue: '', required: false, changeCallback: function changeCallback() {} }; exports.default = Select;