UNPKG

formsy-react-bootstrap

Version:

Integration of formsy validation with bootstrap

78 lines (57 loc) 2.2 kB
'use strict'; var _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; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _formsyReact = require('formsy-react'); var _formsyReact2 = _interopRequireDefault(_formsyReact); var _mixins = require('./mixins'); var _mixins2 = _interopRequireDefault(_mixins); var _reactBootstrap = require('react-bootstrap'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var RadioGroup = _react2.default.createClass({ displayName: 'RadioGroup', mixins: [_formsyReact2.default.Mixin, _mixins2.default], propTypes: { name: _react2.default.PropTypes.string.isRequired, options: _react2.default.PropTypes.array.isRequired }, changeRadio: function changeRadio(event) { var value = event.currentTarget.value; this.setValue(value); this.props.onChange(this.props.name, value); }, renderElement: function renderElement() { var _this = this; var controls = this.props.options.map(function (radio, key) { var checked = _this.getValue() === radio.value; var disabled = _this.isFormDisabled() || radio.disabled || _this.props.disabled; return _react2.default.createElement( _reactBootstrap.Radio, _extends({ inputRef: function inputRef(c) { return _this['element-' + key] = c; }, key: key, checked: checked, value: radio.value, onChange: _this.changeRadio, disabled: disabled }, _this.props.inline ? { inline: true } : {}), radio.label ); }); return controls; }, render: function render() { if (this.props.elementOnly) return _react2.default.createElement( 'span', null, ' ', this.renderElement(), ' ' ); var Layout = this.getLayout(); return _react2.default.createElement(Layout.RadioGroup, { element: this }); } }); module.exports = RadioGroup;