@atlaskit/editor-plugin-status
Version:
Status plugin for @atlaskit/editor-core
41 lines (39 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
exports.keymapPlugin = keymapPlugin;
var _keymaps = require("@atlaskit/editor-common/keymaps");
var _keymap = require("@atlaskit/editor-prosemirror/keymap");
var _state = require("@atlaskit/editor-prosemirror/state");
var _actions = require("./actions");
var _pluginKey = require("./plugin-key");
var _utils = require("./utils");
function keymapPlugin() {
var list = {};
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
(0, _keymaps.bindKeymapWithCommand)(_keymaps.enter.common, consumeKeyEvent, list);
(0, _keymaps.bindKeymapWithCommand)(
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
_keymaps.tab.common, function (state, dispatch) {
var statusPluginState = _pluginKey.pluginKey.getState(state);
var isStatusNode = state.selection instanceof _state.NodeSelection ? state.selection.node.type === state.schema.nodes.status : false;
if (!isStatusNode) {
return false;
}
if (statusPluginState !== null && statusPluginState !== void 0 && statusPluginState.showStatusPickerAt) {
(0, _actions.setFocusOnStatusInput)()(state, dispatch);
return true;
}
return false;
}, list);
return (0, _keymap.keymap)(list);
}
// consume event to prevent status node problems with positioning and selection
var consumeKeyEvent = function consumeKeyEvent(state, _dispatch) {
return !!(0, _utils.mayGetStatusAtSelection)(state.tr.selection);
};
var _default = exports.default = keymapPlugin;