UNPKG

@atlaskit/editor-plugin-undo-redo

Version:

Undo redo plugin for @atlaskit/editor-core

33 lines (32 loc) 1.74 kB
import { bindKeymapWithCommand, findKeyMapForBrowser, isCapsLockOnAndModifyKeyboardEvent, redo, redoAlt, undo } from '@atlaskit/editor-common/keymaps'; import { SafePlugin } from '@atlaskit/editor-common/safe-plugin'; import { keydownHandler } from '@atlaskit/editor-prosemirror/keymap'; import { redoFromKeyboardWithAnalytics, undoFromKeyboardWithAnalytics } from './commands'; /** * * @param api * @example */ export function keymapPlugin(api) { var _api$analytics, _api$analytics2, _api$analytics3; const list = {}; bindKeymapWithCommand( // Ignored via go/ees005 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion findKeyMapForBrowser(redo), redoFromKeyboardWithAnalytics(api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions), list); bindKeymapWithCommand( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion findKeyMapForBrowser(redoAlt), redoFromKeyboardWithAnalytics(api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions), list); bindKeymapWithCommand( // Ignored via go/ees005 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion undo.common, undoFromKeyboardWithAnalytics(api === null || api === void 0 ? void 0 : (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions), list); return new SafePlugin({ props: { handleKeyDown(view, event) { const keyboardEvent = isCapsLockOnAndModifyKeyboardEvent(event); return keydownHandler(list)(view, keyboardEvent); } } }); }