@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
19 lines • 762 B
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { useRefWithInit } from '@base-ui/utils/useRefWithInit';
import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
import { useOnMount } from '@base-ui/utils/useOnMount';
import { useRtl } from '@mui/system/RtlProvider';
/**
* Creates a Tree View store and keep it in sync with the provided parameters.
*/
export function useTreeViewStore(StoreClass, parameters) {
const isRtl = useRtl();
const store = useRefWithInit(() => new StoreClass(_extends({}, parameters, {
isRtl
}))).current;
useIsoLayoutEffect(() => store.updateStateFromParameters(_extends({}, parameters, {
isRtl
})), [store, isRtl, parameters]);
useOnMount(store.disposeEffect);
return store;
}