UNPKG

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.

56 lines (48 loc) 1.6 kB
// ** React Imports import { useState } from 'react' // ** 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 TreeViewControlled = ({ direction }) => { // ** States const [expanded, setExpanded] = useState([]) const [selected, setSelected] = useState([]) const handleToggle = (event, nodeIds) => { setExpanded(nodeIds) } const handleSelect = (event, nodeIds) => { setSelected(nodeIds) } const ExpandIcon = direction === 'rtl' ? <ChevronLeft /> : <ChevronRight /> return ( <TreeView expanded={expanded} selected={selected} sx={{ minHeight: 240 }} onNodeToggle={handleToggle} onNodeSelect={handleSelect} defaultExpandIcon={ExpandIcon} defaultCollapseIcon={<ChevronDown />} > <TreeItem nodeId='1' label='Applications'> <TreeItem nodeId='2' label='Calendar' /> <TreeItem nodeId='3' label='Chrome' /> <TreeItem nodeId='4' label='Webstorm' /> </TreeItem> <TreeItem nodeId='5' label='Documents'> <TreeItem nodeId='10' label='OSS' /> <TreeItem nodeId='6' label='MUI'> <TreeItem nodeId='7' label='src'> <TreeItem nodeId='8' label='index.js' /> <TreeItem nodeId='9' label='tree-view.js' /> </TreeItem> </TreeItem> </TreeItem> </TreeView> ) } export default TreeViewControlled