@atlaskit/editor-plugin-text-formatting
Version:
Text-formatting plugin for @atlaskit/editor-core
52 lines (51 loc) • 2.45 kB
JavaScript
/**
* @jsxRuntime classic
* @jsx jsx
*/
import { useCallback, useMemo } from 'react';
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
import { jsx } from '@emotion/react';
import { clearFormatting as clearFormattingKeymap, tooltip } from '@atlaskit/editor-common/keymaps';
import { toolbarMessages } from '@atlaskit/editor-common/messages';
import { shortcutStyle } from '@atlaskit/editor-shared-styles/shortcut';
import TableCellClearIcon from '@atlaskit/icon/core/table-cell-clear';
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
import { clearFormattingWithAnalytics } from '../../../editor-commands/clear-formatting';
import { getInputMethod } from '../input-method-utils';
export var useClearIcon = function useClearIcon(_ref) {
var intl = _ref.intl,
formattingPluginInitialised = _ref.formattingPluginInitialised,
formattingPresent = _ref.formattingIsPresent,
editorAnalyticsAPI = _ref.editorAnalyticsAPI,
toolbarType = _ref.toolbarType;
var isPluginAvailable = Boolean(formattingPluginInitialised);
var formattingIsPresent = Boolean(formattingPresent);
var clearFormattingLabel = intl.formatMessage(toolbarMessages.clearFormatting);
var clearFormattingToolbar = useCallback(function (state, dispatch) {
return clearFormattingWithAnalytics(getInputMethod(toolbarType), editorAnalyticsAPI)(state, dispatch);
}, [editorAnalyticsAPI, toolbarType]);
return useMemo(function () {
if (!isPluginAvailable) {
return null;
}
return {
key: 'clearFormatting',
command: clearFormattingToolbar,
content: clearFormattingLabel,
elemBefore: editorExperiment('platform_editor_controls', 'variant1') ? jsx(TableCellClearIcon, {
label: ""
}) : undefined,
elemAfter:
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
jsx("div", {
css: shortcutStyle
}, tooltip(clearFormattingKeymap)),
value: {
name: 'clearFormatting'
},
isActive: false,
isDisabled: !formattingIsPresent,
'aria-label': clearFormattingKeymap ? tooltip(clearFormattingKeymap, String(clearFormattingLabel)) : String(clearFormattingLabel)
};
}, [isPluginAvailable, clearFormattingToolbar, clearFormattingLabel, formattingIsPresent]);
};