@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
58 lines (57 loc) • 1.96 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,
loading: slots.loading,
itemLoader: slots.itemLoader
},
slotProps: {
collapseIcon: slotProps.collapseIcon,
expandIcon: slotProps.expandIcon,
endIcon: slotProps.endIcon,
loading: slotProps.loading,
itemLoader: slotProps.itemLoader
}
}), [classes, slots.collapseIcon, slots.expandIcon, slots.endIcon, slots.loading, slots.itemLoader, slotProps.collapseIcon, slotProps.expandIcon, slotProps.endIcon, slotProps.loading, slotProps.itemLoader]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewContext.TreeViewContext.Provider, {
value: contextValue,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewStyleContext.TreeViewStyleContext.Provider, {
value: styleContextValue,
children: children
})
});
}