@atlaskit/editor-plugin-text-color
Version:
Text color plugin for @atlaskit/editor-core
56 lines • 2.3 kB
JavaScript
/* RemoveColorMenuItem.tsx generated by @compiled/babel-plugin v0.39.1 */
import "./RemoveColorMenuItem.compiled.css";
import * as React from 'react';
import { ax, ix } from "@compiled/react/runtime";
import { useIntl } from 'react-intl';
import Button from '@atlaskit/button/new';
import { highlightMessages as messages } from '@atlaskit/editor-common/messages';
import { getInputMethodFromParentKeys } from '@atlaskit/editor-common/toolbar';
import { REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
import { useToolbarDropdownMenu } from '@atlaskit/editor-toolbar';
import { Text } from '@atlaskit/primitives/compiled';
var styles = {
removeColorButton: "_2rko12b0 _195gv77o _189ee4h9 _1dqonqa1 _1h6d1l7x _19pk12x7"
};
export var RemoveColorMenuItem = function RemoveColorMenuItem(_ref) {
var api = _ref.api,
parents = _ref.parents;
var _useIntl = useIntl(),
formatMessage = _useIntl.formatMessage;
var context = useToolbarDropdownMenu();
var closeMenu = context === null || context === void 0 ? void 0 : context.closeMenu;
var onClick = function onClick(event) {
var _api$textColor$shared;
if (!api) {
return;
}
var defaultColor = (_api$textColor$shared = api.textColor.sharedState.currentState()) === null || _api$textColor$shared === void 0 ? void 0 : _api$textColor$shared.defaultColor;
if (!defaultColor) {
return;
}
api.core.actions.execute(function (_ref2) {
var _api$highlight;
var tr = _ref2.tr;
api.textColor.commands.changeColor(defaultColor, getInputMethodFromParentKeys(parents))({
tr: tr
});
(_api$highlight = api.highlight) === null || _api$highlight === void 0 || _api$highlight.commands.changeColor({
color: REMOVE_HIGHLIGHT_COLOR,
inputMethod: getInputMethodFromParentKeys(parents)
})({
tr: tr
});
return tr;
});
closeMenu === null || closeMenu === void 0 || closeMenu(event);
};
return /*#__PURE__*/React.createElement("div", {
className: ax([styles.removeColorButton])
}, /*#__PURE__*/React.createElement(Button, {
shouldFitContainer: true,
appearance: "subtle",
onClick: onClick
}, /*#__PURE__*/React.createElement(Text, {
weight: "medium"
}, formatMessage(messages.removeColor))));
};