diff --git a/packages/core/src/CommandManager.ts b/packages/core/src/CommandManager.ts index 98a950ab..ce180486 100644 --- a/packages/core/src/CommandManager.ts +++ b/packages/core/src/CommandManager.ts @@ -44,13 +44,13 @@ export default class CommandManager { public createCommands() { const { commands, editor } = this const { state, view } = editor + const { tr } = state + const props = this.buildProps(tr) return Object.fromEntries(Object .entries(commands) .map(([name, command]) => { const method = (...args: any) => { - const { tr } = state - const props = this.buildProps(tr) const callback = command(...args)(props) view.dispatch(tr) diff --git a/packages/core/src/commands/unsetMark.ts b/packages/core/src/commands/unsetMark.ts index fa3d0b2d..1f2d28c5 100644 --- a/packages/core/src/commands/unsetMark.ts +++ b/packages/core/src/commands/unsetMark.ts @@ -23,6 +23,7 @@ export const unsetMark = (typeOrName: string | MarkType): Command => ({ tr, stat if (dispatch) { tr.removeMark(from, to, type) + tr.removeStoredMark(type) } return true diff --git a/packages/core/src/helpers/isMarkActive.ts b/packages/core/src/helpers/isMarkActive.ts index 168ccbcd..af0ffd37 100644 --- a/packages/core/src/helpers/isMarkActive.ts +++ b/packages/core/src/helpers/isMarkActive.ts @@ -21,7 +21,7 @@ export default function isMarkActive( : null if (empty) { - return !!state.selection.$head.marks() + return !!(state.storedMarks || state.selection.$from.marks()) .filter(mark => { if (!type) { return true