From 7feb598659a64e9660bf271cfdf63dc7af0a3f3f Mon Sep 17 00:00:00 2001 From: Jonas Date: Wed, 24 Jan 2024 16:45:49 +0100 Subject: [PATCH] fix(LinkBubble): Restore selection after updating the link Signed-off-by: Jonas --- src/components/Link/LinkBubbleView.vue | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/Link/LinkBubbleView.vue b/src/components/Link/LinkBubbleView.vue index 83589da96e5..3a07b9d002e 100644 --- a/src/components/Link/LinkBubbleView.vue +++ b/src/components/Link/LinkBubbleView.vue @@ -207,7 +207,19 @@ export default { }, setLinkUrl(href) { - this.editor.chain().extendMarkRange('link').setLink({ href }).focus().run() + // Store current selection to restore it after setLink + const selection = { ...this.editor.view.state.selection } + const { ranges } = selection + const from = Math.min(...ranges.map(range => range.$from.pos)) + const to = Math.max(...ranges.map(range => range.$to.pos)) + + console.debug('selection', selection) + this.editor.chain() + .extendMarkRange('link') + .setLink({ href }) + .setTextSelection({ from, to }) + .focus() + .run() }, removeLink() {