@atlaskit/editor-plugin-card
Version:
Card plugin for @atlaskit/editor-core
45 lines (44 loc) • 2.64 kB
JavaScript
;
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
});
};