UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

24 lines (22 loc) 932 B
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect'; import { useOnMount } from '@base-ui/utils/useOnMount'; import { useDisposable } from '@mui/x-internals/useDisposable'; 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 = useDisposable(() => new StoreClass(_extends({}, parameters, { isRtl }))); useIsoLayoutEffect(() => store.updateStateFromParameters(_extends({}, 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. useOnMount(store.mountEffect); return store; }