@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
38 lines (37 loc) • 926 B
JavaScript
'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
}
});