Skip to content

Commit 07c9cb5

Browse files
committed
fix(tree): new getPath and getExtendedNodes functions
1 parent 09af1bb commit 07c9cb5

File tree

4 files changed

+37
-0
lines changed

4 files changed

+37
-0
lines changed

.storybook/stories/Types/data.story.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ export type TableNode = {
1313
[prop: string]: any,
1414
};
1515

16+
export type ExtendedTableNode = TableNode & {
17+
ancestors: TableNode[],
18+
};
19+
1620
export type Data = {
1721
pageInfo?: any,
1822
nodes: TableNode[],
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { TableNode } from '@table-library/react-table-library/types/table';
2+
3+
export const getExtendedNodes = (nodes: TableNode[], parentNode: TableNode): TableNode[] => {
4+
const extendedNodes = nodes.map((node) => ({
5+
...node,
6+
ancestors: parentNode ? parentNode.ancestors.concat(node) : [node],
7+
}));
8+
9+
return extendedNodes.map((extendedNode) => {
10+
if (extendedNode.nodes) {
11+
return {
12+
...extendedNode,
13+
nodes: getExtendedNodes(extendedNode.nodes, extendedNode),
14+
};
15+
} else {
16+
return extendedNode;
17+
}
18+
});
19+
};

src/common/util/tree/getPath.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { TableNode } from '@table-library/react-table-library/types/table';
2+
import { findNodeById } from './findNodeById';
3+
4+
export const getPath = (selectedFolderId: string | null, extendedNodes: TableNode[]) => {
5+
if (!selectedFolderId) return '/';
6+
7+
const extendedNode = findNodeById(extendedNodes, selectedFolderId);
8+
9+
if (!extendedNode) return '/';
10+
11+
return extendedNode.ancestors.map((node: TableNode) => `/${node.name}`).join('');
12+
};

src/common/util/tree/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ export * from './findNodeById';
55
export * from './fromTreeToList';
66
export * from './recursiveMergeInsert';
77
export * from './recursiveReplaceInsert';
8+
export * from './getExtendedNodes';
9+
export * from './getPath';

0 commit comments

Comments
 (0)