UNPKG

@atlaskit/editor-plugin-text-formatting

Version:

Text-formatting plugin for @atlaskit/editor-core

52 lines (51 loc) 2.45 kB
/** * @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]); };