CopyBtn.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. "use strict";
  2. "use client";
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  5. Object.defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.default = void 0;
  9. var React = _interopRequireWildcard(require("react"));
  10. var _CheckOutlined = _interopRequireDefault(require("@ant-design/icons/CheckOutlined"));
  11. var _CopyOutlined = _interopRequireDefault(require("@ant-design/icons/CopyOutlined"));
  12. var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons/LoadingOutlined"));
  13. var _classnames = _interopRequireDefault(require("classnames"));
  14. var _tooltip = _interopRequireDefault(require("../../tooltip"));
  15. var _util = require("./util");
  16. const CopyBtn = ({
  17. prefixCls,
  18. copied,
  19. locale,
  20. iconOnly,
  21. tooltips,
  22. icon,
  23. tabIndex,
  24. onCopy,
  25. loading: btnLoading
  26. }) => {
  27. const tooltipNodes = (0, _util.toList)(tooltips);
  28. const iconNodes = (0, _util.toList)(icon);
  29. const {
  30. copied: copiedText,
  31. copy: copyText
  32. } = locale !== null && locale !== void 0 ? locale : {};
  33. const systemStr = copied ? copiedText : copyText;
  34. const copyTitle = (0, _util.getNode)(tooltipNodes[copied ? 1 : 0], systemStr);
  35. const ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;
  36. return /*#__PURE__*/React.createElement(_tooltip.default, {
  37. title: copyTitle
  38. }, /*#__PURE__*/React.createElement("button", {
  39. type: "button",
  40. className: (0, _classnames.default)(`${prefixCls}-copy`, {
  41. [`${prefixCls}-copy-success`]: copied,
  42. [`${prefixCls}-copy-icon-only`]: iconOnly
  43. }),
  44. onClick: onCopy,
  45. "aria-label": ariaLabel,
  46. tabIndex: tabIndex
  47. }, copied ? (0, _util.getNode)(iconNodes[1], /*#__PURE__*/React.createElement(_CheckOutlined.default, null), true) : (0, _util.getNode)(iconNodes[0], btnLoading ? /*#__PURE__*/React.createElement(_LoadingOutlined.default, null) : /*#__PURE__*/React.createElement(_CopyOutlined.default, null), true)));
  48. };
  49. var _default = exports.default = CopyBtn;