@uiw/react-native
Version:
UIW for React Native
85 lines (72 loc) • 8.04 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Badge;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactNative = require("react-native");
var _utils = require("../utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const styles = _reactNative.StyleSheet.create({
base: {
paddingHorizontal: 4,
paddingVertical: 2,
borderRadius: 12
},
text: {
backgroundColor: 'transparent',
textAlign: 'center',
fontWeight: '600',
fontSize: 10
},
dot: {
height: 6,
width: 6,
marginHorizontal: 4,
marginVertical: 6,
borderRadius: 3
}
});
function Badge(props) {
const {
children,
rounded,
color: $color,
style,
type,
textStyles,
...restProps
} = props;
const colorObj = (0, _utils.color)(_utils.colors[$color] || $color);
const luminosTextColor = colorObj.luminosity() < 0.5 ? '#fff' : '#000';
if (type === 'dot') {
return <_reactNative.View style={[styles.dot, {
backgroundColor: $color
}, style]} />;
}
const content = children || <_reactNative.Text style={[styles.text, {
color: luminosTextColor
}, textStyles]}>{props.text}</_reactNative.Text>;
const bgStyl = {
borderRadius: rounded || 12
};
if ($color) {
bgStyl.backgroundColor = colorObj.rgb().string();
}
return <_reactNative.View style={[styles.base, bgStyl, style]} {...restProps}>
{content}
</_reactNative.View>;
}
Badge.propTypes = {
children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node, _propTypes.default.string]),
color: _propTypes.default.string,
style: _propTypes.default.any,
text: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.string])
};
Badge.defaultProps = {
color: 'primary',
type: 'text'
};
module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CYWRnZS9pbmRleC50c3giXSwibmFtZXMiOlsic3R5bGVzIiwiU3R5bGVTaGVldCIsImNyZWF0ZSIsImJhc2UiLCJwYWRkaW5nSG9yaXpvbnRhbCIsInBhZGRpbmdWZXJ0aWNhbCIsImJvcmRlclJhZGl1cyIsInRleHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ0ZXh0QWxpZ24iLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJkb3QiLCJoZWlnaHQiLCJ3aWR0aCIsIm1hcmdpbkhvcml6b250YWwiLCJtYXJnaW5WZXJ0aWNhbCIsIkJhZGdlIiwicHJvcHMiLCJjaGlsZHJlbiIsInJvdW5kZWQiLCJjb2xvciIsIiRjb2xvciIsInN0eWxlIiwidHlwZSIsInRleHRTdHlsZXMiLCJyZXN0UHJvcHMiLCJjb2xvck9iaiIsImNvbG9ycyIsImx1bWlub3NUZXh0Q29sb3IiLCJsdW1pbm9zaXR5IiwiY29udGVudCIsImJnU3R5bCIsInJnYiIsInN0cmluZyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9uZU9mVHlwZSIsImFycmF5T2YiLCJub2RlIiwiYW55IiwiZWxlbWVudCIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsTUFBTSxHQUFHQyx3QkFBV0MsTUFBWCxDQUFrQjtBQUMvQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0pDLElBQUFBLGlCQUFpQixFQUFFLENBRGY7QUFFSkMsSUFBQUEsZUFBZSxFQUFFLENBRmI7QUFHSkMsSUFBQUEsWUFBWSxFQUFFO0FBSFYsR0FEeUI7QUFNL0JDLEVBQUFBLElBQUksRUFBRTtBQUNKQyxJQUFBQSxlQUFlLEVBQUUsYUFEYjtBQUVKQyxJQUFBQSxTQUFTLEVBQUUsUUFGUDtBQUdKQyxJQUFBQSxVQUFVLEVBQUUsS0FIUjtBQUlKQyxJQUFBQSxRQUFRLEVBQUU7QUFKTixHQU55QjtBQVkvQkMsRUFBQUEsR0FBRyxFQUFFO0FBQ0hDLElBQUFBLE1BQU0sRUFBRSxDQURMO0FBRUhDLElBQUFBLEtBQUssRUFBRSxDQUZKO0FBR0hDLElBQUFBLGdCQUFnQixFQUFFLENBSGY7QUFJSEMsSUFBQUEsY0FBYyxFQUFFLENBSmI7QUFLSFYsSUFBQUEsWUFBWSxFQUFFO0FBTFg7QUFaMEIsQ0FBbEIsQ0FBZjs7QUFpQ2UsU0FBU1csS0FBVCxDQUFlQyxLQUFmLEVBQWtDO0FBQy9DLFFBQU07QUFBRUMsSUFBQUEsUUFBRjtBQUFZQyxJQUFBQSxPQUFaO0FBQXFCQyxJQUFBQSxLQUFLLEVBQUVDLE1BQTVCO0FBQW9DQyxJQUFBQSxLQUFwQztBQUEyQ0MsSUFBQUEsSUFBM0M7QUFBaURDLElBQUFBLFVBQWpEO0FBQTZELE9BQUdDO0FBQWhFLE1BQThFUixLQUFwRjtBQUNBLFFBQU1TLFFBQVEsR0FBRyxrQkFBTUMsY0FBT04sTUFBUCxLQUFtQ0EsTUFBekMsQ0FBakI7QUFDQSxRQUFNTyxnQkFBZ0IsR0FBR0YsUUFBUSxDQUFDRyxVQUFULEtBQXdCLEdBQXhCLEdBQThCLE1BQTlCLEdBQXVDLE1BQWhFOztBQUNBLE1BQUlOLElBQUksS0FBSyxLQUFiLEVBQW9CO0FBQ2xCLFdBQU8sbUJBQU0sTUFBTSxDQUFDLENBQUN4QixNQUFNLENBQUNZLEdBQVIsRUFBYTtBQUFFSixNQUFBQSxlQUFlLEVBQUVjO0FBQW5CLEtBQWIsRUFBMENDLEtBQTFDLENBQUQsQ0FBWixHQUFQO0FBQ0Q7O0FBQ0QsUUFBTVEsT0FBTyxHQUFHWixRQUFRLElBQUksbUJBQU0sTUFBTSxDQUFDLENBQUNuQixNQUFNLENBQUNPLElBQVIsRUFBYztBQUFFYyxJQUFBQSxLQUFLLEVBQUVRO0FBQVQsR0FBZCxFQUEyQ0osVUFBM0MsQ0FBRCxDQUFaLENBQXFFLENBQUNQLEtBQUssQ0FBQ1gsSUFBUCxDQUFZLG9CQUE3RztBQUNBLFFBQU15QixNQUE0QixHQUFHO0FBQUUxQixJQUFBQSxZQUFZLEVBQUVjLE9BQU8sSUFBSTtBQUEzQixHQUFyQzs7QUFDQSxNQUFJRSxNQUFKLEVBQVk7QUFDVlUsSUFBQUEsTUFBTSxDQUFDeEIsZUFBUCxHQUF5Qm1CLFFBQVEsQ0FBQ00sR0FBVCxHQUFlQyxNQUFmLEVBQXpCO0FBQ0Q7O0FBQ0QsU0FDRSxtQkFBTSxNQUFNLENBQUMsQ0FBQ2xDLE1BQU0sQ0FBQ0csSUFBUixFQUFjNkIsTUFBZCxFQUFzQlQsS0FBdEIsQ0FBRCxDQUFaLENBQTJDLElBQUlHLFNBQUosQ0FBM0M7QUFDSixNQUFNLENBQUNLLE9BQUQ7QUFDTixJQUFJLG9CQUhGO0FBS0Q7O0FBRURkLEtBQUssQ0FBQ2tCLFNBQU4sR0FBa0I7QUFDaEJoQixFQUFBQSxRQUFRLEVBQUVpQixtQkFBVUMsU0FBVixDQUFvQixDQUFDRCxtQkFBVUUsT0FBVixDQUFrQkYsbUJBQVVHLElBQTVCLENBQUQsRUFBb0NILG1CQUFVRyxJQUE5QyxFQUFvREgsbUJBQVVGLE1BQTlELENBQXBCLENBRE07QUFFaEJiLEVBQUFBLEtBQUssRUFBRWUsbUJBQVVGLE1BRkQ7QUFHaEJYLEVBQUFBLEtBQUssRUFBRWEsbUJBQVVJLEdBSEQ7QUFJaEJqQyxFQUFBQSxJQUFJLEVBQUU2QixtQkFBVUMsU0FBVixDQUFvQixDQUFDRCxtQkFBVUssT0FBWCxFQUFvQkwsbUJBQVVGLE1BQTlCLENBQXBCO0FBSlUsQ0FBbEI7QUFNQWpCLEtBQUssQ0FBQ3lCLFlBQU4sR0FBcUI7QUFDbkJyQixFQUFBQSxLQUFLLEVBQUUsU0FEWTtBQUVuQkcsRUFBQUEsSUFBSSxFQUFFO0FBRmEsQ0FBckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IFN0eWxlU2hlZXQsIFRleHQsIFZpZXcsIFZpZXdQcm9wcywgU3R5bGVQcm9wLCBUZXh0U3R5bGUsIFZpZXdTdHlsZSB9IGZyb20gJ3JlYWN0LW5hdGl2ZSc7XG5pbXBvcnQgeyBjb2xvciwgY29sb3JzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBzdHlsZXMgPSBTdHlsZVNoZWV0LmNyZWF0ZSh7XG4gIGJhc2U6IHtcbiAgICBwYWRkaW5nSG9yaXpvbnRhbDogNCxcbiAgICBwYWRkaW5nVmVydGljYWw6IDIsXG4gICAgYm9yZGVyUmFkaXVzOiAxMixcbiAgfSxcbiAgdGV4dDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIGZvbnRXZWlnaHQ6ICc2MDAnLFxuICAgIGZvbnRTaXplOiAxMCxcbiAgfSxcbiAgZG90OiB7XG4gICAgaGVpZ2h0OiA2LFxuICAgIHdpZHRoOiA2LFxuICAgIG1hcmdpbkhvcml6b250YWw6IDQsXG4gICAgbWFyZ2luVmVydGljYWw6IDYsXG4gICAgYm9yZGVyUmFkaXVzOiAzLFxuICB9LFxufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFkZ2VQcm9wcyBleHRlbmRzIFZpZXdQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjb2xvcj86IGNvbG9ycy5Db2xvcnMgfCBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmcgfCBFbGVtZW50O1xuICAvKipcbiAgICog6K6+572u5ZyG6KeS77yM6buY6K6kIGAxMmBcbiAgICovXG4gIHJvdW5kZWQ/OiBudW1iZXI7XG4gIHR5cGU/OiAnZG90JyB8ICd0ZXh0JztcbiAgdGV4dFN0eWxlcz86IFN0eWxlUHJvcDxUZXh0U3R5bGU+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBCYWRnZShwcm9wczogQmFkZ2VQcm9wcykge1xuICBjb25zdCB7IGNoaWxkcmVuLCByb3VuZGVkLCBjb2xvcjogJGNvbG9yLCBzdHlsZSwgdHlwZSwgdGV4dFN0eWxlcywgLi4ucmVzdFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgY29sb3JPYmogPSBjb2xvcihjb2xvcnNbJGNvbG9yIGFzIGNvbG9ycy5Db2xvcnNdIHx8ICRjb2xvcik7XG4gIGNvbnN0IGx1bWlub3NUZXh0Q29sb3IgPSBjb2xvck9iai5sdW1pbm9zaXR5KCkgPCAwLjUgPyAnI2ZmZicgOiAnIzAwMCc7XG4gIGlmICh0eXBlID09PSAnZG90Jykge1xuICAgIHJldHVybiA8VmlldyBzdHlsZT17W3N0eWxlcy5kb3QsIHsgYmFja2dyb3VuZENvbG9yOiAkY29sb3IgfSwgc3R5bGVdfSAvPjtcbiAgfVxuICBjb25zdCBjb250ZW50ID0gY2hpbGRyZW4gfHwgPFRleHQgc3R5bGU9e1tzdHlsZXMudGV4dCwgeyBjb2xvcjogbHVtaW5vc1RleHRDb2xvciB9LCB0ZXh0U3R5bGVzXX0+e3Byb3BzLnRleHR9PC9UZXh0PjtcbiAgY29uc3QgYmdTdHlsOiBTdHlsZVByb3A8Vmlld1N0eWxlPiA9IHsgYm9yZGVyUmFkaXVzOiByb3VuZGVkIHx8IDEyIH07XG4gIGlmICgkY29sb3IpIHtcbiAgICBiZ1N0eWwuYmFja2dyb3VuZENvbG9yID0gY29sb3JPYmoucmdiKCkuc3RyaW5nKCk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8VmlldyBzdHlsZT17W3N0eWxlcy5iYXNlLCBiZ1N0eWwsIHN0eWxlXX0gey4uLnJlc3RQcm9wc30+XG4gICAgICB7Y29udGVudH1cbiAgICA8L1ZpZXc+XG4gICk7XG59XG5cbkJhZGdlLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSwgUHJvcFR5cGVzLm5vZGUsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgY29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0eWxlOiBQcm9wVHlwZXMuYW55LFxuICB0ZXh0OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuZWxlbWVudCwgUHJvcFR5cGVzLnN0cmluZ10pLFxufTtcbkJhZGdlLmRlZmF1bHRQcm9wcyA9IHtcbiAgY29sb3I6ICdwcmltYXJ5JyxcbiAgdHlwZTogJ3RleHQnLFxufTtcbiJdfQ==