@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
54 lines (53 loc) • 1.75 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 _empty = require("@base-ui/utils/empty");
var _TreeViewContext = require("./TreeViewContext");
var _TreeViewStyleContext = require("./TreeViewStyleContext");
var _useTreeViewBuildContext = require("./useTreeViewBuildContext");
var _jsxRuntime = require("react/jsx-runtime");
/**
* Sets up the contexts for the underlying Tree Item components.
*
* @ignore - do not document.
*/
function TreeViewProvider(props) {
const {
store,
apiRef,
rootRef,
classes = _empty.EMPTY_OBJECT,
slots = _empty.EMPTY_OBJECT,
slotProps = _empty.EMPTY_OBJECT,
children
} = props;
const contextValue = (0, _useTreeViewBuildContext.useTreeViewBuildContext)({
store,
apiRef,
rootRef
});
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: children
})
});
}