@atlaskit/editor-plugin-text-formatting
Version:
Text-formatting plugin for @atlaskit/editor-core
60 lines (57 loc) • 2.78 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useClearIcon = void 0;
var _react = require("react");
var _react2 = require("@emotion/react");
var _keymaps = require("@atlaskit/editor-common/keymaps");
var _messages = require("@atlaskit/editor-common/messages");
var _shortcut = require("@atlaskit/editor-shared-styles/shortcut");
var _tableCellClear = _interopRequireDefault(require("@atlaskit/icon/core/table-cell-clear"));
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
var _clearFormatting = require("../../../editor-commands/clear-formatting");
var _inputMethodUtils = require("../input-method-utils");
/**
* @jsxRuntime classic
* @jsx jsx
*/
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
var useClearIcon = exports.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(_messages.toolbarMessages.clearFormatting);
var clearFormattingToolbar = (0, _react.useCallback)(function (state, dispatch) {
return (0, _clearFormatting.clearFormattingWithAnalytics)((0, _inputMethodUtils.getInputMethod)(toolbarType), editorAnalyticsAPI)(state, dispatch);
}, [editorAnalyticsAPI, toolbarType]);
return (0, _react.useMemo)(function () {
if (!isPluginAvailable) {
return null;
}
return {
key: 'clearFormatting',
command: clearFormattingToolbar,
content: clearFormattingLabel,
elemBefore: (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? (0, _react2.jsx)(_tableCellClear.default, {
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
(0, _react2.jsx)("div", {
css: _shortcut.shortcutStyle
}, (0, _keymaps.tooltip)(_keymaps.clearFormatting)),
value: {
name: 'clearFormatting'
},
isActive: false,
isDisabled: !formattingIsPresent,
'aria-label': _keymaps.clearFormatting ? (0, _keymaps.tooltip)(_keymaps.clearFormatting, String(clearFormattingLabel)) : String(clearFormattingLabel)
};
}, [isPluginAvailable, clearFormattingToolbar, clearFormattingLabel, formattingIsPresent]);
};