UNPKG

react-components-library

Version:
63 lines (49 loc) 1.68 kB
/* 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/. */ 'use strict'; 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;