UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

41 lines (40 loc) 1.01 kB
'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 } });