UNPKG

@atlaskit/editor-plugin-card

Version:

Card plugin for @atlaskit/editor-core

72 lines (71 loc) • 3.82 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.modalTypeToComponentMap = exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _useSharedPluginStateWithSelector = require("@atlaskit/editor-common/useSharedPluginStateWithSelector"); var _assetsConfigModalWithWrappers = require("@atlaskit/link-datasource/assets-config-modal-with-wrappers"); var _assetsModal = require("@atlaskit/link-datasource/assets-modal"); var _confluenceSearchConfigModalWithWrappers = require("@atlaskit/link-datasource/confluence-search-config-modal-with-wrappers"); var _confluenceSearchModal = require("@atlaskit/link-datasource/confluence-search-modal"); var _jiraIssuesConfigModalWithWrappers = require("@atlaskit/link-datasource/jira-issues-config-modal-with-wrappers"); var _jiraIssuesModal = require("@atlaskit/link-datasource/jira-issues-modal"); var _editorSmartCardProviderValueGuard = require("@atlaskit/link-provider/editor-smart-card-provider-value-guard"); var _useSmartLinkContext = require("@atlaskit/link-provider/use-smart-link-context"); var _datasourceErrorBoundary = require("../datasourceErrorBoundary"); var _index = require("./index"); var selector = function selector(states) { var _states$cardState, _states$cardState2; return { showDatasourceModal: (_states$cardState = states.cardState) === null || _states$cardState === void 0 ? void 0 : _states$cardState.showDatasourceModal, datasourceModalType: (_states$cardState2 = states.cardState) === null || _states$cardState2 === void 0 ? void 0 : _states$cardState2.datasourceModalType }; }; var ModalWithState = function ModalWithState(_ref) { var api = _ref.api, editorView = _ref.editorView; var cardContext = (0, _useSmartLinkContext.useSmartLinkContext)(); var _useSharedPluginState = (0, _useSharedPluginStateWithSelector.useSharedPluginStateWithSelector)(api, ['card'], selector), showDatasourceModal = _useSharedPluginState.showDatasourceModal, datasourceModalType = _useSharedPluginState.datasourceModalType; if (!showDatasourceModal || !datasourceModalType) { return null; } var _modalTypeToComponent = modalTypeToComponentMap[datasourceModalType], datasourceId = _modalTypeToComponent.datasourceId, componentType = _modalTypeToComponent.componentType; return /*#__PURE__*/_react.default.createElement(_datasourceErrorBoundary.DatasourceErrorBoundary, { view: editorView, datasourceModalType: datasourceModalType }, /*#__PURE__*/_react.default.createElement(_index.DatasourceModal, { view: editorView, cardContext: cardContext, datasourceId: datasourceId, componentType: componentType })); }; var SafeModalWithState = /*#__PURE__*/_react.default.memo(function (_ref2) { var api = _ref2.api, editorView = _ref2.editorView; return /*#__PURE__*/_react.default.createElement(_editorSmartCardProviderValueGuard.EditorSmartCardProviderValueGuard, null, /*#__PURE__*/_react.default.createElement(ModalWithState, { api: api, editorView: editorView })); }); var modalTypeToComponentMap = exports.modalTypeToComponentMap = { jira: { componentType: _jiraIssuesConfigModalWithWrappers.JiraIssuesConfigModalWithWrappers, datasourceId: _jiraIssuesModal.JIRA_LIST_OF_LINKS_DATASOURCE_ID }, 'confluence-search': { componentType: _confluenceSearchConfigModalWithWrappers.ConfluenceSearchConfigModalWithWrappers, datasourceId: _confluenceSearchModal.CONFLUENCE_SEARCH_DATASOURCE_ID }, assets: { componentType: _assetsConfigModalWithWrappers.AssetsConfigModalWithWrappers, datasourceId: _assetsModal.ASSETS_LIST_OF_LINKS_DATASOURCE_ID } }; var _default = exports.default = SafeModalWithState;