From 90f04982651605043e4cf09754572a19214bc7ec Mon Sep 17 00:00:00 2001 From: BrianHung Date: Wed, 8 Apr 2020 03:17:59 -0700 Subject: [PATCH] Change registerPlugin to add plugin after Extensions plugins This commit changes `registerPlugin` by 1. adding the new plugin to `this.plugins` and 2. updating `this.plugins` within `this.state.plugins` by splicing with the new `this.plugins` length. Previously, new plugins were simply added to the end of `this.state.plugins` and were not appended to `this.plugins`. By placing new plugins at this new location within `this.state.plugins`, we prioritize registered plugins over default ProseMirror plugins such as `keymap(baseKeymap)`. This will allow new plugins to have precedence over props such as `handleKeyDown`. --- packages/tiptap/src/Editor.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/tiptap/src/Editor.js b/packages/tiptap/src/Editor.js index 1e138b68..fe31a117 100644 --- a/packages/tiptap/src/Editor.js +++ b/packages/tiptap/src/Editor.js @@ -492,9 +492,9 @@ export default class Editor extends Emitter { return } - const newState = this.state.reconfigure({ - plugins: this.state.plugins.concat([plugin]), - }) + this.plugins.push(plugin); + this.state.plugins.splice(this.plugins.length, 0, plugin); + const newState = this.state.reconfigure({plugins: this.state.plugins}); this.view.updateState(newState) }