UNPKG

@confi/conflux-react-ui-test-package

Version:

Modern and minimalist React UI library.

77 lines (69 loc) 2.59 kB
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; import _extends from "@babel/runtime/helpers/esm/extends"; import _JSXStyle from "styled-jsx/style"; import React, { useMemo } from 'react'; import withDefaults from '../utils/with-defaults'; import useTheme from '../styles/use-theme'; var defaultProps = { type: 'default', invert: false, className: '' }; var getColors = function getColors(type, palette, invert) { var colors = { "default": { color: palette.foreground }, success: { color: palette.success }, warning: { color: palette.warning }, error: { color: palette.error }, secondary: { color: palette.secondary }, dark: { color: palette.foreground, bgColor: palette.background }, lite: { color: palette.foreground, bgColor: palette.accents_2 } }; var hideBorder = invert || type === 'lite'; var cardStyle = _extends(_extends({}, colors[type]), {}, { bgColor: colors[type].bgColor || palette.background, borderColor: hideBorder ? 'transparent' : colors[type].color }); return !invert ? cardStyle : _extends(_extends({}, cardStyle), {}, { color: cardStyle.bgColor, bgColor: cardStyle.color }); }; var Tag = function Tag(_ref) { var type = _ref.type, children = _ref.children, className = _ref.className, invert = _ref.invert, props = _objectWithoutProperties(_ref, ["type", "children", "className", "invert"]); var theme = useTheme(); var _useMemo = useMemo(function () { return getColors(type, theme.palette, invert); }, [type, theme.palette, invert]), color = _useMemo.color, bgColor = _useMemo.bgColor, borderColor = _useMemo.borderColor; return /*#__PURE__*/React.createElement("span", _extends({}, props, { className: _JSXStyle.dynamic([["559096265", [theme.layout.radius, borderColor, bgColor, color]]]) + " " + (props && props.className != null && props.className || className || "") }), children, /*#__PURE__*/React.createElement(_JSXStyle, { id: "559096265", dynamic: [theme.layout.radius, borderColor, bgColor, color] }, "span.__jsx-style-dynamic-selector{display:inline-block;line-height:0.875rem;font-size:0.875rem;height:1.75rem;border-radius:".concat(theme.layout.radius, ";border:1px solid ").concat(borderColor, ";background-color:").concat(bgColor, ";color:").concat(color, ";padding:6px;box-sizing:border-box;}"))); }; var MemoTag = React.memo(Tag); export default withDefaults(MemoTag, defaultProps);