UNPKG

react-mdl

Version:

React Components for Material Design Lite

57 lines (42 loc) 1.74 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var propTypes = { children: _react.PropTypes.oneOfType([_react.PropTypes.element, _react.PropTypes.string]), className: _react.PropTypes.string, text: _react.PropTypes.oneOfType([_react2.default.PropTypes.string, _react2.default.PropTypes.number]), overlap: _react.PropTypes.bool, noBackground: _react.PropTypes.bool }; var Badge = function Badge(props) { var children = props.children; var className = props.className; var text = props.text; var overlap = props.overlap; var noBackground = props.noBackground; // No badge if no children // TODO: In React 15, we can return null instead if (!_react2.default.Children.count(children)) return _react2.default.createElement('noscript', null); var element = typeof children === 'string' ? _react2.default.createElement( 'span', null, children ) : _react2.default.Children.only(children); // No text -> No need of badge if (text === null || typeof text === 'undefined') return element; return _react2.default.cloneElement(element, { className: (0, _classnames2.default)(className, element.props.className, 'mdl-badge', { 'mdl-badge--overlap': !!overlap, 'mdl-badge--no-background': !!noBackground }), 'data-badge': text }); }; Badge.propTypes = propTypes; exports.default = Badge;