@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
26 lines (25 loc) • 1.11 kB
JavaScript
;
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;
}