From db8f5064cd782f08e9e7b06f62b494a7b871335b Mon Sep 17 00:00:00 2001 From: delangle Date: Thu, 20 Jun 2024 14:31:33 +0200 Subject: [PATCH] [TreeView] Move useTreeViewId to the core plugins --- .../src/RichTreeViewPro/RichTreeViewPro.plugins.ts | 6 ++---- .../x-tree-view/src/RichTreeView/RichTreeView.plugins.ts | 5 ++--- .../src/SimpleTreeView/SimpleTreeView.plugins.ts | 5 ++--- packages/x-tree-view/src/TreeItem/TreeItem.types.ts | 2 -- .../TreeViewProvider/TreeViewChildrenItemProvider.tsx | 5 +---- .../x-tree-view/src/internals/corePlugins/corePlugins.ts | 5 ++++- packages/x-tree-view/src/internals/corePlugins/index.ts | 2 +- .../{plugins => corePlugins}/useTreeViewId/index.ts | 0 .../{plugins => corePlugins}/useTreeViewId/useTreeViewId.ts | 0 .../useTreeViewId/useTreeViewId.types.ts | 0 packages/x-tree-view/src/internals/index.ts | 5 +++-- .../plugins/useTreeViewFocus/useTreeViewFocus.types.ts | 2 -- .../plugins/useTreeViewJSXItems/useTreeViewJSXItems.tsx | 3 +-- packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts | 2 -- 14 files changed, 16 insertions(+), 26 deletions(-) rename packages/x-tree-view/src/internals/{plugins => corePlugins}/useTreeViewId/index.ts (100%) rename packages/x-tree-view/src/internals/{plugins => corePlugins}/useTreeViewId/useTreeViewId.ts (100%) rename packages/x-tree-view/src/internals/{plugins => corePlugins}/useTreeViewId/useTreeViewId.types.ts (100%) diff --git a/packages/x-tree-view-pro/src/RichTreeViewPro/RichTreeViewPro.plugins.ts b/packages/x-tree-view-pro/src/RichTreeViewPro/RichTreeViewPro.plugins.ts index cbd7f1ea9741..dca59df1cdf4 100644 --- a/packages/x-tree-view-pro/src/RichTreeViewPro/RichTreeViewPro.plugins.ts +++ b/packages/x-tree-view-pro/src/RichTreeViewPro/RichTreeViewPro.plugins.ts @@ -1,6 +1,4 @@ import { - useTreeViewId, - UseTreeViewIdParameters, useTreeViewItems, UseTreeViewItemsParameters, useTreeViewExpansion, @@ -14,10 +12,10 @@ import { UseTreeViewIconsParameters, ConvertPluginsIntoSignatures, MergeSignaturesProperty, + TreeViewCorePluginParameters, } from '@mui/x-tree-view/internals'; export const RICH_TREE_VIEW_PRO_PLUGINS = [ - useTreeViewId, useTreeViewItems, useTreeViewExpansion, useTreeViewSelection, @@ -42,7 +40,7 @@ export type RichTreeViewProPluginSlotProps = MergeSignaturesProperty< // We can't infer this type from the plugin, otherwise we would lose the generics. export interface RichTreeViewProPluginParameters - extends UseTreeViewIdParameters, + extends TreeViewCorePluginParameters, UseTreeViewItemsParameters, UseTreeViewExpansionParameters, UseTreeViewFocusParameters, diff --git a/packages/x-tree-view/src/RichTreeView/RichTreeView.plugins.ts b/packages/x-tree-view/src/RichTreeView/RichTreeView.plugins.ts index 4c42b098f2e0..3da29c2c3278 100644 --- a/packages/x-tree-view/src/RichTreeView/RichTreeView.plugins.ts +++ b/packages/x-tree-view/src/RichTreeView/RichTreeView.plugins.ts @@ -1,4 +1,4 @@ -import { useTreeViewId, UseTreeViewIdParameters } from '../internals/plugins/useTreeViewId'; +import { TreeViewCorePluginParameters } from '../internals/corePlugins'; import { useTreeViewItems, UseTreeViewItemsParameters, @@ -23,7 +23,6 @@ import { import { ConvertPluginsIntoSignatures, MergeSignaturesProperty } from '../internals/models'; export const RICH_TREE_VIEW_PLUGINS = [ - useTreeViewId, useTreeViewItems, useTreeViewExpansion, useTreeViewSelection, @@ -48,7 +47,7 @@ export type RichTreeViewPluginSlotProps = MergeSignaturesProperty< // We can't infer this type from the plugin, otherwise we would lose the generics. export interface RichTreeViewPluginParameters - extends UseTreeViewIdParameters, + extends TreeViewCorePluginParameters, UseTreeViewItemsParameters, UseTreeViewExpansionParameters, UseTreeViewFocusParameters, diff --git a/packages/x-tree-view/src/SimpleTreeView/SimpleTreeView.plugins.ts b/packages/x-tree-view/src/SimpleTreeView/SimpleTreeView.plugins.ts index d943982322c2..f2cba8e94621 100644 --- a/packages/x-tree-view/src/SimpleTreeView/SimpleTreeView.plugins.ts +++ b/packages/x-tree-view/src/SimpleTreeView/SimpleTreeView.plugins.ts @@ -1,4 +1,4 @@ -import { useTreeViewId, UseTreeViewIdParameters } from '../internals/plugins/useTreeViewId'; +import { TreeViewCorePluginParameters } from '../internals/corePlugins'; import { useTreeViewItems, UseTreeViewItemsParameters, @@ -24,7 +24,6 @@ import { useTreeViewJSXItems } from '../internals/plugins/useTreeViewJSXItems'; import { ConvertPluginsIntoSignatures, MergeSignaturesProperty } from '../internals/models'; export const SIMPLE_TREE_VIEW_PLUGINS = [ - useTreeViewId, useTreeViewItems, useTreeViewExpansion, useTreeViewSelection, @@ -50,7 +49,7 @@ export type SimpleTreeViewPluginSlotProps = MergeSignaturesProperty< // We can't infer this type from the plugin, otherwise we would lose the generics. export interface SimpleTreeViewPluginParameters - extends UseTreeViewIdParameters, + extends TreeViewCorePluginParameters, Omit< UseTreeViewItemsParameters, 'items' | 'isItemDisabled' | 'getItemLabel' | 'getItemId' diff --git a/packages/x-tree-view/src/TreeItem/TreeItem.types.ts b/packages/x-tree-view/src/TreeItem/TreeItem.types.ts index c0554c4e4c80..0e2a66d0565a 100644 --- a/packages/x-tree-view/src/TreeItem/TreeItem.types.ts +++ b/packages/x-tree-view/src/TreeItem/TreeItem.types.ts @@ -14,7 +14,6 @@ import { UseTreeViewItemsSignature } from '../internals/plugins/useTreeViewItems import { UseTreeViewFocusSignature } from '../internals/plugins/useTreeViewFocus'; import { UseTreeViewExpansionSignature } from '../internals/plugins/useTreeViewExpansion'; import { UseTreeViewKeyboardNavigationSignature } from '../internals/plugins/useTreeViewKeyboardNavigation'; -import { UseTreeViewIdSignature } from '../internals/plugins/useTreeViewId'; export interface TreeItemSlots { /** @@ -123,7 +122,6 @@ export type TreeItemMinimalPlugins = readonly [ UseTreeViewFocusSignature, UseTreeViewExpansionSignature, UseTreeViewKeyboardNavigationSignature, - UseTreeViewIdSignature, ]; /** diff --git a/packages/x-tree-view/src/internals/TreeViewProvider/TreeViewChildrenItemProvider.tsx b/packages/x-tree-view/src/internals/TreeViewProvider/TreeViewChildrenItemProvider.tsx index ad1aaf415413..bc080cfbd494 100644 --- a/packages/x-tree-view/src/internals/TreeViewProvider/TreeViewChildrenItemProvider.tsx +++ b/packages/x-tree-view/src/internals/TreeViewProvider/TreeViewChildrenItemProvider.tsx @@ -4,7 +4,6 @@ import { useTreeViewContext } from './useTreeViewContext'; import { escapeOperandAttributeSelector } from '../utils/utils'; import type { UseTreeViewJSXItemsSignature } from '../plugins/useTreeViewJSXItems'; import type { UseTreeViewItemsSignature } from '../plugins/useTreeViewItems'; -import type { UseTreeViewIdSignature } from '../plugins/useTreeViewId'; export const TreeViewChildrenItemContext = React.createContext(null); @@ -22,9 +21,7 @@ export function TreeViewChildrenItemProvider(props: TreeViewChildrenItemProvider const { children, itemId = null } = props; const { instance, rootRef } = - useTreeViewContext< - [UseTreeViewJSXItemsSignature, UseTreeViewItemsSignature, UseTreeViewIdSignature] - >(); + useTreeViewContext<[UseTreeViewJSXItemsSignature, UseTreeViewItemsSignature]>(); const childrenIdAttrToIdRef = React.useRef>(new Map()); React.useEffect(() => { diff --git a/packages/x-tree-view/src/internals/corePlugins/corePlugins.ts b/packages/x-tree-view/src/internals/corePlugins/corePlugins.ts index 0d55e29829ab..1ecfb88d8e25 100644 --- a/packages/x-tree-view/src/internals/corePlugins/corePlugins.ts +++ b/packages/x-tree-view/src/internals/corePlugins/corePlugins.ts @@ -1,12 +1,15 @@ import { useTreeViewInstanceEvents } from './useTreeViewInstanceEvents'; +import { useTreeViewId, UseTreeViewIdParameters } from './useTreeViewId'; import { ConvertPluginsIntoSignatures } from '../models'; /** * Internal plugins that create the tools used by the other plugins. * These plugins are used by the tree view components. */ -export const TREE_VIEW_CORE_PLUGINS = [useTreeViewInstanceEvents] as const; +export const TREE_VIEW_CORE_PLUGINS = [useTreeViewInstanceEvents, useTreeViewId] as const; export type TreeViewCorePluginSignatures = ConvertPluginsIntoSignatures< typeof TREE_VIEW_CORE_PLUGINS >; + +export interface TreeViewCorePluginParameters extends UseTreeViewIdParameters {} diff --git a/packages/x-tree-view/src/internals/corePlugins/index.ts b/packages/x-tree-view/src/internals/corePlugins/index.ts index 55cb778e2bd9..4bc6d8c4e5ab 100644 --- a/packages/x-tree-view/src/internals/corePlugins/index.ts +++ b/packages/x-tree-view/src/internals/corePlugins/index.ts @@ -1,2 +1,2 @@ export { TREE_VIEW_CORE_PLUGINS } from './corePlugins'; -export type { TreeViewCorePluginSignatures } from './corePlugins'; +export type { TreeViewCorePluginSignatures, TreeViewCorePluginParameters } from './corePlugins'; diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewId/index.ts b/packages/x-tree-view/src/internals/corePlugins/useTreeViewId/index.ts similarity index 100% rename from packages/x-tree-view/src/internals/plugins/useTreeViewId/index.ts rename to packages/x-tree-view/src/internals/corePlugins/useTreeViewId/index.ts diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewId/useTreeViewId.ts b/packages/x-tree-view/src/internals/corePlugins/useTreeViewId/useTreeViewId.ts similarity index 100% rename from packages/x-tree-view/src/internals/plugins/useTreeViewId/useTreeViewId.ts rename to packages/x-tree-view/src/internals/corePlugins/useTreeViewId/useTreeViewId.ts diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewId/useTreeViewId.types.ts b/packages/x-tree-view/src/internals/corePlugins/useTreeViewId/useTreeViewId.types.ts similarity index 100% rename from packages/x-tree-view/src/internals/plugins/useTreeViewId/useTreeViewId.types.ts rename to packages/x-tree-view/src/internals/corePlugins/useTreeViewId/useTreeViewId.types.ts diff --git a/packages/x-tree-view/src/internals/index.ts b/packages/x-tree-view/src/internals/index.ts index 67e9f4307740..09cddc526a7c 100644 --- a/packages/x-tree-view/src/internals/index.ts +++ b/packages/x-tree-view/src/internals/index.ts @@ -12,6 +12,9 @@ export type { TreeViewExperimentalFeatures, } from './models'; +// Core plugins +export type { TreeViewCorePluginParameters } from './corePlugins'; + // Plugins export { useTreeViewExpansion } from './plugins/useTreeViewExpansion'; export type { @@ -30,8 +33,6 @@ export type { } from './plugins/useTreeViewFocus'; export { useTreeViewKeyboardNavigation } from './plugins/useTreeViewKeyboardNavigation'; export type { UseTreeViewKeyboardNavigationSignature } from './plugins/useTreeViewKeyboardNavigation'; -export { useTreeViewId } from './plugins/useTreeViewId'; -export type { UseTreeViewIdSignature, UseTreeViewIdParameters } from './plugins/useTreeViewId'; export { useTreeViewIcons } from './plugins/useTreeViewIcons'; export type { UseTreeViewIconsSignature, diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.ts b/packages/x-tree-view/src/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.ts index 50c265aa5866..3d28f2f3e223 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.ts +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.ts @@ -1,6 +1,5 @@ import * as React from 'react'; import { TreeViewPluginSignature } from '../../models'; -import { UseTreeViewIdSignature } from '../useTreeViewId/useTreeViewId.types'; import type { UseTreeViewItemsSignature } from '../useTreeViewItems'; import type { UseTreeViewSelectionSignature } from '../useTreeViewSelection'; import { UseTreeViewExpansionSignature } from '../useTreeViewExpansion'; @@ -62,7 +61,6 @@ export type UseTreeViewFocusSignature = TreeViewPluginSignature<{ publicAPI: UseTreeViewFocusPublicAPI; state: UseTreeViewFocusState; dependencies: [ - UseTreeViewIdSignature, UseTreeViewItemsSignature, UseTreeViewSelectionSignature, UseTreeViewExpansionSignature, diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.tsx b/packages/x-tree-view/src/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.tsx index c65cbe41913f..125fc300dd40 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.tsx +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.tsx @@ -16,7 +16,6 @@ import { } from '../useTreeViewItems/useTreeViewItems.utils'; import type { TreeItemProps } from '../../../TreeItem'; import type { TreeItem2Props } from '../../../TreeItem2'; -import { UseTreeViewIdSignature } from '../useTreeViewId'; import { TreeViewItemDepthContext } from '../../TreeViewItemDepthContext'; export const useTreeViewJSXItems: TreeViewPlugin = ({ @@ -122,7 +121,7 @@ const useTreeViewJSXItemsItemPlugin: TreeViewItemPlugin { - const { instance } = useTreeViewContext<[UseTreeViewIdSignature, UseTreeViewJSXItemsSignature]>(); + const { instance } = useTreeViewContext<[UseTreeViewJSXItemsSignature]>(); const { children, disabled = false, label, itemId, id } = props; const parentContext = React.useContext(TreeViewChildrenItemContext); diff --git a/packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts b/packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts index 321b9d5a1408..6aff48add0b1 100644 --- a/packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts +++ b/packages/x-tree-view/src/useTreeItem2/useTreeItem2.types.ts @@ -4,7 +4,6 @@ import { MuiCancellableEventHandler } from '../internals/models/MuiCancellableEv import { TreeViewPublicAPI } from '../internals/models'; import { UseTreeViewSelectionSignature } from '../internals/plugins/useTreeViewSelection'; import { UseTreeViewItemsSignature } from '../internals/plugins/useTreeViewItems'; -import { UseTreeViewIdSignature } from '../internals/plugins/useTreeViewId'; import { UseTreeViewFocusSignature } from '../internals/plugins/useTreeViewFocus'; import { UseTreeViewKeyboardNavigationSignature } from '../internals/plugins/useTreeViewKeyboardNavigation'; @@ -187,7 +186,6 @@ export interface UseTreeItem2ReturnValue< export type UseTreeItem2MinimalPlugins = readonly [ UseTreeViewSelectionSignature, UseTreeViewItemsSignature, - UseTreeViewIdSignature, UseTreeViewFocusSignature, UseTreeViewKeyboardNavigationSignature, ];