@atlaskit/editor-plugin-tasks-and-decisions
Version:
Tasks and decisions plugin for @atlaskit/editor-core
43 lines (42 loc) • 1.9 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 TaskIcon from '@atlaskit/icon/core/checkbox-checked';
import { insertTaskDecisionCommand } from '../../pm-plugins/insert-commands';
const ToolbarTask = ({
isDisabled,
isReducedSpacing,
intl: {
formatMessage
},
editorAPI,
editorView
}) => {
const label = formatMessage(messages.action);
const handleInsertTask = () => {
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)('taskList')(editorView.state, editorView.dispatch);
return true;
};
return /*#__PURE__*/React.createElement(ToolbarButton, {
buttonId: TOOLBAR_BUTTON.TASK_LIST,
onClick: handleInsertTask,
disabled: isDisabled,
spacing: isReducedSpacing ? 'none' : 'default',
title: `${label} []`,
iconBefore: /*#__PURE__*/React.createElement(TaskIcon, {
label: label
})
});
};
// eslint-disable-next-line @typescript-eslint/ban-types
const _default_1 = injectIntl(ToolbarTask);
export default _default_1;