From 2c86db883bd4fdb618dfcef2f15df77ceccb7c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 31 May 2019 12:00:45 +0200 Subject: [PATCH] add transaction event --- .../tiptap-extensions/src/extensions/Collaboration.js | 2 +- packages/tiptap/src/Editor.js | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/tiptap-extensions/src/extensions/Collaboration.js b/packages/tiptap-extensions/src/extensions/Collaboration.js index 785259bb..65504da2 100644 --- a/packages/tiptap-extensions/src/extensions/Collaboration.js +++ b/packages/tiptap-extensions/src/extensions/Collaboration.js @@ -29,7 +29,7 @@ export default class Collaboration extends Extension { } }, this.options.debounce) - this.editor.on('update', ({ state }) => { + this.editor.on('transaction', ({ state }) => { this.getSendableSteps(state) }) } diff --git a/packages/tiptap/src/Editor.js b/packages/tiptap/src/Editor.js index 0405cd6a..4a941577 100644 --- a/packages/tiptap/src/Editor.js +++ b/packages/tiptap/src/Editor.js @@ -40,6 +40,7 @@ export default class Editor extends Emitter { dropCursor: {}, parseOptions: {}, onInit: () => {}, + onTransaction: () => {}, onUpdate: () => {}, onFocus: () => {}, onBlur: () => {}, @@ -49,6 +50,7 @@ export default class Editor extends Emitter { this.events = [ 'init', + 'transaction', 'update', 'focus', 'blur', @@ -311,6 +313,13 @@ export default class Editor extends Emitter { this.view.updateState(newState) this.setActiveNodesAndMarks() + this.emit('transaction', { + getHTML: this.getHTML.bind(this), + getJSON: this.getJSON.bind(this), + state: this.state, + transaction, + }) + if (!transaction.docChanged) { return }