@atlaskit/editor-plugin-paste
Version:
Paste plugin for @atlaskit/editor-core
68 lines (67 loc) • 2.81 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.pastePlugin = void 0;
var _react = _interopRequireDefault(require("react"));
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
var _main = require("./pm-plugins/main");
var _plugin = require("./pm-plugins/move-analytics/plugin");
var _pluginFactory = require("./pm-plugins/plugin-factory");
var _Flag = require("./ui/Flag");
var pastePlugin = exports.pastePlugin = function pastePlugin(_ref) {
var _api$featureFlags, _api$analytics;
var config = _ref.config,
api = _ref.api;
var _ref2 = config !== null && config !== void 0 ? config : {},
cardOptions = _ref2.cardOptions,
sanitizePrivateContent = _ref2.sanitizePrivateContent,
isFullPage = _ref2.isFullPage,
pasteWarningOptions = _ref2.pasteWarningOptions;
var featureFlags = (api === null || api === void 0 || (_api$featureFlags = api.featureFlags) === null || _api$featureFlags === void 0 ? void 0 : _api$featureFlags.sharedState.currentState()) || {};
var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
return {
name: 'paste',
pmPlugins: function pmPlugins() {
return [{
name: 'paste',
plugin: function plugin(_ref3) {
var schema = _ref3.schema,
providerFactory = _ref3.providerFactory,
dispatchAnalyticsEvent = _ref3.dispatchAnalyticsEvent,
dispatch = _ref3.dispatch,
getIntl = _ref3.getIntl;
return (0, _main.createPlugin)(schema, dispatchAnalyticsEvent, dispatch, featureFlags, api, getIntl, cardOptions, sanitizePrivateContent, providerFactory, pasteWarningOptions);
}
}, {
name: 'moveAnalyticsPlugin',
plugin: function plugin(_ref4) {
var dispatch = _ref4.dispatch;
return isFullPage ? (0, _plugin.createPlugin)(dispatch, editorAnalyticsAPI) : undefined;
}
}];
},
contentComponent: !(0, _experiments.editorExperiment)('platform_synced_block', true) ? undefined : function () {
if (!pasteWarningOptions) {
return null;
}
return /*#__PURE__*/_react.default.createElement(_Flag.Flag, {
api: api
});
},
getSharedState: function getSharedState(editorState) {
if (!editorState) {
return {
activeFlag: null,
lastContentPasted: null
};
}
var pluginState = _pluginFactory.pluginKey.getState(editorState);
return {
activeFlag: pluginState.activeFlag,
lastContentPasted: pluginState.lastContentPasted
};
}
};
};