UNPKG

@uiw/react-native

Version:
85 lines (72 loc) 8.04 kB
"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==