UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

108 lines (107 loc) 5.97 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ReactMediaGroupNode = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _react = _interopRequireDefault(require("react")); var _hooks = require("@atlaskit/editor-common/hooks"); var _providerFactory = require("@atlaskit/editor-common/provider-factory"); var _reactNodeView = _interopRequireDefault(require("@atlaskit/editor-common/react-node-view")); var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals"); var _useMediaProvider = require("../ui/hooks/useMediaProvider"); var _mediaGroupNext = require("./mediaGroupNext"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var selector = function selector(states) { var _states$editorDisable, _states$editorViewMod; return { editorDisabled: (_states$editorDisable = states.editorDisabledState) === null || _states$editorDisable === void 0 ? void 0 : _states$editorDisable.editorDisabled, editorViewMode: (_states$editorViewMod = states.editorViewModeState) === null || _states$editorViewMod === void 0 ? void 0 : _states$editorViewMod.mode }; }; function MediaGroupNodeViewInternal(_ref) { var renderFn = _ref.renderFn, pluginInjectionApi = _ref.pluginInjectionApi; var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(pluginInjectionApi, ['editorDisabled', 'editorViewMode'], selector), editorDisabled = _useSharedPluginState.editorDisabled, editorViewMode = _useSharedPluginState.editorViewMode; var mediaProvider = (0, _useMediaProvider.useMediaProvider)(pluginInjectionApi); return renderFn({ editorDisabled: editorDisabled, editorViewMode: editorViewMode, mediaProvider: mediaProvider }); } var MediaGroupNodeView = /*#__PURE__*/function (_ReactNodeView) { function MediaGroupNodeView() { (0, _classCallCheck2.default)(this, MediaGroupNodeView); return _callSuper(this, MediaGroupNodeView, arguments); } (0, _inherits2.default)(MediaGroupNodeView, _ReactNodeView); return (0, _createClass2.default)(MediaGroupNodeView, [{ key: "render", value: function render(props, forwardRef) { var _this = this; var providerFactory = props.providerFactory, mediaOptions = props.mediaOptions, pluginInjectionApi = props.pluginInjectionApi; var getPos = this.getPos; return /*#__PURE__*/_react.default.createElement(_providerFactory.WithProviders // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , { providers: ['contextIdentifierProvider'], providerFactory: providerFactory // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , renderNode: function renderNode(_ref2) { var contextIdentifierProvider = _ref2.contextIdentifierProvider; var renderFn = function renderFn(_ref3) { var mediaProviderFromState = _ref3.mediaProvider, editorDisabled = _ref3.editorDisabled, editorViewMode = _ref3.editorViewMode; var mediaProvider = mediaProviderFromState ? Promise.resolve(mediaProviderFromState) : undefined; if (!mediaProvider && !(0, _expValEquals.expValEquals)('platform_editor_media_vc_fixes', 'isEnabled', true)) { return null; } return /*#__PURE__*/_react.default.createElement(_mediaGroupNext.MediaGroupNext, { node: _this.node, getPos: getPos, view: _this.view, forwardRef: forwardRef, disabled: editorDisabled, allowLazyLoading: mediaOptions.allowLazyLoading, mediaProvider: mediaProvider, contextIdentifierProvider: contextIdentifierProvider, isCopyPasteEnabled: mediaOptions.isCopyPasteEnabled, anchorPos: _this.view.state.selection.$anchor.pos, headPos: _this.view.state.selection.$head.pos, mediaOptions: mediaOptions, editorViewMode: editorViewMode === 'view' }); }; return /*#__PURE__*/_react.default.createElement(MediaGroupNodeViewInternal, { renderFn: renderFn, pluginInjectionApi: pluginInjectionApi }); } }); } }]); }(_reactNodeView.default); var ReactMediaGroupNode = exports.ReactMediaGroupNode = function ReactMediaGroupNode(portalProviderAPI, eventDispatcher, providerFactory) { var mediaOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; var pluginInjectionApi = arguments.length > 4 ? arguments[4] : undefined; return function (node, view, getPos) { return new MediaGroupNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, { providerFactory: providerFactory, mediaOptions: mediaOptions, pluginInjectionApi: pluginInjectionApi }).init(); }; };