UNPKG

@atlaskit/editor-plugin-track-changes

Version:

ShowDiff plugin for @atlaskit/editor-core

31 lines (30 loc) 1.65 kB
import { getBrowserInfo } from '@atlaskit/editor-common/browser'; import { bindKeymapWithCommand, isCapsLockOnAndModifyKeyboardEvent, toggleViewChanges } from '@atlaskit/editor-common/keymaps'; import { SafePlugin } from '@atlaskit/editor-common/safe-plugin'; import { keydownHandler } from '@atlaskit/editor-prosemirror/keymap'; export function keymapPlugin(api) { var list = {}; var browser = getBrowserInfo(); // Exclude Firefox browser from keyboard shortcut if (!browser.gecko) { bindKeymapWithCommand( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion toggleViewChanges.common, function () { var _api$trackChanges, _api$trackChanges2; var isShowDiffAvailable = api === null || api === void 0 || (_api$trackChanges = api.trackChanges) === null || _api$trackChanges === void 0 || (_api$trackChanges = _api$trackChanges.sharedState.currentState()) === null || _api$trackChanges === void 0 ? void 0 : _api$trackChanges.isShowDiffAvailable; if (!isShowDiffAvailable) { return false; } var result = api === null || api === void 0 ? void 0 : api.core.actions.execute(api === null || api === void 0 || (_api$trackChanges2 = api.trackChanges) === null || _api$trackChanges2 === void 0 ? void 0 : _api$trackChanges2.commands.toggleChanges); return result !== null && result !== void 0 ? result : false; }, list); } return new SafePlugin({ props: { handleKeyDown: function handleKeyDown(view, event) { var keyboardEvent = isCapsLockOnAndModifyKeyboardEvent(event); return keydownHandler(list)(view, keyboardEvent); } } }); }