UNPKG

cuz

Version:

Front-end modular development kit.

74 lines (58 loc) 1.99 kB
'use strict'; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; exports.__esModule = true; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _reactBootstrap = require('react-bootstrap'); function getDefaultActiveKeyFromChildren(children) { var defaultActiveKey = undefined; _reactBootstrap.utils.ValidComponentChildren.forEach(children, function (child, index) { if (child.props.checked === true) { defaultActiveKey = index; } }); return defaultActiveKey + 1; } var RadioGroup = _react2['default'].createClass({ displayName: 'RadioGroup', propTypes: { defaultActiveKey: _react2['default'].PropTypes.any, children: _react2['default'].PropTypes.any, onSelect: _react2['default'].PropTypes.func, vertical: _react2['default'].PropTypes.bool }, getInitialState: function getInitialState() { var defaultKey = this.props.defaultActiveKey || getDefaultActiveKeyFromChildren(this.props.children); return { checkedKey: defaultKey, vertical: false }; }, onSelect: function onSelect(value, index) { var onSelect = this.props.onSelect; this.setState({ checkedKey: index }); if (onSelect) { onSelect(value, index); } }, renderRadioItem: function renderRadioItem(child, index) { return _react.cloneElement(child, { checked: index + 1 === this.state.checkedKey, eventKey: index + 1, onSelect: this.onSelect }); }, render: function render() { return _react2['default'].createElement( 'div', { className: _classnames2['default']({ 'form-inline': !this.props.vertical }) }, _reactBootstrap.utils.ValidComponentChildren.map(this.props.children, this.renderRadioItem) ); } }); exports['default'] = RadioGroup; module.exports = exports['default'];