Skip to content

Commit f78e45e

Browse files
manuelmagerlifejuggler
authored andcommitted
Respect addAsFirstChild in addNodeUnderParent (frontend-collective#480)
* fix(utils/addNodeUnderParent): respect addAsFirstChild when parentKey is `null` * style(tree-data-utils): prettify
1 parent 5ce9e5b commit f78e45e

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

src/utils/tree-data-utils.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -621,10 +621,15 @@ export function addNodeUnderParent({
621621
addAsFirstChild = false,
622622
}) {
623623
if (parentKey === null) {
624-
return {
625-
treeData: [...(treeData || []), newNode],
626-
treeIndex: (treeData || []).length,
627-
};
624+
return addAsFirstChild
625+
? {
626+
treeData: [newNode, ...(treeData || [])],
627+
treeIndex: 0,
628+
}
629+
: {
630+
treeData: [...(treeData || []), newNode],
631+
treeIndex: (treeData || []).length,
632+
};
628633
}
629634

630635
let insertedTreeIndex = null;

src/utils/tree-data-utils.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,6 +1145,20 @@ describe('addNodeUnderParent', () => {
11451145
expect(expectedNewNode).toEqual(nestedParams.newNode);
11461146
expect(previousChildren).toEqual(nestedParams.treeData[0].children);
11471147
});
1148+
1149+
it('should add new node as first child under root if addAsFirstChild is true', () => {
1150+
const result = addNodeUnderParent({
1151+
...nestedParams,
1152+
parentKey: null,
1153+
getNodeKey: keyFromKey,
1154+
addAsFirstChild: true,
1155+
});
1156+
1157+
const [expectedNewNode, ...previousTreeData] = result.treeData;
1158+
1159+
expect(expectedNewNode).toEqual(nestedParams.newNode);
1160+
expect(previousTreeData).toEqual(nestedParams.treeData);
1161+
});
11481162
});
11491163

11501164
describe('insertNode', () => {

0 commit comments

Comments
 (0)