X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/2a324755414e18d96a472425533e0c033ffebe98..refs/pull/5689/head:/resources/js/wysiwyg/utils/nodes.ts diff --git a/resources/js/wysiwyg/utils/nodes.ts b/resources/js/wysiwyg/utils/nodes.ts index ebf01e39d..116a3f4e5 100644 --- a/resources/js/wysiwyg/utils/nodes.ts +++ b/resources/js/wysiwyg/utils/nodes.ts @@ -118,15 +118,20 @@ export function $sortNodes(nodes: LexicalNode[]): LexicalNode[] { return sorted; } -export function $insertAndSelectNewEmptyAdjacentNode(node: LexicalNode, after: boolean): RangeSelection { - const target = $createParagraphNode(); - if (after) { - node.insertAfter(target) - } else { - node.insertBefore(target); +export function $selectOrCreateAdjacent(node: LexicalNode, after: boolean): RangeSelection { + const nearestBlock = $getNearestNodeBlockParent(node) || node; + let target = after ? nearestBlock.getNextSibling() : nearestBlock.getPreviousSibling() + + if (!target) { + target = $createParagraphNode(); + if (after) { + nearestBlock.insertAfter(target) + } else { + nearestBlock.insertBefore(target); + } } - return target.select(); + return after ? target.selectStart() : target.selectEnd(); } export function nodeHasAlignment(node: object): node is NodeHasAlignment {