From 532eaa4e869180d639a696f2feb26c7ca6d334d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Tue, 1 Dec 2020 23:32:39 +0100 Subject: [PATCH] fix chain again --- packages/core/src/CommandManager.ts | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/packages/core/src/CommandManager.ts b/packages/core/src/CommandManager.ts index b5ea87cd..c41dcb1f 100644 --- a/packages/core/src/CommandManager.ts +++ b/packages/core/src/CommandManager.ts @@ -68,7 +68,6 @@ export default class CommandManager { const callbacks: boolean[] = [] const hasStartTransaction = !!startTr const tr = startTr || state.tr - const props = this.buildProps(tr, shouldDispatch) return new Proxy({}, { get: (_, name: string, proxy) => { @@ -87,7 +86,9 @@ export default class CommandManager { } return (...args: any) => { + const props = this.buildProps(tr, shouldDispatch) const callback = command(...args)(props) + callbacks.push(callback) return proxy @@ -118,6 +119,10 @@ export default class CommandManager { const { editor, commands } = this const { state, view } = editor + if (state.storedMarks) { + tr.setStoredMarks(state.storedMarks) + } + const props = { tr, editor, @@ -141,6 +146,10 @@ export default class CommandManager { } public chainableState(tr: Transaction, state: EditorState): EditorState { + let { selection } = tr + let { doc } = tr + let { storedMarks } = tr + return { ...state, schema: state.schema, @@ -150,15 +159,19 @@ export default class CommandManager { reconfigure: state.reconfigure.bind(state), toJSON: state.toJSON.bind(state), get storedMarks() { - return tr.storedMarks + return storedMarks }, get selection() { - return tr.selection + return selection }, get doc() { - return tr.doc + return doc }, get tr() { + selection = tr.selection + doc = tr.doc + storedMarks = tr.storedMarks + return tr }, }