UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

38 lines (37 loc) 926 B
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import { useStore } from '@mui/x-internals/store'; import { idSelectors } from "./useTreeViewId.selectors.js"; import { createTreeViewDefaultId } from "./useTreeViewId.utils.js"; export const useTreeViewId = ({ params, store }) => { React.useEffect(() => { const prevIdState = store.state.id; if (params.id === prevIdState.providedTreeId && prevIdState.treeId !== undefined) { return; } store.set('id', _extends({}, prevIdState, { treeId: params.id ?? createTreeViewDefaultId() })); }, [store, params.id]); const treeId = useStore(store, idSelectors.treeId); return { getRootProps: () => ({ id: treeId }) }; }; useTreeViewId.params = { id: true }; useTreeViewId.getInitialState = ({ id }) => ({ id: { treeId: undefined, providedTreeId: id } });