@kenshooui/material-tree

0.0.7 • Public • Published

Material Tree

Material Tree is an enrichment to React Tree component.

It is based on basic React Tree logic and allows a user to display and manage a hierarchical structure of items using Material-UI components.

Examples can be found - here

Installation

Since Material Tree is based on React Tree< logic, you need to install both @kenshooui/react-tree and @kenshooui/material-tree.

Dependencies to @material-ui/core and @material-ui/icons are needed only if they don't exist in your project.

Installation using npm:

 npm install --save @kenshooui/react-tree @kenshooui/material-tree

 npm install --save @material-ui/core @material-ui/icons

Installation using Yarn:

 yarn add @kenshooui/material-tree @kenshooui/react-tree

 yarn add @material-ui/core @material-ui/icons

How to use

import MaterialTree from "@kenshooui/material-tree";

const structure = [
  ["Profiles", "Performance", "Clicks"],
  ["Profiles", "Performance", "Imp"],
  ["Profiles", "Attribute", "Agency"],
  ["Profiles", "Attribute", "Progress"],
  ["Profiles", "Attribute", "Create Date"],
  ["Campaigns", "Performance", "Clicks"],
  ["Campaigns", "Performance", "Cost"],
  ["Campaigns", "Performance", "CTR"],
  ["Campaigns", "Attribute", "campaign name"],
  ["Ad Groups", "Attribute", "Ad Group Name"]
];

<MaterialTree
  structure={structure}
  title={"Add filter criteria"}
  onSelect={() => {}}
/>;

Props

Can be found - here

Customization

Renderers

You can replace the renderers of the following components:


Container

Use the treeContainerRenderer to replace the default component.

Each treeContainer receives the following props:

containerRef - Holds a reference to the tree container component

children - Holds all sub components (like header, input, items, etc..)

width - The width of the tree component

height - The height of the tree component


Header

Use the headerRenderer to replace the default component.

Each header receives the following props:

headerRef - Holds a reference to the header component

parents - Holds the parents of the current depth.
For example for the following structure: ["Profiles", "Performance", "Clicks"]

  • In the first depth the parents are: [""]
  • In the second depth the parents are: ["Profile"]
  • In the third depth the parents are: ["Profile, "Performance"]

onClick - Triggers the back event on click

title - The title of the header. Displayed on the first depth.

backIconRenderer - Use the backIconRenderer to replace the default back button component.


Input

Use the inputRenderer to replace the default component.

Each header receives the following props:

inputRef - Holds a reference to the input component

searchTerm - Holds the searched value

onInputChange - Triggers set searchTerm event on change

inputIconRenderer - Use the inputIconRenderer to replace the default input icon component.

clearIconRenderer - Use the clearIconRenderer to replace the default clear input icon component.


Items

Use the itemsRenderer to replace the default component.

Each header receives the following props:

children - All items

height - The height of the items list


Item

Use the itemRenderer to replace the default component.

Each header receives the following props:

searchTerm - Holds the searched value

item - Represents an item from the given structure.

onClick - Is called when clicking on an item

forwardIconRenderer - Use the forwardIconRenderer to replace the default forward icon component.

selectedItem - Represents the current selected item. Is relevant when markSelectedItem = true.


No Results

Use the noResultsRenderer to replace the default component.

text - Displayed when there are no results

height - The height of the items list

noResultsIconRenderer - Use the noResultsIconRenderer to replace the default no results warning icon component.

Package Sidebar

Install

npm i @kenshooui/material-tree

Weekly Downloads

9

Version

0.0.7

License

MIT

Unpacked Size

53.1 kB

Total Files

18

Last publish

Collaborators

  • frontendinfra
  • kenshoo-ci