Skip to content

bindalkumar/react-treebeard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-treebeard

Build Status Coverage Status

React Tree View Component. Data-Driven, Fast, Efficient and Customisable.

Install

npm install react-treebeard --save 

An online example from the /example directory can be found here: Here

Quick Start

'use strict'; import React from 'react'; import ReactDOM from 'react-dom'; import {Treebeard} from 'react-treebeard'; const data = { name: 'root', toggled: true, children: [ { name: 'parent', children: [ { name: 'child1' }, { name: 'child2' } ] }, { name: 'loading parent', loading: true, children: [] }, { name: 'parent', children: [ { name: 'nested parent', children: [ { name: 'nested child 1' }, { name: 'nested child 2' } ] } ] } ] }; class TreeExample extends React.Component { constructor(props){ super(props); this.state = {}; this.onToggle = this.onToggle.bind(this); } onToggle(node, toggled){ if(this.state.cursor){this.state.cursor.active = false;} node.active = true; if(node.children){ node.toggled = toggled; } this.setState({ cursor: node }); } render(){ return ( <Treebeard data={data} onToggle={this.onToggle} /> ); } } const content = document.getElementById('content'); ReactDOM.render(<TreeExample/>, content);

Prop Values

data

PropTypes.oneOfType([PropTypes.object,PropTypes.array]).isRequired

Data that drives the tree view. State-driven effects can be built by manipulating the attributes in this object. Also supports an array for multiple nodes at the root level. An example can be found in example/data.js

onToggle

PropTypes.func

Callback function when a node is toggled / clicked. Passes 2 attributes: the data node and it's toggled boolean state.

style

PropTypes.object

Sets the treeview styling. Defaults to src/themes/default.

animations

PropTypes.oneOfType([PropTypes.object, PropTypes.bool])

Sets the treeview animations. Set to false if you want to turn off animations. See velocity-react for more details. Defaults to src/themes/animations.

enableCheckbox

PropTypes.bool Enable / disable checkbox element for each node. Defaults to false.

checkboxField

PropTypes.string To set the checkbox field value which need to be used. Defaults to name.

handleCheckbox

PropTypes.func

Callback function when a checbox is checked / unchecked. Passes 2 attributes: the data node and it's checked boolean value.

handleCheckbox(node, isChecked) { node.checked = isChecked; this.setState({cursor: node}); } 

decorators

PropTypes.object

Decorates the treeview. Here you can use your own Container, Header, Toggle and Loading components. Defaults to src/decorators. See example below:

const decorators = { Loading: (props) => { return ( <div style={props.style}> loading... </div> ); }, Toggle: (props) => { return ( <div style={props.style}> <svg height={props.height} width={props.width}> // Vector Toggle Here </svg> </div> ); }, Header: (props) => { return ( <div style={props.style}> {props.node.name} </div> ); }, Container: (props) => { return ( <div onClick={this.props.onClick}> // Hide Toggle When Terminal Here <this.props.decorators.Toggle/> <this.props.decorators.Header/> </div> ); } }; <Treebeard data={...} decorators={decorators}/>

Data Attributes

{ id: '[optional] string', name: 'string', children: '[optional] array', toggled: '[optional] boolean', active: '[optional] boolean', loading: '[optional] boolean', decorators: '[optional] object', animations: '[optional] object' checked: '[optional] boolean' },

id

The component key. If not defined, an auto-generated index is used.

name

The name prop passed into the Header component.

children

The children attached to the node. This value populates the subtree at the specific node. Each child is built from the same basic data structure. Tip: Make this an empty array, if you want to asynchronously load a potential parent.

toggled

Toggled flag. Sets the visibility of a node's children. It also sets the state for the toggle decorator.

active

Active flag. If active, the node will be highlighted. The highlight is derived from the node.activeLink style object in the theme.

loading

Loading flag. It will populate the treeview with the loading component. Useful when asynchronously pulling the data into the treeview.

decorators / animations

Attach specific decorators / animations to a node. Provides the low level functionality to create visuals on a node-by-node basis. These structures are the same as the top level props, described above.

checked

Checked flag. Validate node checkbox should display as checked or not .

About

React Tree View Component. Data-Driven, Fast, Efficient and Customisable.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 97.1%
  • HTML 2.9%