react-garden
Version:
React + TypeScript + ThreeJS app using Material UI on NextJS, Apollo Client, GraphQL + WordPress REST APIs, for ThreeD web development.. a part of the threed.ai code family.
52 lines (46 loc) • 1.15 kB
JavaScript
// ** MUI Imports
import TreeView from '@mui/lab/TreeView'
import TreeItem from '@mui/lab/TreeItem'
// ** Icons Imports
import ChevronDown from 'mdi-material-ui/ChevronDown'
import ChevronLeft from 'mdi-material-ui/ChevronLeft'
import ChevronRight from 'mdi-material-ui/ChevronRight'
const data = {
id: 'root',
name: 'Parent',
children: [
{
id: '1',
name: 'Child - 1'
},
{
id: '3',
name: 'Child - 3',
children: [
{
id: '4',
name: 'Child - 4'
}
]
}
]
}
const TreeViewRichObject = ({ direction }) => {
const renderTree = nodes => (
<TreeItem key={nodes.id} nodeId={nodes.id} label={nodes.name}>
{Array.isArray(nodes.children) ? nodes.children.map(node => renderTree(node)) : null}
</TreeItem>
)
const ExpandIcon = direction === 'rtl' ? <ChevronLeft /> : <ChevronRight />
return (
<TreeView
sx={{ minHeight: 240 }}
defaultExpanded={['root']}
defaultExpandIcon={ExpandIcon}
defaultCollapseIcon={<ChevronDown />}
>
{renderTree(data)}
</TreeView>
)
}
export default TreeViewRichObject