Files
mtdb_movie/common/resources/client/ui/tree/render-tree.ts
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

28 lines
607 B
TypeScript
Executable File

import {TreeItemRenderer} from './tree-item';
import {cloneElement} from 'react';
import {TreeNode} from './tree';
interface RenderTreeProps<T extends TreeNode> {
nodes: T[];
parentNode?: T;
itemRenderer: TreeItemRenderer<T>;
level?: number;
}
export function renderTree<T extends TreeNode>({
nodes,
itemRenderer,
parentNode,
level,
}: RenderTreeProps<T>) {
return nodes.map((node, index) => {
return cloneElement(itemRenderer(node), {
level: level == undefined ? 0 : level + 1,
index,
node,
parentNode,
key: node.id,
itemRenderer,
});
});
}