import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeItem from '@material-ui/lab/TreeItem';
interface RenderTree {
id: string;
name: string;
children?: RenderTree[];
}
const data: RenderTree = {
id: 'root',
name: 'Parent',
children: [
{
id: '1',
name: 'Child - 1',
},
{
id: '3',
name: 'Child - 3',
children: [
{
id: '4',
name: 'Child - 4',
},
],
},
],
};
const useStyles = makeStyles({
root: {
height: 110,
flexGrow: 1,
maxWidth: 400,
},
});
export default function RecursiveTreeView() {
const classes = useStyles();
const renderTree = (nodes: RenderTree) => (
{Array.isArray(nodes.children) ? nodes.children.map((node) => renderTree(node)) : null}
);
return (
}
defaultExpanded={['root']}
defaultExpandIcon={}
>
{renderTree(data)}
);
}