UNPKG

@atlaskit/renderer

Version:
81 lines (78 loc) 3.73 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button")); var _messages = require("@atlaskit/editor-common/messages"); var _copy = _interopRequireDefault(require("@atlaskit/icon/core/copy")); var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip")); var _react = require("@emotion/react"); var _react2 = require("react"); var _reactIntl = require("react-intl"); var _analyticsContext = _interopRequireDefault(require("../../../../analytics/analyticsContext")); var _enums = require("../../../../analytics/enums"); var _clipboard = require("../../../utils/clipboard"); /** * @jsxRuntime classic * @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766 var CopyButton = function CopyButton(_ref) { var content = _ref.content, intl = _ref.intl; var _useState = (0, _react2.useState)(intl.formatMessage(_messages.codeBlockButtonMessages.copyCodeToClipboard)), _useState2 = (0, _slicedToArray2.default)(_useState, 2), tooltip = _useState2[0], setTooltip = _useState2[1]; var _useState3 = (0, _react2.useState)('copy-to-clipboard'), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), className = _useState4[0], setClassName = _useState4[1]; var onMouseLeave = function onMouseLeave() { setTooltip(intl.formatMessage(_messages.codeBlockButtonMessages.copyCodeToClipboard)); setClassName('copy-to-clipboard'); }; return (0, _react.jsx)(_analyticsContext.default.Consumer, null, function (_ref2) { var fireAnalyticsEvent = _ref2.fireAnalyticsEvent; return (0, _react.jsx)("span", null, (0, _react.jsx)(_tooltip.default, { content: tooltip, hideTooltipOnClick: false, position: "top" }, (0, _react.jsx)("div", { onMouseLeave: onMouseLeave, onBlur: onMouseLeave }, (0, _react.jsx)(_customThemeButton.default, { appearance: "subtle", "aria-haspopup": true, "aria-label": tooltip // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 , className: className, iconBefore: (0, _react.jsx)(_copy.default, { label: tooltip }) // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , onClick: function onClick(event) { fireAnalyticsEvent({ // @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.MEDIA_LINK_TRANSFORMED | ACTION.STARTED | ACTION.TOGGLE_EXPAND | ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED | ACTION.VISITED | ACTION.RENDERED | ACTION.INVALID_PROSEMIRROR_DOCUMENT | ACTION.CRASHED | ... 6 more ... | AnnotationActionType'. // This error was introduced after upgrading to TypeScript 5 action: _enums.ACTION.CLICKED, actionSubject: _enums.ACTION_SUBJECT.BUTTON, actionSubjectId: _enums.ACTION_SUBJECT_ID.CODEBLOCK_COPY, eventType: _enums.EVENT_TYPE.UI }); (0, _clipboard.copyTextToClipboard)(content); setTooltip(intl.formatMessage(_messages.codeBlockButtonMessages.copiedCodeToClipboard)); setClassName('copy-to-clipboard clicked'); event.stopPropagation(); }, spacing: "compact" })))); }); }; var _default_1 = (0, _reactIntl.injectIntl)(CopyButton); var _default = exports.default = _default_1;