🐛 Fix text editor paste inline/paragraph

This commit is contained in:
Aitor Moreno
2025-10-20 13:09:43 +02:00
parent 247c5c3700
commit ceb184782f

View File

@@ -1047,6 +1047,17 @@ export class SelectionController extends EventTarget {
return isParagraphEnd(this.focusNode, this.focusOffset); return isParagraphEnd(this.focusNode, this.focusOffset);
} }
#getFragmentInlineTextNode(fragment) {
if (isInline(fragment.firstElementChild.lastChild)) {
return fragment.firstElementChild.firstElementChild.lastChild;
}
return fragment.firstElementChild.lastChild;
}
#getFragmentParagraphTextNode(fragment) {
return fragment.lastElementChild.lastElementChild.lastChild;
}
/** /**
* Insert pasted fragment. * Insert pasted fragment.
* *
@@ -1071,7 +1082,7 @@ export class SelectionController extends EventTarget {
} }
return this.collapse(collapseNode, collapseNode.nodeValue.length); return this.collapse(collapseNode, collapseNode.nodeValue.length);
} }
const collapseNode = fragment.lastElementChild.lastElementChild.firstChild; const collapseNode = this.#getFragmentParagraphTextNode(fragment);
if (this.isParagraphStart) { if (this.isParagraphStart) {
const a = fragment.lastElementChild; const a = fragment.lastElementChild;
const b = this.focusParagraph; const b = this.focusParagraph;