UNPKG

box-ui-elements-mlh

Version:
69 lines (59 loc) 2.84 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import * as React from 'react'; import getProp from 'lodash/get'; import SingleSelectPrimitive from './SingleSelectField'; import MultiSelectPrimitive from './MultiSelectField'; function createFakeSyntheticEvent(name, value) { return { currentTarget: { name: name, value: value }, target: { name: name, value: value } }; } function onSelect(name, onChange, options) { var value = Array.isArray(options) ? options.map(function (option) { return option.value; }) : options.value; onChange(createFakeSyntheticEvent(name, value)); } var SelectField = function SelectField(_ref) { var field = _ref.field, form = _ref.form, multiple = _ref.multiple, rest = _objectWithoutProperties(_ref, ["field", "form", "multiple"]); var _onChange = field.onChange, name = field.name, value = field.value; var errors = form.errors, touched = form.touched; var isTouched = getProp(touched, name); var error = isTouched ? getProp(errors, name) : null; if (multiple) { return /*#__PURE__*/React.createElement(MultiSelectPrimitive, _extends({}, field, rest, { error: error, onChange: function onChange(options) { return onSelect(name, _onChange, options); }, options: rest.options, selectedValues: value || [] })); } return /*#__PURE__*/React.createElement(SingleSelectPrimitive, _extends({}, field, rest, { error: error, onChange: function onChange(options) { return onSelect(name, _onChange, options); }, options: rest.options, selectedValue: value || null })); }; export { onSelect }; export default SelectField; //# sourceMappingURL=SelectField.js.map