react-components-library
Version:
replace 'onBrowserComplete' on karma-coverage with
63 lines (49 loc) • 1.68 kB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
;
var React = require('react');
var classNames = require('classnames');
var _ = require('lodash');
var Badge = React.createClass({
displayName: 'Badge',
propTypes: {
badgeType: React.PropTypes.oneOf(['primary', 'secondary', 'tertiary']),
badgeSoze: React.PropTypes.oneOf(['small', 'medium', 'large'])
},
getDefaultProps: function getDefaultProps() {
return {
badgeSize: 'small',
badgeType: 'primary'
};
},
render: function render() {
return React.createElement(
'div',
this.getProps(),
this.props.children
);
},
getProps: function getProps() {
var props = _.extend({}, this.props, {
className: this.getClass()
});
return props;
},
getClass: function getClass() {
var badgeSize = this.props.badgeSize;
var badgeType = this.props.badgeType;
var classes = {
'badge': true,
'badge_primary': badgeType === 'primary',
'badge_secondary': badgeType === 'secondary',
'badge_tertiary': badgeType === 'tertiary',
'badge_small': badgeSize === 'small',
'badge_medium': badgeSize === 'medium',
'badge_large': badgeSize === 'large'
};
classes[this.props.className] = this.props.className;
return classNames(classes);
}
});
module.exports = Badge;