importFileItemWithFileIconfrom'@sinm/react-file-tree/lib/FileItemWithFileIcon';// import { getFileIconClass } from '@sinm/react-file-tree/lib/FileItemWithFileIcon';import'@sinm/react-file-tree/icons.css';constitemRenderer=(treeNode: TreeNode)=><FileItemWithFileIcontreeNode={treeNode}/><FileTreetree={tree}itemRenderer={itemRenderer}/>
Sort tree items
importorderByfrom"lodash/orderBy";// directory first and filename dict sortconstsorter=(treeNodes: TreeNode[])=>orderBy(treeNodes,[(node)=>(node.type==="directory" ? 0 : 1),(node)=>utils.getFileName(node.uri),],["asc","asc"]);<FileTreetree={tree}sorter={sorter}/>
Load tree from server
// backendimport{getTreeNode}from"@sinm/react-file-tree/lib/node";app.get("/root",async(req,res,next)=>{try{consttree=awaitgetTreeNode(".");// build tree for current directoryres.send(tree);}catch(err){next(err);}});// frontenduseEffect(()=>{fetch("/root").then((res)=>res.json())// expand root node.then((tree)=>Object.assign(tree,{expanded: true})).then(setTree);},[]);