Skip to content

Commit 0238aa6

Browse files
committed
fix(hotkeys): create-node-after-parent places the node at the end of the group
1 parent a099cb6 commit 0238aa6

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

src/lib/tree-utils/insert/insert-parent-sibling.ts renamed to src/lib/tree-utils/insert/insert-node-after-parent.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { findNodeColumnAndParent } from 'src/lib/tree-utils/find/find-node-colum
33
import { findGroupByNodeId } from 'src/lib/tree-utils/find/find-group-by-node-id';
44
import { SilentError } from 'src/lib/errors/errors';
55

6-
export const insertParentSibling = (
6+
export const insertNodeAfterParent = (
77
document: Pick<LineageDocument, 'columns'>,
88
nodeId: string,
99
newNodeId: string,
@@ -20,5 +20,12 @@ export const insertParentSibling = (
2020
const parentGroup = findGroupByNodeId(document.columns, parentId);
2121

2222
if (!parentGroup) throw new Error('could not find group of parent node');
23-
parentGroup.nodes = [...parentGroup.nodes, newNodeId];
23+
24+
parentGroup.nodes = parentGroup.nodes.reduce((nodes, nodeId) => {
25+
nodes.push(nodeId);
26+
if (nodeId === parentId) {
27+
nodes.push(newNodeId);
28+
}
29+
return nodes;
30+
}, [] as string[]);
2431
};

src/stores/document/reducers/insert-node/insert-node.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { findGroupByNodeId } from 'src/lib/tree-utils/find/find-group-by-node-id
55
import { LineageDocument } from 'src/stores/document/document-state-type';
66
import invariant from 'tiny-invariant';
77
import { id } from 'src/helpers/id';
8-
import { insertParentSibling } from 'src/lib/tree-utils/insert/insert-parent-sibling';
8+
import { insertNodeAfterParent } from 'src/lib/tree-utils/insert/insert-node-after-parent';
99

1010
export type CreateNodeAction = {
1111
type: 'DOCUMENT/INSERT_NODE';
@@ -29,7 +29,7 @@ export const insertNode = (
2929
} else if (position === 'right-last') {
3030
insertChild(document, activeNodeId, newNodeId, false);
3131
} else if (position === 'left') {
32-
insertParentSibling(document, activeNodeId, newNodeId);
32+
insertNodeAfterParent(document, activeNodeId, newNodeId);
3333
} else {
3434
const columnIndex = findNodeColumn(document.columns, activeNodeId);
3535
const column = document.columns[columnIndex];

0 commit comments

Comments
 (0)