StatefulTree
Overview
The StatefulTree
component is used to display a tree of items. Useful for defining a tree of categories or subcollections.
When to use:
- To display a tree of items
- Creating or assigning items to a specific category/sub-category
- To organize items through structure hierarchy
Implementation
Edit the code below to see your changes live!
function Example() { const nodes = [ { id: '0', value: 0, label: 'Category', children: [ { id: '5', value: 5, label: 'Category', children: [{ id: '9', value: 9, label: 'Category' }], }, ], }, { id: '1', value: 1, label: 'Category', children: [{ id: '6', value: 6, label: 'Category' }], }, { id: '2', value: 2, label: 'Category' }, { id: '3', value: 3, label: 'Category', children: [{ id: '7', value: 7, label: 'Category' }], }, { id: '4', value: 4, label: 'Category', children: [{ id: '8', value: 8, label: 'Category' }], }, ]; return ( <StatefulTree defaultExpanded={['0', '5', '1']} defaultSelected={['9', '3', '7']} disabledNodes={['1']} nodes={nodes} selectable="multi" /> ); }
Props
Prop name | Type | Default | Description |
---|---|---|---|
defaultExpanded | string[] |
| An array of expanded node ids. Can also be used to reset expanded nodes. |
defaultSelected | string[] |
| An array of selected node ids. Can also be used to reset selected nodes. |
disabledNodes | string[] |
| An array of disabled node ids. Nodes will not be abled to be selectedable but can still expand/collapse. |
iconless | boolean |
| Hides/shows all icons on the tree. |
id | string |
| Defines a HTML id attribute to the parent wrapper. |
nodes * | TreeNode[] |
| Nodes to render in the tree. See TreeNode for usage. |
onExpandedChange | (expandedNodes: string[]) => void |
| Function that will get called when a tree node is expanded/collapsed. Passes the ids of expanded nodes as an argument. |
onNodeClick | (event: React.MouseEvent<HTMLLIElement>, nodeId: string) => void |
| Function that will get called when a tree node is clicked. |
onSelectionChange | (selectedValues: T[]) => void |
| Function that will get called when a tree node is selected/deselecteds. Passes the values of selected nodes as an argument. |
selectable | multi | radio |
| Determines the type of selectable tree to render. |
Props ending with * are required
Do's and Don'ts
Do |
---|
Display collapsable side navigation if sub-categories exist. |
Use an icon next to categories, regardless of heirarchy. |
Use checkboxes when multiple items can be selected vs. radio buttons for either/or. |
Selected sub-categories should always be shown numerically next to the parent catergories, both in collapsed or expanded states. |
Don't |
---|
Make sure radio buttons and checkboxes are used correctly within BigDesign Guidelines. Checkboxes are additive, radio buttons are either/or. |
Don’t use to display a list of items. |