]> BookStack Code Mirror - bookstack/blobdiff - resources/js/wysiwyg/utils/nodes.ts
Perms: Fixed some issues made when adding transactions
[bookstack] / resources / js / wysiwyg / utils / nodes.ts
index ebf01e39ddef50a291a5b5b00558b7e7d1bf1d9b..116a3f4e5c01e0a39ee0ed0b564dd325a226b99d 100644 (file)
@@ -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 {