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