UNPKG

test-nut-ui

Version:

<p align="center"> <img alt="logo" src="https://img11.360buyimg.com/imagetools/jfs/t1/211965/25/7152/22022/61b16785E433119bb/aa41d7a9f7e823f3.png" width="150" style="margin-bottom: 10px;"> </p>

116 lines (115 loc) 5.85 kB
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), true).forEach(function(key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } import React__default, { useState, useEffect } from "react"; import classNames from "classnames"; import { k as kr } from "./index.js"; import { C as ComponentDefaults } from "./typings.js"; var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, { type: "default", background: "", color: "", plain: false, round: false, mark: false, closeIcon: null, closeable: false, outline: false, checked: true, clickable: true, frontIcon: null, disabled: false, onClose: function onClose(e) { }, onClick: function onClick(e) { } }); var Tag = function Tag2(props) { var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, style = _defaultProps$props.style, background = _defaultProps$props.background, plain = _defaultProps$props.plain, type = _defaultProps$props.type, round = _defaultProps$props.round, children = _defaultProps$props.children, mark = _defaultProps$props.mark, color = _defaultProps$props.color, closeable = _defaultProps$props.closeable, closeIcon = _defaultProps$props.closeIcon, frontIcon = _defaultProps$props.frontIcon, clickable = _defaultProps$props.clickable, outline = _defaultProps$props.outline, checked = _defaultProps$props.checked, disabled = _defaultProps$props.disabled, size = _defaultProps$props.size, onClick2 = _defaultProps$props.onClick, onClose2 = _defaultProps$props.onClose; var _useState = useState(type), _useState2 = _slicedToArray(_useState, 2), innerType = _useState2[0], setInnerType = _useState2[1]; var _useState3 = useState(""), _useState4 = _slicedToArray(_useState3, 2), tagClass = _useState4[0], setTagClass = _useState4[1]; var _useState5 = useState(true), _useState6 = _slicedToArray(_useState5, 2), visible = _useState6[0], setVisible = _useState6[1]; var classPrefix = "nut-tag"; var classes = function classes2() { var _classNames; return classNames((_classNames = {}, _defineProperty(_classNames, classPrefix, true), _defineProperty(_classNames, "".concat(classPrefix, "--").concat(innerType), innerType), _defineProperty(_classNames, "".concat(classPrefix, "--").concat(size), size), _defineProperty(_classNames, "".concat(classPrefix, "--plain"), plain), _defineProperty(_classNames, "".concat(classPrefix, "--round"), round), _defineProperty(_classNames, "".concat(classPrefix, "--outline"), outline), _defineProperty(_classNames, "".concat(classPrefix, "--none"), !checked), _defineProperty(_classNames, "".concat(classPrefix, "--mark"), mark), _defineProperty(_classNames, "".concat(classPrefix, "--close"), closeable), _defineProperty(_classNames, "".concat(classPrefix, "--disabled"), disabled), _defineProperty(_classNames, "".concat(className), className), _classNames)); }; useEffect(function() { setTagClass(classes()); }, [size, innerType, background, color, plain, round, mark, closeable, className, checked, outline, disabled]); useEffect(function() { setInnerType(type); }, [type]); var handleClick = function handleClick2(e) { clickable && setInnerType(innerType === "default" ? type : "default"); onClick2 && onClick2(e); }; var getStyle = function getStyle2() { var style2 = {}; if (color) { style2.color = color; } else if (background && plain) { style2.color = background; } if (plain) { style2.borderColor = background; } else if (background) { style2.background = background; } return style2; }; return React__default.createElement(React__default.Fragment, null, closeable ? visible && React__default.createElement("div", { className: tagClass, style: _objectSpread(_objectSpread({}, style), getStyle()), onClick: function onClick3(e) { return handleClick(e); } }, frontIcon ? frontIcon : React__default.createElement(React__default.Fragment, null), children && React__default.createElement("span", { className: "".concat(classPrefix, "-text") }, children), React__default.isValidElement(closeIcon) ? React__default.createElement("i", { className: "".concat(classPrefix, "-custom-icon"), onClick: function onClick3(e) { setVisible(false); onClose2 && onClose2(e); } }, closeIcon) : React__default.createElement(kr, { size: 12, onClick: function onClick3(e) { setVisible(false); onClose2 && onClose2(e); } })) : React__default.createElement("div", { className: tagClass, style: _objectSpread(_objectSpread({}, style), getStyle()), onClick: function onClick3(e) { return handleClick(e); } }, children && React__default.createElement("span", { className: "".concat(classPrefix, "-text") }, children))); }; Tag.defaultProps = defaultProps; Tag.displayName = "NutTag"; export { Tag as default };