@b-flower/bdn-react-tree

1.1.3 • Public • Published

bdn-react-tree

React tree component

This is a fork of react-ui-tree by Wang Zuo. This project was initially developed for a webpage builder. It maintains an internal tree structure within the component through js-tree.

Installation

npm install jab-react-tree --save

Properties

  • paddingLeft {Number} Left padding for children nodes in pixels
  • tree {Object} Tree object (nested)
  • onChange {Func} Gets the full tree object as parameter
  • renderNode {Func} Return react element
  • onDragStart {Func} Gets the dragging node as parameter
  • onDragEnd {Func} Gets the dropped node as parameter

Tree object

A nested object :

const tree = {
  <your custom node props>
  children: [
    {
      <your custom node props>
    },
    ...
  ]
}

Node object

{
  id    : {Number}, // The internal node id
  top   : {Number}, // internal id
  left  : {Number}, // internal id
  prev  : {Number}, // internal id
  next  : {Number}, // internal id
  parent: {Number}, // internal id
  node  : {Object}, // Node state with your custom props
}

Node.node

{
  collapsed: {Bool} // Open or closed state
  leaf     : {Bool} // If true, can not have child
  ...(your custom props)
}

Usage

<Tree
  paddingLeft={20}              // left padding for children nodes in pixels
  tree={this.state.tree}        // tree object
  onChange={this.handleChange}  // onChange(tree) tree object changed
  renderNode={this.renderNode}  // renderNode(node) return react element
  onDragStart={ (node) => () }  // onDragStart(node) the dragging tree node
  onDragEnd={ (node) => () }    // onDragEnd(node) the dropped tree node
/>

// a sample tree object
// node.children, node.collapsed, node.leaf properties are hardcoded
{
  "module": "jab-react-tree",
  "children": [{
    "collapsed": true,
    "module": "dist",
    "children": [{
      "module": "node.js"
    }]
  }]
}

check app.js for a working example

Development

License

Apache 2.0

Package Sidebar

Install

npm i @b-flower/bdn-react-tree

Weekly Downloads

1

Version

1.1.3

License

Apache-2.0

Unpacked Size

36.9 kB

Total Files

23

Last publish

Collaborators

  • amelon
  • gabchang
  • kcoulibaly