@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
41 lines (40 loc) • 1.01 kB
JavaScript
'use client';
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import { useSelector } from "../../hooks/useSelector.js";
import { selectorTreeViewId } from "./useTreeViewId.selectors.js";
import { createTreeViewDefaultId } from "./useTreeViewId.utils.js";
export const useTreeViewId = ({
params,
store
}) => {
React.useEffect(() => {
store.update(prevState => {
if (params.id === prevState.id.providedTreeId && prevState.id.treeId !== undefined) {
return prevState;
}
return _extends({}, prevState, {
id: _extends({}, prevState.id, {
treeId: params.id ?? createTreeViewDefaultId()
})
});
});
}, [store, params.id]);
const treeId = useSelector(store, selectorTreeViewId);
return {
getRootProps: () => ({
id: treeId
})
};
};
useTreeViewId.params = {
id: true
};
useTreeViewId.getInitialState = ({
id
}) => ({
id: {
treeId: undefined,
providedTreeId: id
}
});