UNPKG

@atlaskit/editor-plugin-card

Version:

Card plugin for @atlaskit/editor-core

45 lines (44 loc) 2.64 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenLinkToolbarButton = void 0; var _react = _interopRequireWildcard(require("react")); var _ui = require("@atlaskit/editor-common/ui"); var _linkExternal = _interopRequireDefault(require("@atlaskit/icon/core/link-external")); var _useSmartLinkDestinationUrl = require("@atlaskit/smart-card/hook/use-smart-link-destination-url"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } /** * Toolbar button that opens a Smart Link URL in a new tab, with the XPC-wrapped destination URL. * * This component is only rendered when `fg('platform_smartlink_xpc_url_wrapping')` is ON. * It wraps `FloatingToolbarButton` and replaces `href` with the resolved destination URL * (cross-product analytics parameters appended), falling back to the raw `url` when the * link is unresolved or not a first-party Atlassian link. */ var OpenLinkToolbarButton = exports.OpenLinkToolbarButton = function OpenLinkToolbarButton(_ref) { var url = _ref.url, areAnyNewToolbarFlagsEnabled = _ref.areAnyNewToolbarFlagsEnabled, editorView = _ref.editorView, onClick = _ref.onClick, title = _ref.title; var destinationUrl = (0, _useSmartLinkDestinationUrl.useSmartLinkDestinationUrl)(url); var handleClick = (0, _react.useCallback)(function () { onClick(editorView.state, editorView.dispatch); }, [editorView, onClick]); return /*#__PURE__*/_react.default.createElement(_ui.FloatingToolbarButton // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 , { className: "hyperlink-open-link", title: title, icon: /*#__PURE__*/_react.default.createElement(_linkExternal.default, { label: "" }), href: destinationUrl, target: "_blank", onClick: handleClick, areAnyNewToolbarFlagsEnabled: areAnyNewToolbarFlagsEnabled }); };