react-bootstrap
Version:
Bootstrap 3 components build with React
58 lines (47 loc) • 1.29 kB
JavaScript
;
/** @jsx React.DOM */
var React = require("./react-es6")["default"];
var classSet = require("./react-es6/lib/cx")["default"];
var BootstrapMixin = require("./BootstrapMixin")["default"];
var Button = React.createClass({displayName: 'Button',
mixins: [BootstrapMixin],
propTypes: {
active: React.PropTypes.bool,
disabled: React.PropTypes.bool,
block: React.PropTypes.bool
},
getDefaultProps: function () {
return {
bsClass: 'button',
bsStyle: 'default',
type: 'button'
};
},
render: function () {
var classes = this.getBsClassSet();
classes['active'] = this.props.active;
classes['btn-block'] = this.props.block;
var renderFuncName = this.props.href ?
'renderAnchor' : 'renderButton';
return this[renderFuncName](classes);
},
renderAnchor: function (classes) {
classes['disabled'] = this.props.disabled;
return this.transferPropsTo(
React.DOM.a(
{className:classSet(classes),
role:"button"},
this.props.children
)
);
},
renderButton: function (classes) {
return this.transferPropsTo(
React.DOM.button(
{className:classSet(classes)},
this.props.children
)
);
}
});
exports["default"] = Button;