UNPKG

shradmin

Version:

A frontend Framework for building admin application, using antd and mirrorjs.

60 lines (45 loc) 1.84 kB
'use strict'; exports.__esModule = true; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _get = require('lodash/get'); var _get2 = _interopRequireDefault(_get); var _isFunction = require('lodash/isFunction'); var _isFunction2 = _interopRequireDefault(_isFunction); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var SelectField = function SelectField(_ref) { var source = _ref.source, _ref$record = _ref.record, record = _ref$record === undefined ? {} : _ref$record, elStyle = _ref.elStyle, choices = _ref.choices, optionValue = _ref.optionValue, optionText = _ref.optionText; var value = (0, _get2.default)(record, source); var choice = choices.find(function (item) { return item[optionValue] === value; }); if (!choice) return null; var choiceName = _react2.default.isValidElement(optionText) ? _react2.default.cloneElement(optionText, { record: choice }) : (0, _isFunction2.default)(optionText) ? optionText(choice) : choice[optionText]; return _react2.default.createElement( 'span', { style: elStyle }, choiceName ); }; SelectField.PropTypes = { source: _propTypes2.default.string.isRequired, elStyle: _propTypes2.default.object, record: _propTypes2.default.object, choices: _propTypes2.default.arrayOf(_propTypes2.default.object), optionText: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func, _propTypes2.default.element]).isRequired, optionValue: _propTypes2.default.string.isRequired }; SelectField.defaultProps = { optionText: 'name', optionValue: 'id' }; exports.default = SelectField; module.exports = exports['default'];