/react-vertical-tree

Simple & lightweight vertical tree like view.

Primary LanguageJavaScript

React Vertical Graph Tree

Build Status Download Count

Simple and lightweight tree component for react apps.

Installation

npm i react-vertical-tree

Usage

Use showed below structure to set data to <Tree/> component:

import Tree from 'react-vertical-tree'

...
// data have to be below structure

const  data = [
  {id: 1, name: 'company', parent: null, children: [
    {id: 2, parent: {id: 1}, name: 'subcompany1', children: []},
    {id: 3, parent: {id: 1}, name: 'subcompany2', children: [
      {id: 4, parent: {id: 3}, name: 'example-company', children: []}
    ]},
    {id: 5, parent: {id: 1}, name: 'company2', children: []},
    {id: 6, parent: {id: 1}, name: 'company3', children: []}
  ]}
]

...
return <Tree data={data} />

...

default preview

Add direction property for line arrows:

import Tree from 'react-vertical-tree'
...
return <Tree
        data={data} 
        direction
      />
...

default preview with direction

Also you can use withStyles function and change the default style. Available class names are node, lines, text .

import Tree, { withStyles } from 'react-vertical-tree'

...
 const styles = {
        lines: {
          color: '#1890ff',
          height: '90px',
        },
        node: {
          backgroundColor: '#fff',
          border: '1px solid #1890ff',
        },
        text: {
          color: '#ccc',
        }
      }
...

const StyledTree = withStyles(styles)(Tree)
return <StyledTree data={data} direction/>

...

customized style

Also you can fully customize node component with render method:

import Tree from 'react-vertical-tree'

...

return <Tree 
        data={data} 
        direction
        render={ item => <div>{`${item.id}.${item.name}`}</div>}
      />

...

customized nodes

Handle node actions with onClick method:

import Tree, { withStyles } from 'react-vertical-tree'

...

return <Tree 
        data={data} 
        direction
        onClick={ item => console.log(item.id)}
      />

...

Configuration

Properties Type Default Description
data array [] tree content
direction bool false directional arrow in lines
render function null customize node content
onClick function null event handler for node components