UNPKG

formsy-react-bootstrap

Version:

Integration of formsy validation with bootstrap

81 lines (64 loc) 2.23 kB
'use strict'; 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 propUtilities = require('./propUtilities'); var CheckboxGroup = _react2.default.createClass({ displayName: 'CheckboxGroup', mixins: [_formsyReact2.default.Mixin, _mixins2.default], propTypes: { name: _react2.default.PropTypes.string.isRequired, options: _react2.default.PropTypes.array.isRequired }, changeCheckbox: function changeCheckbox() { var value = []; this.props.options.forEach(function (option, key) { if (this['element-' + key].checked) { value.push(option.value); } }.bind(this)); this.setValue(value); this.props.onChange(this.props.name, value); }, renderElement: function renderElement() { var _this = this; var controls = this.props.options.map(function (checkbox, key) { var checked = _this.getValue().indexOf(checkbox.value) !== -1; var disabled = _this.isFormDisabled() || checkbox.disabled || _this.props.disabled; return _react2.default.createElement( 'div', { className: 'checkbox', key: key }, _react2.default.createElement( 'label', null, _react2.default.createElement( _reactBootstrap.Checkbox, { ref: function ref(c) { return _this['element-' + key] = c; }, checked: checked, type: 'checkbox', value: checkbox.value, onChange: _this.changeCheckbox, disabled: disabled }, ' ', checkbox.label ) ) ); }); return controls; }, render: function render() { var Layout = this.getLayout(); return _react2.default.createElement(Layout.CheckboxGroup, { element: this }); } }); module.exports = CheckboxGroup;