@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
78 lines (77 loc) • 3.62 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.HyperlinkAddToolbar = HyperlinkAddToolbar;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireDefault(require("react"));
var _analytics = require("../../../analytics");
var _providerFactory = require("../../../provider-factory");
var _EditorLinkPicker = require("../EditorLinkPicker");
var _HyperlinkAddToolbar = _interopRequireDefault(require("./HyperlinkAddToolbar"));
/**
* Wraps around the editor's onSubmit handler so that the plugin can interface with the link picker
*/
var onSubmitInterface = function onSubmitInterface(onSubmit) {
return function (_ref, analytic) {
var url = _ref.url,
title = _ref.title,
displayText = _ref.displayText,
rawUrl = _ref.rawUrl,
meta = _ref.meta;
onSubmit(url, title !== null && title !== void 0 ? title : rawUrl, displayText || undefined, meta.inputMethod === 'manual' ? _analytics.INPUT_METHOD.MANUAL : _analytics.INPUT_METHOD.TYPEAHEAD, analytic);
};
};
function HyperlinkAddToolbar(_ref2) {
var _ref2$linkPickerOptio = _ref2.linkPickerOptions,
linkPickerOptions = _ref2$linkPickerOptio === void 0 ? {} : _ref2$linkPickerOptio,
onSubmit = _ref2.onSubmit,
displayText = _ref2.displayText,
displayUrl = _ref2.displayUrl,
providerFactory = _ref2.providerFactory,
view = _ref2.view,
onCancel = _ref2.onCancel,
invokeMethod = _ref2.invokeMethod,
lpLinkPicker = _ref2.lpLinkPicker,
onClose = _ref2.onClose,
onEscapeCallback = _ref2.onEscapeCallback,
onClickAwayCallback = _ref2.onClickAwayCallback,
hyperlinkPluginState = _ref2.hyperlinkPluginState;
return /*#__PURE__*/_react.default.createElement(_providerFactory.WithProviders, {
providers: ['activityProvider', 'searchProvider'],
providerFactory: providerFactory,
renderNode: function renderNode(_ref3) {
var activityProvider = _ref3.activityProvider,
searchProvider = _ref3.searchProvider;
if (lpLinkPicker) {
return /*#__PURE__*/_react.default.createElement(_EditorLinkPicker.EditorLinkPicker, (0, _extends2.default)({
view: view,
invokeMethod: // Provide `invokeMethod` prop as preferred value (card plugin passes as prop) otherwise assume this
// is being used from inside the hyperlink plugin and use inputMethod from plugin state
invokeMethod !== null && invokeMethod !== void 0 ? invokeMethod : hyperlinkPluginState === null || hyperlinkPluginState === void 0 ? void 0 : hyperlinkPluginState.inputMethod,
editorAppearance: hyperlinkPluginState === null || hyperlinkPluginState === void 0 ? void 0 : hyperlinkPluginState.editorAppearance
}, linkPickerOptions, {
url: displayUrl,
displayText: displayText,
onSubmit: onSubmitInterface(onSubmit),
onCancel: onCancel,
onClose: onClose,
onEscapeCallback: onEscapeCallback,
onClickAwayCallback: onClickAwayCallback
}));
}
return /*#__PURE__*/_react.default.createElement(_HyperlinkAddToolbar.default, {
activityProvider: activityProvider,
searchProvider: searchProvider,
onSubmit: onSubmit,
displayText: displayText,
displayUrl: displayUrl,
pluginState: hyperlinkPluginState,
view: view,
onEscapeCallback: onEscapeCallback,
onClickAwayCallback: onClickAwayCallback
});
}
});
}