@alifd/meet-react
Version:
Fusion Mobile React UI System Component
70 lines • 3.92 kB
JavaScript
import { rpx2vw4style as __rpx2vw__ } from "@alifd/babel-runtime-jsx-style-transform";
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
import { __rest } from "tslib";
import React, { createElement, forwardRef } from "react";
import classNames from 'classnames';
import View from '../view';
import CreateChildren from './create-children';
import { isString } from '../utils';
var Tag = function Tag(props, ref) {
var _props$prefix = props.prefix,
prefix = _props$prefix === void 0 ? 'mt-' : _props$prefix,
_props$size = props.size,
size = _props$size === void 0 ? 'medium' : _props$size,
_props$type = props.type,
type = _props$type === void 0 ? 'normal' : _props$type,
_props$disabled = props.disabled,
disabled = _props$disabled === void 0 ? false : _props$disabled,
_props$onClick = props.onClick,
onClick = _props$onClick === void 0 ? function () {} : _props$onClick,
_props$style = props.style,
style = _props$style === void 0 ? {} : _props$style,
children = props.children,
color = props.color,
textColorProp = props.textColor,
className = props.className,
others = __rest(props, ["prefix", "size", "type", "disabled", "onClick", "style", "children", "color", "textColor", "className"]);
var textCls = "".concat(prefix, "tag-font--").concat(size);
var iconCls = "".concat(prefix, "tag-font--").concat(size);
var classes = {
textCls: textCls,
iconCls: iconCls
};
var cssType = type === 'normal' ? 'outline' : 'solid';
var tagCls = classNames(className, "".concat(prefix, "tag"), "".concat(prefix, "tag--").concat(size), "".concat(prefix, "tag--readonly-").concat(size), "".concat(prefix, "tag--normal-").concat(cssType), _defineProperty({}, "".concat(prefix, "tag--normal-").concat(cssType, "-disabled"), disabled));
var handleClick = function handleClick(e) {
if (disabled) {
return;
}
if (onClick) {
onClick(e);
}
};
var textColor = textColorProp;
if (isString(color) && !textColor) {
if (type === 'primary') {
textColor = '#fff';
} else {
textColor = color;
}
}
var newStyle = Object.assign(Object.assign(Object.assign({}, isString(color) && type === 'primary' ? {
backgroundColor: color
} : {
borderColor: color
}), isString(textColor) ? {
color: textColor
} : null), style);
return /*#__PURE__*/React.createElement(View, _extends({}, others, {
ref: ref,
className: tagCls,
onClick: handleClick,
style: __rpx2vw__(newStyle)
}), CreateChildren(children, classes, prefix, size));
};
Tag.displayName = 'Tag';
export default /*#__PURE__*/forwardRef(Tag);