UNPKG

@atlaskit/editor-plugin-undo-redo

Version:

Undo redo plugin for @atlaskit/editor-core

101 lines (97 loc) 4.88 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.ToolbarUndoRedo = void 0; var _react = require("@emotion/react"); var _reactIntl = require("react-intl"); var _hooks = require("@atlaskit/editor-common/hooks"); var _keymaps = require("@atlaskit/editor-common/keymaps"); var _messages = require("@atlaskit/editor-common/messages"); var _styles = require("@atlaskit/editor-common/styles"); var _uiMenu = require("@atlaskit/editor-common/ui-menu"); var _redo = _interopRequireDefault(require("@atlaskit/icon/core/redo")); var _undo = _interopRequireDefault(require("@atlaskit/icon/core/undo")); var _commands = require("../../pm-plugins/commands"); var _utils = require("../../pm-plugins/utils"); /** * @jsxRuntime classic * @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports var ToolbarUndoRedo = exports.ToolbarUndoRedo = function ToolbarUndoRedo(_ref) { var disabled = _ref.disabled, isReducedSpacing = _ref.isReducedSpacing, editorView = _ref.editorView, api = _ref.api, formatMessage = _ref.intl.formatMessage; var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['history'], function (states) { var _states$historyState, _states$historyState2; return { canUndo: (_states$historyState = states.historyState) === null || _states$historyState === void 0 ? void 0 : _states$historyState.canUndo, canRedo: (_states$historyState2 = states.historyState) === null || _states$historyState2 === void 0 ? void 0 : _states$historyState2.canRedo }; }), canRedo = _useSharedPluginState.canRedo, canUndo = _useSharedPluginState.canUndo; var handleUndo = function handleUndo() { var _api$analytics; (0, _utils.forceFocus)(editorView, api)((0, _commands.undoFromToolbarWithAnalytics)(api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions)); }; var handleRedo = function handleRedo() { var _api$analytics2; (0, _utils.forceFocus)(editorView, api)((0, _commands.redoFromToolbarWithAnalytics)(api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions)); }; var labelUndo = formatMessage(_messages.undoRedoMessages.undo); var labelRedo = formatMessage(_messages.undoRedoMessages.redo); return ( // 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, _react.jsx)("span", { css: // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values _styles.buttonGroupStyle }, (0, _react.jsx)(_uiMenu.ToolbarButton, { buttonId: _uiMenu.TOOLBAR_BUTTON.UNDO, spacing: isReducedSpacing ? 'none' : 'default', onClick: handleUndo, disabled: !canUndo || disabled, "aria-label": (0, _keymaps.tooltip)(_keymaps.undo, labelUndo), "aria-keyshortcuts": (0, _keymaps.getAriaKeyshortcuts)(_keymaps.undo), title: (0, _react.jsx)(_keymaps.ToolTipContent, { description: labelUndo, keymap: _keymaps.undo }), iconBefore: (0, _react.jsx)(_undo.default, { label: "", color: "currentColor", spacing: "spacious" }), testId: "ak-editor-toolbar-button-undo" }), (0, _react.jsx)(_uiMenu.ToolbarButton, { spacing: isReducedSpacing ? 'none' : 'default', buttonId: _uiMenu.TOOLBAR_BUTTON.REDO, onClick: handleRedo, disabled: !canRedo || disabled, title: (0, _react.jsx)(_keymaps.ToolTipContent, { description: labelRedo, keymap: _keymaps.redoAlt }), iconBefore: (0, _react.jsx)(_redo.default, { label: "", color: "currentColor", spacing: "spacious" }), testId: "ak-editor-toolbar-button-redo", "aria-label": (0, _keymaps.tooltip)(_keymaps.redoAlt, labelRedo), "aria-keyshortcuts": (0, _keymaps.getAriaKeyshortcuts)(_keymaps.redoAlt) }), !(api !== null && api !== void 0 && api.primaryToolbar) && /* eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage */ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766 (0, _react.jsx)("span", { css: _styles.separatorStyles })) ); }; // eslint-disable-next-line @typescript-eslint/ban-types var _default_1 = (0, _reactIntl.injectIntl)(ToolbarUndoRedo); var _default = exports.default = _default_1;