@atlaskit/editor-plugin-card
Version:
Card plugin for @atlaskit/editor-core
72 lines (71 loc) • 3.82 kB
JavaScript
"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;