UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

30 lines (28 loc) 1.28 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"); /** * Creates a Tree View store and keep it in sync with the provided parameters. */ function useTreeViewStore(StoreClass, parameters) { const isRtl = (0, _RtlProvider.useRtl)(); const store = (0, _useDisposable.useDisposable)(() => new StoreClass((0, _extends2.default)({}, parameters, { isRtl }))); (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => store.updateStateFromParameters((0, _extends2.default)({}, parameters, { isRtl })), [store, isRtl, 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; }