UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

34 lines (32 loc) • 1.43 kB
"use strict"; 'use client'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTreeViewStore = useTreeViewStore; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect"); var _useOnMount = require("@base-ui/utils/useOnMount"); var _useDisposable = require("@mui/x-internals/useDisposable"); var _RtlProvider = require("@mui/system/RtlProvider"); var _useId = _interopRequireDefault(require("@mui/utils/useId")); /** * Creates a Tree View store and keep it in sync with the provided parameters. */ function useTreeViewStore(StoreClass, parameters) { const isRtl = (0, _RtlProvider.useRtl)(); const defaultId = (0, _useId.default)(); const store = (0, _useDisposable.useDisposable)(() => new StoreClass((0, _extends2.default)({}, parameters, { isRtl, defaultId }))); (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => store.updateStateFromParameters((0, _extends2.default)({}, parameters, { isRtl, defaultId })), [store, isRtl, defaultId, parameters]); // Mount-time side effects (e.g. kicking off lazy-loading fetches). The store is // created during render by `useDisposable`, so these can't run in the factory. (0, _useOnMount.useOnMount)(store.mountEffect); return store; }