UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

26 lines (25 loc) 1.11 kB
"use strict"; 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 _useRefWithInit = require("@base-ui/utils/useRefWithInit"); var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect"); var _useOnMount = require("@base-ui/utils/useOnMount"); 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, _useRefWithInit.useRefWithInit)(() => new StoreClass((0, _extends2.default)({}, parameters, { isRtl }))).current; (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => store.updateStateFromParameters((0, _extends2.default)({}, parameters, { isRtl })), [store, isRtl, parameters]); (0, _useOnMount.useOnMount)(store.disposeEffect); return store; }