react-bootstrap
Version:
Bootstrap 3 components build with React
67 lines (49 loc) • 1.97 kB
JavaScript
;
var _extends = require('babel-runtime/helpers/extends')['default'];
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 _BootstrapMixin = require('./BootstrapMixin');
var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
var _utilsCustomPropTypes = require('./utils/CustomPropTypes');
var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
var ButtonGroup = _react2['default'].createClass({
displayName: 'ButtonGroup',
mixins: [_BootstrapMixin2['default']],
propTypes: {
vertical: _react2['default'].PropTypes.bool,
justified: _react2['default'].PropTypes.bool,
/**
* Display block buttons, only useful when used with the "vertical" prop.
* @type {bool}
*/
block: _utilsCustomPropTypes2['default'].all([_react2['default'].PropTypes.bool, function (props, propName, componentName) {
if (props.block && !props.vertical) {
return new Error('The block property requires the vertical property to be set to have any effect');
}
}])
},
getDefaultProps: function getDefaultProps() {
return {
bsClass: 'button-group'
};
},
render: function render() {
var classes = this.getBsClassSet();
classes['btn-group'] = !this.props.vertical;
classes['btn-group-vertical'] = this.props.vertical;
classes['btn-group-justified'] = this.props.justified;
classes['btn-block'] = this.props.block;
return _react2['default'].createElement(
'div',
_extends({}, this.props, {
className: _classnames2['default'](this.props.className, classes) }),
this.props.children
);
}
});
exports['default'] = ButtonGroup;
module.exports = exports['default'];