I want to display inside a material TreeView the content of a directory while parsing it.
Here's what I have for now:
const getElement = (path: string) => {
  fs.readdir(path, (_: any, elements: any) => {
    elements.forEach((element: string) => {
    let elementPath: string = libpath.join(path, element)
    if(fs.lstatSync(elementPath).isFile()) {
      return (
        <TreeItem nodeId="" label={element}/> //I'll take care of nodeId later
      )
    } else {
      return (
        <TreeItem nodeId="" label={element}>
          {getElement(elementPath)}
        </TreeItem>
      )
    }
  })
})}
export default class DataTreeView extends React.Component {
  render() {
    return (
      <TreeView
        defaultCollapseIcon={<ExpandMoreIcon />}
        defaultExpandIcon={<ChevronRightIcon />}
      >
        {getElement(window.process.env.HOME)} //return $HOME env var, will get this value from props later
      </TreeView>
    );
  }
}
It feels like I'm almost there but I keep getting this error "Type 'void' is not assignable to type 'ReactNode'." for the getElement function which I don't understand because it return a ReactNode in every case. Is the asynchronous part of fs.readdir is the problem here ?
Thanks for your help
 
    