@atlaskit/editor-plugin-card
Version:
Card plugin for @atlaskit/editor-core
57 lines • 3.86 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
import React, { useCallback, useMemo } from 'react';
import { useIntl } from 'react-intl';
import { messages } from '@atlaskit/editor-common/messages/card';
import { ConfluenceAttributionIcon } from '@atlaskit/editor-common/quick-insert/confluence-attribution-icon';
import { JiraAttributionIcon } from '@atlaskit/editor-common/quick-insert/jira-attribution-icon';
import { QuickInsertMenuItem } from '@atlaskit/editor-common/quick-insert/menu-item';
import { messages as quickInsertMessages } from '@atlaskit/editor-common/quick-insert/messages';
import { useQuickInsertContext } from '@atlaskit/editor-common/quick-insert/use-quick-insert-context';
import AssetsIcon from '@atlaskit/icon/core/assets';
import PagesIcon from '@atlaskit/icon/core/pages';
import WorkItemsIcon from '@atlaskit/icon/core/work-items';
import { fg } from '@atlaskit/platform-feature-flags/fg';
import { showDatasourceModal } from '../../pm-plugins/actions';
export var DatasourceQuickInsertMenuItem = function DatasourceQuickInsertMenuItem(_ref) {
var previewImageUrls = _ref.previewImageUrls,
type = _ref.type;
var _useIntl = useIntl(),
formatMessage = _useIntl.formatMessage;
var _useQuickInsertContex = useQuickInsertContext(),
isOffline = _useQuickInsertContex.isOffline;
var isJira = type === 'jira';
var isConfluenceSearch = type === 'confluence-search';
var description = formatMessage(isJira ? fg('confluence-issue-terminology-refresh') ? messages.datasourceJiraIssueDescriptionIssueTermRefresh : messages.datasourceJiraIssueDescription : isConfluenceSearch ? messages.datasourceConfluenceSearchDescription : messages.datasourceAssetsObjectsDescription);
var preview = useMemo(function () {
return previewImageUrls ? {
image: previewImageUrls,
attribution: _objectSpread({
name: formatMessage(isJira ? quickInsertMessages.previewAttributionJira : isConfluenceSearch ? quickInsertMessages.previewAttributionConfluence : quickInsertMessages.previewAttributionAssets)
}, (isJira || isConfluenceSearch) && {
icon: isJira ? JiraAttributionIcon : ConfluenceAttributionIcon
})
} : undefined;
}, [formatMessage, isConfluenceSearch, isJira, previewImageUrls]);
var onSelect = useCallback(function (_ref2) {
var insert = _ref2.insert;
var tr = insert(undefined);
showDatasourceModal(type)(tr);
return tr;
}, [type]);
return /*#__PURE__*/React.createElement(QuickInsertMenuItem, {
description: description,
iconBefore: isJira ? /*#__PURE__*/React.createElement(WorkItemsIcon, {
label: ""
}) : isConfluenceSearch ? /*#__PURE__*/React.createElement(PagesIcon, {
label: ""
}) : /*#__PURE__*/React.createElement(AssetsIcon, {
label: ""
}),
isDisabled: isOffline,
onSelect: onSelect,
preview: preview,
title: formatMessage(isJira ? fg('confluence-issue-terminology-refresh') ? messages.datasourceJiraIssueIssueTermRefresh : messages.datasourceJiraIssue : isConfluenceSearch ? messages.datasourceConfluenceList : messages.datasourceAssetsObjectsGeneralAvailability)
});
};