@atlaskit/editor-plugin-tasks-and-decisions
Version:
Tasks and decisions plugin for @atlaskit/editor-core
44 lines (43 loc) • 1.97 kB
JavaScript
import React from 'react';
import { injectIntl } from 'react-intl';
import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages';
import { TOOLBAR_BUTTON, ToolbarButton } from '@atlaskit/editor-common/ui-menu';
import DecisionIcon from '@atlaskit/icon/core/decision';
import { insertTaskDecisionCommand } from '../../pm-plugins/insert-commands';
const ToolbarDecision = ({
isDisabled,
isReducedSpacing,
intl: {
formatMessage
},
editorView,
editorAPI
}) => {
const label = formatMessage(messages.decision);
const handleInsertDecision = () => {
var _editorAPI$analytics;
if (!editorView) {
return false;
}
const getContextIdentifier = () => {
var _editorAPI$contextIde, _editorAPI$contextIde2;
return editorAPI === null || editorAPI === void 0 ? void 0 : (_editorAPI$contextIde = editorAPI.contextIdentifier) === null || _editorAPI$contextIde === void 0 ? void 0 : (_editorAPI$contextIde2 = _editorAPI$contextIde.sharedState.currentState()) === null || _editorAPI$contextIde2 === void 0 ? void 0 : _editorAPI$contextIde2.contextIdentifierProvider;
};
insertTaskDecisionCommand(editorAPI === null || editorAPI === void 0 ? void 0 : (_editorAPI$analytics = editorAPI.analytics) === null || _editorAPI$analytics === void 0 ? void 0 : _editorAPI$analytics.actions, getContextIdentifier)('decisionList')(editorView.state, editorView.dispatch);
return true;
};
return /*#__PURE__*/React.createElement(ToolbarButton, {
buttonId: TOOLBAR_BUTTON.DECISION_LIST,
onClick: handleInsertDecision,
disabled: isDisabled,
spacing: isReducedSpacing ? 'none' : 'default',
title: `${label} <>`,
"aria-keyshortcuts": "Shift+, Shift+. space",
iconBefore: /*#__PURE__*/React.createElement(DecisionIcon, {
label: label
})
});
};
// eslint-disable-next-line @typescript-eslint/ban-types
const _default_1 = injectIntl(ToolbarDecision);
export default _default_1;