@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
49 lines (47 loc) • 1.54 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TreeViewProvider = TreeViewProvider;
var React = _interopRequireWildcard(require("react"));
var _TreeViewContext = require("./TreeViewContext");
var _TreeViewStyleContext = require("./TreeViewStyleContext");
var _jsxRuntime = require("react/jsx-runtime");
const EMPTY_OBJECT = {};
/**
* Sets up the contexts for the underlying Tree Item components.
*
* @ignore - do not document.
*/
function TreeViewProvider(props) {
const {
contextValue,
classes = EMPTY_OBJECT,
slots = EMPTY_OBJECT,
slotProps = EMPTY_OBJECT,
children
} = props;
const styleContextValue = React.useMemo(() => ({
classes,
slots: {
collapseIcon: slots.collapseIcon,
expandIcon: slots.expandIcon,
endIcon: slots.endIcon
},
slotProps: {
collapseIcon: slotProps.collapseIcon,
expandIcon: slotProps.expandIcon,
endIcon: slotProps.endIcon
}
}), [classes, slots.collapseIcon, slots.expandIcon, slots.endIcon, slotProps.collapseIcon, slotProps.expandIcon, slotProps.endIcon]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewContext.TreeViewContext.Provider, {
value: contextValue,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewStyleContext.TreeViewStyleContext.Provider, {
value: styleContextValue,
children: contextValue.wrapRoot({
children
})
})
});
}