From f6b070783a7da4c768a9ddcb6ad25ac4bccf7d4d Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Sun, 10 May 2020 16:04:46 +0300 Subject: [PATCH] set meta for backspace --- .../src/ShortCutsService/ShortCuts.js | 20 ++++++++++-- .../track-changes/trackedTransaction.js | 31 +++++++++++-------- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js b/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js index 63f28ab0a..5309a5d50 100644 --- a/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js +++ b/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js @@ -15,9 +15,25 @@ import { setBlockType, chainCommands, exitCode, - selectParentNode + selectParentNode, + joinBackward, + selectNodeBackward, + deleteSelection } from "prosemirror-commands"; +const backSpace = chainCommands( + deleteSelection, + joinBackward, + selectNodeBackward +); + +const addInputRulebackSpace = (state, dispatch, view) => + backSpace( + state, + tr => dispatch(tr.setMeta("inputType", "deleteContentBackward")), + view + ); + @injectable() class ShortCuts { constructor(plugins, schema) { @@ -65,7 +81,7 @@ class ShortCuts { return { "Mod-z": undo, "Shift-Mod-z": redo, - Backspace: undoInputRule, + Backspace: addInputRulebackSpace, "Mod-y": redo, Escape: selectParentNode, "Mod-Enter": chainCommands(exitCode, this.insertBreak), diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js index 74f9aa347..ce0933097 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js +++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js @@ -64,26 +64,31 @@ const trackedTransaction = (tr, state, user) => { newTr.setMeta(tr.getMeta("uiEvent")); } - // if (tr.selectionSet) { - if ( - tr.selection instanceof TextSelection && - (tr.selection.from < state.selection.from || - tr.getMeta("inputType") === "deleteContentBackward") - ) { - const caretPos = map.map(tr.selection.from, -1); - newTr.setSelection(new TextSelection(newTr.doc.resolve(caretPos))); - } else { - const caretPos = map.map(tr.selection.from, -1); - newTr.setSelection(new TextSelection(newTr.doc.resolve(caretPos))); - // newTr.setSelection(tr.selection.map(newTr.doc, map)); + if (tr.selectionSet) { + if ( + tr.selection instanceof TextSelection && + (tr.selection.from < state.selection.from || + tr.getMeta("inputType") === "deleteContentBackward") + ) { + const caretPos = map.map(tr.selection.from, -1); + newTr.setSelection(new TextSelection(newTr.doc.resolve(caretPos))); + } else { + newTr.setSelection(tr.selection.map(newTr.doc, map)); + } } - // } if (tr.storedMarksSet) { newTr.setStoredMarks(tr.storedMarks); } if (tr.scrolledIntoView) { newTr.scrollIntoView(); } + if ( + tr.selection instanceof TextSelection && + tr.selection.from < state.selection.from + ) { + const caretPos = map.map(tr.selection.from, -1); + newTr.setSelection(new TextSelection(newTr.doc.resolve(caretPos))); + } return newTr; }; -- GitLab