antd
Version:
An enterprise-class UI design language and React components implementation
49 lines (48 loc) • 2.12 kB
JavaScript
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = CopyBtn;
var React = _interopRequireWildcard(require("react"));
var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons/LoadingOutlined"));
var _CheckOutlined = _interopRequireDefault(require("@ant-design/icons/CheckOutlined"));
var _CopyOutlined = _interopRequireDefault(require("@ant-design/icons/CopyOutlined"));
var _classnames = _interopRequireDefault(require("classnames"));
var _transButton = _interopRequireDefault(require("../../_util/transButton"));
var _tooltip = _interopRequireDefault(require("../../tooltip"));
var _util = require("./util");
function CopyBtn(props) {
const {
prefixCls,
copied,
locale = {},
onCopy,
iconOnly,
tooltips,
icon,
loading
} = props;
const tooltipNodes = (0, _util.toList)(tooltips);
const iconNodes = (0, _util.toList)(icon);
const {
copied: copiedText,
copy: copyText
} = locale;
const copyTitle = copied ? (0, _util.getNode)(tooltipNodes[1], copiedText) : (0, _util.getNode)(tooltipNodes[0], copyText);
const systemStr = copied ? copiedText : copyText;
const ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;
return /*#__PURE__*/React.createElement(_tooltip.default, {
key: "copy",
title: copyTitle
}, /*#__PURE__*/React.createElement(_transButton.default, {
className: (0, _classnames.default)(`${prefixCls}-copy`, {
[`${prefixCls}-copy-success`]: copied,
[`${prefixCls}-copy-icon-only`]: iconOnly
}),
onClick: onCopy,
"aria-label": ariaLabel
}, copied ? (0, _util.getNode)(iconNodes[1], /*#__PURE__*/React.createElement(_CheckOutlined.default, null), true) : (0, _util.getNode)(iconNodes[0], loading ? /*#__PURE__*/React.createElement(_LoadingOutlined.default, null) : /*#__PURE__*/React.createElement(_CopyOutlined.default, null), true)));
}
;