react-lightning-design-system
Version:
Salesforce Lightning Design System components built with React
47 lines (45 loc) • 1.59 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["className", "label", "children", "toggleOnNodeClick", "onNodeClick", "onNodeLabelClick", "onNodeToggle"];
import React, { createContext, useMemo } from 'react';
import classnames from 'classnames';
/**
*
*/
export var TreeContext = /*#__PURE__*/createContext({});
/**
*
*/
/**
*
*/
export var Tree = function Tree(props) {
var className = props.className,
label = props.label,
children = props.children,
toggleOnNodeClick = props.toggleOnNodeClick,
onNodeClick = props.onNodeClick,
onNodeLabelClick = props.onNodeLabelClick,
onNodeToggle = props.onNodeToggle,
rprops = _objectWithoutProperties(props, _excluded);
var treeClassNames = classnames(className, 'slds-tree_container');
var ctx = useMemo(function () {
return {
toggleOnNodeClick: toggleOnNodeClick,
onNodeClick: onNodeClick,
onNodeLabelClick: onNodeLabelClick,
onNodeToggle: onNodeToggle
};
}, [toggleOnNodeClick, onNodeClick, onNodeLabelClick, onNodeToggle]);
return /*#__PURE__*/React.createElement("div", _extends({
className: treeClassNames
}, rprops), label ? /*#__PURE__*/React.createElement("h4", {
className: "slds-tree__group-header"
}, label) : null, /*#__PURE__*/React.createElement("ul", {
className: "slds-tree",
role: "tree"
}, /*#__PURE__*/React.createElement(TreeContext.Provider, {
value: ctx
}, children)));
};
//# sourceMappingURL=Tree.js.map