From 34d80114704679118e9bb6058e0d6c7aa03fd4b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20K=C3=BChn?= Date: Mon, 24 Jan 2022 22:49:29 +0100 Subject: [PATCH] fix: set cursor position in setHorizontalRule correctly, fix #2429 --- .../extension-horizontal-rule/src/horizontal-rule.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/extension-horizontal-rule/src/horizontal-rule.ts b/packages/extension-horizontal-rule/src/horizontal-rule.ts index 6f583e1f..c905b63f 100644 --- a/packages/extension-horizontal-rule/src/horizontal-rule.ts +++ b/packages/extension-horizontal-rule/src/horizontal-rule.ts @@ -49,15 +49,14 @@ export const HorizontalRule = Node.create({ // set cursor after horizontal rule .command(({ tr, dispatch }) => { if (dispatch) { - const { parent, pos } = tr.selection.$from - const posAfter = pos + 1 - const nodeAfter = tr.doc.nodeAt(posAfter) + const { $to } = tr.selection + const posAfter = $to.end() - if (nodeAfter) { - tr.setSelection(TextSelection.create(tr.doc, posAfter)) + if ($to.nodeAfter) { + tr.setSelection(TextSelection.create(tr.doc, $to.pos)) } else { // add node after horizontal rule if it’s the end of the document - const node = parent.type.contentMatch.defaultType?.create() + const node = $to.parent.type.contentMatch.defaultType?.create() if (node) { tr.insert(posAfter, node)