UNPKG

@firecms/core

Version:

Awesome Firebase/Firestore-based headless open-source CMS

25 lines (21 loc) 793 B
import { keymap } from "prosemirror-keymap"; export const customKeymapPlugin = () => { return keymap({ "Mod-a": (state, dispatch) => { const { tr } = state; const startSelectionPos = tr.selection.from; const endSelectionPos = tr.selection.to; const startNodePos = tr.selection.$from.start(); const endNodePos = tr.selection.$to.end(); const isCurrentTextSelectionNotExtendedToNodeBoundaries = startSelectionPos > startNodePos || endSelectionPos < endNodePos; if (isCurrentTextSelectionNotExtendedToNodeBoundaries) { if (dispatch) { dispatch(tr.setSelection((state.selection.constructor as any).create(state.doc, startNodePos, endNodePos))); } return true; } return false; }, }); };