UNPKG

@atlaskit/editor-plugin-paste

Version:

Paste plugin for @atlaskit/editor-core

61 lines 2.55 kB
import React from 'react'; import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments'; import { createPlugin } from './pm-plugins/main'; import { createPlugin as createMoveAnalyticsPlugin } from './pm-plugins/move-analytics/plugin'; import { pluginKey } from './pm-plugins/plugin-factory'; import { Flag } from './ui/Flag'; export var 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 createPlugin(schema, dispatchAnalyticsEvent, dispatch, featureFlags, api, getIntl, cardOptions, sanitizePrivateContent, providerFactory, pasteWarningOptions); } }, { name: 'moveAnalyticsPlugin', plugin: function plugin(_ref4) { var dispatch = _ref4.dispatch; return isFullPage ? createMoveAnalyticsPlugin(dispatch, editorAnalyticsAPI) : undefined; } }]; }, contentComponent: !editorExperiment('platform_synced_block', true) ? undefined : function () { if (!pasteWarningOptions) { return null; } return /*#__PURE__*/React.createElement(Flag, { api: api }); }, getSharedState: function getSharedState(editorState) { if (!editorState) { return { activeFlag: null, lastContentPasted: null }; } var pluginState = pluginKey.getState(editorState); return { activeFlag: pluginState.activeFlag, lastContentPasted: pluginState.lastContentPasted }; } }; };