@mui/x-tree-view-pro 8.0.0-alpha.9 → 8.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/CHANGELOG.md +1523 -0
  2. package/README.md +1 -1
  3. package/RichTreeViewPro/RichTreeViewPro.d.ts +5 -5
  4. package/RichTreeViewPro/RichTreeViewPro.js +101 -89
  5. package/RichTreeViewPro/RichTreeViewPro.plugins.d.ts +4 -5
  6. package/RichTreeViewPro/RichTreeViewPro.plugins.js +10 -3
  7. package/RichTreeViewPro/RichTreeViewPro.types.d.ts +38 -38
  8. package/RichTreeViewPro/RichTreeViewPro.types.js +5 -1
  9. package/RichTreeViewPro/index.d.ts +3 -3
  10. package/RichTreeViewPro/index.js +27 -3
  11. package/RichTreeViewPro/richTreeViewProClasses.d.ts +3 -3
  12. package/RichTreeViewPro/richTreeViewProClasses.js +13 -5
  13. package/esm/RichTreeViewPro/RichTreeViewPro.d.ts +20 -0
  14. package/{node → esm}/RichTreeViewPro/RichTreeViewPro.js +95 -95
  15. package/esm/RichTreeViewPro/RichTreeViewPro.plugins.d.ts +7 -0
  16. package/esm/RichTreeViewPro/RichTreeViewPro.plugins.js +6 -0
  17. package/esm/RichTreeViewPro/RichTreeViewPro.types.d.ts +51 -0
  18. package/esm/RichTreeViewPro/RichTreeViewPro.types.js +1 -0
  19. package/esm/RichTreeViewPro/index.d.ts +3 -0
  20. package/esm/RichTreeViewPro/index.js +3 -0
  21. package/esm/RichTreeViewPro/richTreeViewProClasses.d.ts +7 -0
  22. package/esm/RichTreeViewPro/richTreeViewProClasses.js +6 -0
  23. package/esm/index.d.ts +12 -0
  24. package/esm/index.js +22 -0
  25. package/esm/internals/index.d.ts +1 -0
  26. package/esm/internals/index.js +1 -0
  27. package/esm/internals/plugins/useTreeViewItemsReordering/index.d.ts +2 -0
  28. package/esm/internals/plugins/useTreeViewItemsReordering/index.js +1 -0
  29. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.d.ts +3 -0
  30. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.d.ts +3 -0
  31. package/{node → esm}/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.js +13 -22
  32. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.js +203 -0
  33. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.d.ts +417 -0
  34. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.js +50 -0
  35. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.types.d.ts +127 -0
  36. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.types.js +1 -0
  37. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.d.ts +37 -0
  38. package/{node → esm}/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.js +21 -31
  39. package/esm/internals/plugins/useTreeViewLazyLoading/index.d.ts +1 -0
  40. package/esm/internals/plugins/useTreeViewLazyLoading/index.js +1 -0
  41. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.d.ts +3 -0
  42. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.js +288 -0
  43. package/esm/internals/plugins/useTreeViewLazyLoading/utils.d.ts +32 -0
  44. package/esm/internals/plugins/useTreeViewLazyLoading/utils.js +85 -0
  45. package/esm/internals/utils/releaseInfo.d.ts +1 -0
  46. package/esm/internals/utils/releaseInfo.js +13 -0
  47. package/esm/internals/zero-styled/index.d.ts +3 -0
  48. package/esm/internals/zero-styled/index.js +7 -0
  49. package/esm/package.json +1 -0
  50. package/esm/themeAugmentation/components.d.ts +11 -0
  51. package/esm/themeAugmentation/index.d.ts +3 -0
  52. package/esm/themeAugmentation/index.js +0 -0
  53. package/esm/themeAugmentation/overrides.d.ts +12 -0
  54. package/esm/themeAugmentation/props.d.ts +10 -0
  55. package/index.d.ts +2 -2
  56. package/index.js +147 -15
  57. package/internals/index.d.ts +1 -1
  58. package/internals/index.js +12 -1
  59. package/internals/plugins/useTreeViewItemsReordering/index.d.ts +2 -2
  60. package/internals/plugins/useTreeViewItemsReordering/index.js +12 -1
  61. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.d.ts +2 -2
  62. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.d.ts +1 -1
  63. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.js +22 -13
  64. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.js +81 -69
  65. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.d.ts +335 -97
  66. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.js +30 -9
  67. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.types.d.ts +105 -119
  68. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.types.js +5 -1
  69. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.d.ts +28 -15
  70. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.js +31 -21
  71. package/internals/plugins/useTreeViewLazyLoading/index.d.ts +1 -0
  72. package/internals/plugins/useTreeViewLazyLoading/index.js +12 -0
  73. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.d.ts +3 -0
  74. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.js +297 -0
  75. package/internals/plugins/useTreeViewLazyLoading/utils.d.ts +32 -0
  76. package/internals/plugins/useTreeViewLazyLoading/utils.js +89 -0
  77. package/internals/utils/releaseInfo.d.ts +1 -1
  78. package/internals/utils/releaseInfo.js +13 -5
  79. package/internals/zero-styled/index.d.ts +1 -1
  80. package/internals/zero-styled/index.js +14 -4
  81. package/modern/RichTreeViewPro/RichTreeViewPro.d.ts +20 -0
  82. package/modern/RichTreeViewPro/RichTreeViewPro.js +21 -15
  83. package/modern/RichTreeViewPro/RichTreeViewPro.plugins.d.ts +7 -0
  84. package/modern/RichTreeViewPro/RichTreeViewPro.plugins.js +2 -1
  85. package/modern/RichTreeViewPro/RichTreeViewPro.types.d.ts +51 -0
  86. package/modern/RichTreeViewPro/index.d.ts +3 -0
  87. package/modern/RichTreeViewPro/richTreeViewProClasses.d.ts +7 -0
  88. package/modern/index.d.ts +12 -0
  89. package/modern/index.js +1 -1
  90. package/modern/internals/index.d.ts +1 -0
  91. package/modern/internals/plugins/useTreeViewItemsReordering/index.d.ts +2 -0
  92. package/modern/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.d.ts +3 -0
  93. package/modern/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.d.ts +3 -0
  94. package/modern/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.js +6 -6
  95. package/modern/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.js +54 -51
  96. package/modern/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.d.ts +417 -0
  97. package/modern/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.js +23 -8
  98. package/modern/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.types.d.ts +127 -0
  99. package/modern/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.d.ts +37 -0
  100. package/modern/internals/plugins/useTreeViewLazyLoading/index.d.ts +1 -0
  101. package/modern/internals/plugins/useTreeViewLazyLoading/index.js +1 -0
  102. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.d.ts +3 -0
  103. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.js +288 -0
  104. package/modern/internals/plugins/useTreeViewLazyLoading/utils.d.ts +32 -0
  105. package/modern/internals/plugins/useTreeViewLazyLoading/utils.js +85 -0
  106. package/modern/internals/utils/releaseInfo.d.ts +1 -0
  107. package/modern/internals/utils/releaseInfo.js +1 -1
  108. package/modern/internals/zero-styled/index.d.ts +3 -0
  109. package/modern/package.json +1 -0
  110. package/modern/themeAugmentation/components.d.ts +11 -0
  111. package/modern/themeAugmentation/index.d.ts +3 -0
  112. package/modern/themeAugmentation/overrides.d.ts +12 -0
  113. package/modern/themeAugmentation/props.d.ts +10 -0
  114. package/package.json +43 -10
  115. package/themeAugmentation/components.d.ts +1 -3
  116. package/themeAugmentation/index.d.ts +1 -1
  117. package/themeAugmentation/index.js +1 -0
  118. package/themeAugmentation/overrides.d.ts +2 -3
  119. package/themeAugmentation/props.d.ts +2 -4
  120. package/tsconfig.build.tsbuildinfo +1 -0
  121. package/RichTreeViewPro/package.json +0 -6
  122. package/internals/package.json +0 -6
  123. package/node/RichTreeViewPro/RichTreeViewPro.plugins.js +0 -11
  124. package/node/RichTreeViewPro/RichTreeViewPro.types.js +0 -5
  125. package/node/RichTreeViewPro/index.js +0 -27
  126. package/node/RichTreeViewPro/richTreeViewProClasses.js +0 -14
  127. package/node/index.js +0 -154
  128. package/node/internals/index.js +0 -12
  129. package/node/internals/plugins/useTreeViewItemsReordering/index.js +0 -12
  130. package/node/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.js +0 -209
  131. package/node/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.js +0 -42
  132. package/node/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.types.js +0 -5
  133. package/node/internals/utils/releaseInfo.js +0 -21
  134. package/node/internals/zero-styled/index.js +0 -17
  135. package/node/themeAugmentation/index.js +0 -1
  136. package/themeAugmentation/package.json +0 -6
@@ -0,0 +1,3 @@
1
+ export * from "./RichTreeViewPro.js";
2
+ export * from "./richTreeViewProClasses.js";
3
+ export type { RichTreeViewProProps, RichTreeViewProPropsBase, RichTreeViewProSlots, RichTreeViewProSlotProps } from './RichTreeViewPro.types';
@@ -0,0 +1,7 @@
1
+ export interface RichTreeViewProClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ }
5
+ export type RichTreeViewProClassKey = keyof RichTreeViewProClasses;
6
+ export declare function getRichTreeViewProUtilityClass(slot: string): string;
7
+ export declare const richTreeViewProClasses: RichTreeViewProClasses;
@@ -0,0 +1,12 @@
1
+ export * from '@mui/x-tree-view/SimpleTreeView';
2
+ export * from "./RichTreeViewPro/index.js";
3
+ export * from '@mui/x-tree-view/TreeItem';
4
+ export * from '@mui/x-tree-view/useTreeItem';
5
+ export * from '@mui/x-tree-view/TreeItemIcon';
6
+ export * from '@mui/x-tree-view/TreeItemProvider';
7
+ export * from '@mui/x-tree-view/TreeItemDragAndDropOverlay';
8
+ export * from '@mui/x-tree-view/TreeItemLabelInput';
9
+ export { unstable_resetCleanupTracking } from '@mui/x-tree-view/internals';
10
+ export * from '@mui/x-tree-view/models';
11
+ export * from '@mui/x-tree-view/icons';
12
+ export * from '@mui/x-tree-view/hooks';
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view-pro v8.0.0-alpha.9
2
+ * @mui/x-tree-view-pro v8.0.0-beta.1
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -0,0 +1 @@
1
+ export { UseTreeViewItemsReorderingSignature } from "./plugins/useTreeViewItemsReordering/index.js";
@@ -0,0 +1,2 @@
1
+ export { useTreeViewItemsReordering } from "./useTreeViewItemsReordering.js";
2
+ export type { UseTreeViewItemsReorderingSignature, UseTreeViewItemsReorderingParameters, UseTreeViewItemsReorderingDefaultizedParameters, TreeViewItemReorderPosition } from './useTreeViewItemsReordering.types';
@@ -0,0 +1,3 @@
1
+ import { TreeViewPlugin } from '@mui/x-tree-view/internals';
2
+ import { UseTreeViewItemsReorderingSignature } from "./useTreeViewItemsReordering.types.js";
3
+ export declare const useTreeViewItemsReordering: TreeViewPlugin<UseTreeViewItemsReorderingSignature>;
@@ -0,0 +1,3 @@
1
+ import { TreeViewItemPlugin } from '@mui/x-tree-view/internals';
2
+ export declare const isAndroid: () => boolean;
3
+ export declare const useTreeViewItemsReorderingItemPlugin: TreeViewItemPlugin;
@@ -1,21 +1,21 @@
1
1
  import * as React from 'react';
2
2
  import { useTreeViewContext, isTargetInDescendants, useSelector } from '@mui/x-tree-view/internals';
3
- import { selectorItemsReorderingDraggedItemProperties, selectorItemsReorderingIsValidTarget } from "./useTreeViewItemsReordering.selectors.js";
3
+ import { selectorCanItemBeReordered, selectorDraggedItemProperties, selectorIsItemValidReorderingTarget } from "./useTreeViewItemsReordering.selectors.js";
4
4
  export const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');
5
5
  export const useTreeViewItemsReorderingItemPlugin = ({
6
6
  props
7
7
  }) => {
8
8
  const {
9
9
  instance,
10
- store,
11
- itemsReordering
10
+ store
12
11
  } = useTreeViewContext();
13
12
  const {
14
13
  itemId
15
14
  } = props;
16
15
  const validActionsRef = React.useRef(null);
17
- const draggedItemProperties = useSelector(store, selectorItemsReorderingDraggedItemProperties, itemId);
18
- const isValidTarget = useSelector(store, selectorItemsReorderingIsValidTarget, itemId);
16
+ const draggedItemProperties = useSelector(store, selectorDraggedItemProperties, itemId);
17
+ const canItemBeReordered = useSelector(store, selectorCanItemBeReordered);
18
+ const isValidTarget = useSelector(store, selectorIsItemValidReorderingTarget, itemId);
19
19
  return {
20
20
  propsEnhancers: {
21
21
  root: ({
@@ -23,7 +23,7 @@ export const useTreeViewItemsReorderingItemPlugin = ({
23
23
  contentRefObject,
24
24
  externalEventHandlers
25
25
  }) => {
26
- if (!itemsReordering.enabled || itemsReordering.isItemReorderable && !itemsReordering.isItemReorderable(itemId)) {
26
+ if (!canItemBeReordered) {
27
27
  return {};
28
28
  }
29
29
  const handleDragStart = event => {
@@ -1,10 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
3
4
  import { selectorItemIndex, selectorItemMeta, selectorItemOrderedChildrenIds } from '@mui/x-tree-view/internals';
4
- import { warnOnce } from '@mui/x-internals/warning';
5
5
  import { chooseActionToApply, isAncestor, moveItemInTree } from "./useTreeViewItemsReordering.utils.js";
6
6
  import { useTreeViewItemsReorderingItemPlugin } from "./useTreeViewItemsReordering.itemPlugin.js";
7
- import { selectorItemsReordering } from "./useTreeViewItemsReordering.selectors.js";
7
+ import { selectorCurrentItemReordering } from "./useTreeViewItemsReordering.selectors.js";
8
8
  export const useTreeViewItemsReordering = ({
9
9
  params,
10
10
  store
@@ -20,18 +20,19 @@ export const useTreeViewItemsReordering = ({
20
20
  return true;
21
21
  }, [params.itemsReordering, params.isItemReorderable]);
22
22
  const getDroppingTargetValidActions = React.useCallback(itemId => {
23
- const itemsReordering = selectorItemsReordering(store.value);
24
- if (!itemsReordering) {
23
+ const currentReorder = selectorCurrentItemReordering(store.value);
24
+ if (!currentReorder) {
25
25
  throw new Error('There is no ongoing reordering.');
26
26
  }
27
- if (itemId === itemsReordering.draggedItemId) {
27
+ if (itemId === currentReorder.draggedItemId) {
28
28
  return {};
29
29
  }
30
30
  const canMoveItemToNewPosition = params.canMoveItemToNewPosition;
31
31
  const targetItemMeta = selectorItemMeta(store.value, itemId);
32
32
  const targetItemIndex = selectorItemIndex(store.value, targetItemMeta.id);
33
- const draggedItemMeta = selectorItemMeta(store.value, itemsReordering.draggedItemId);
33
+ const draggedItemMeta = selectorItemMeta(store.value, currentReorder.draggedItemId);
34
34
  const draggedItemIndex = selectorItemIndex(store.value, draggedItemMeta.id);
35
+ const isTargetLastSibling = targetItemIndex === selectorItemOrderedChildrenIds(store.value, targetItemMeta.parentId).length - 1;
35
36
  const oldPosition = {
36
37
  parentId: draggedItemMeta.parentId,
37
38
  index: draggedItemIndex
@@ -43,7 +44,7 @@ export const useTreeViewItemsReordering = ({
43
44
  isValid = false;
44
45
  } else if (canMoveItemToNewPosition) {
45
46
  isValid = canMoveItemToNewPosition({
46
- itemId: itemsReordering.draggedItemId,
47
+ itemId: currentReorder.draggedItemId,
47
48
  oldPosition,
48
49
  newPosition: positionAfterAction
49
50
  });
@@ -61,10 +62,10 @@ export const useTreeViewItemsReordering = ({
61
62
  parentId: targetItemMeta.parentId,
62
63
  index: targetItemMeta.parentId === draggedItemMeta.parentId && targetItemIndex > draggedItemIndex ? targetItemIndex - 1 : targetItemIndex
63
64
  },
64
- 'reorder-below': targetItemMeta.expandable ? null : {
65
+ 'reorder-below': !targetItemMeta.expandable || isTargetLastSibling ? {
65
66
  parentId: targetItemMeta.parentId,
66
67
  index: targetItemMeta.parentId === draggedItemMeta.parentId && targetItemIndex > draggedItemIndex ? targetItemIndex : targetItemIndex + 1
67
- },
68
+ } : null,
68
69
  'move-to-parent': targetItemMeta.parentId == null ? null : {
69
70
  parentId: targetItemMeta.parentId,
70
71
  index: selectorItemOrderedChildrenIds(store.value, targetItemMeta.parentId).length
@@ -81,33 +82,39 @@ export const useTreeViewItemsReordering = ({
81
82
  }, [store, params.canMoveItemToNewPosition]);
82
83
  const startDraggingItem = React.useCallback(itemId => {
83
84
  store.update(prevState => _extends({}, prevState, {
84
- itemsReordering: {
85
- targetItemId: itemId,
86
- draggedItemId: itemId,
87
- action: null,
88
- newPosition: null
89
- }
85
+ itemsReordering: _extends({}, prevState.itemsReordering, {
86
+ currentReorder: {
87
+ targetItemId: itemId,
88
+ draggedItemId: itemId,
89
+ action: null,
90
+ newPosition: null
91
+ }
92
+ })
90
93
  }));
91
94
  }, [store]);
92
95
  const stopDraggingItem = React.useCallback(itemId => {
93
- const itemsReordering = selectorItemsReordering(store.value);
94
- if (itemsReordering == null || itemsReordering.draggedItemId !== itemId) {
96
+ const currentReorder = selectorCurrentItemReordering(store.value);
97
+ if (currentReorder == null || currentReorder.draggedItemId !== itemId) {
95
98
  return;
96
99
  }
97
- if (itemsReordering.draggedItemId === itemsReordering.targetItemId || itemsReordering.action == null || itemsReordering.newPosition == null) {
100
+ if (currentReorder.draggedItemId === currentReorder.targetItemId || currentReorder.action == null || currentReorder.newPosition == null) {
98
101
  store.update(prevState => _extends({}, prevState, {
99
- itemsReordering: null
102
+ itemsReordering: _extends({}, prevState.itemsReordering, {
103
+ currentReorder: null
104
+ })
100
105
  }));
101
106
  return;
102
107
  }
103
- const draggedItemMeta = selectorItemMeta(store.value, itemsReordering.draggedItemId);
108
+ const draggedItemMeta = selectorItemMeta(store.value, currentReorder.draggedItemId);
104
109
  const oldPosition = {
105
110
  parentId: draggedItemMeta.parentId,
106
111
  index: selectorItemIndex(store.value, draggedItemMeta.id)
107
112
  };
108
- const newPosition = itemsReordering.newPosition;
113
+ const newPosition = currentReorder.newPosition;
109
114
  store.update(prevState => _extends({}, prevState, {
110
- itemsReordering: null,
115
+ itemsReordering: _extends({}, prevState.itemsReordering, {
116
+ currentReorder: null
117
+ }),
111
118
  items: moveItemInTree({
112
119
  itemToMoveId: itemId,
113
120
  newPosition,
@@ -131,8 +138,8 @@ export const useTreeViewItemsReordering = ({
131
138
  contentElement
132
139
  }) => {
133
140
  store.update(prevState => {
134
- const prevSubState = prevState.itemsReordering;
135
- if (prevSubState == null || isAncestor(store, itemId, prevSubState.draggedItemId)) {
141
+ const prevItemReorder = prevState.itemsReordering.currentReorder;
142
+ if (prevItemReorder == null || isAncestor(store, itemId, prevItemReorder.draggedItemId)) {
136
143
  return prevState;
137
144
  }
138
145
  const action = chooseActionToApply({
@@ -145,24 +152,27 @@ export const useTreeViewItemsReordering = ({
145
152
  contentElement
146
153
  });
147
154
  const newPosition = action == null ? null : validActions[action];
148
- if (prevSubState.targetItemId === itemId && prevSubState.action === action && prevSubState.newPosition?.parentId === newPosition?.parentId && prevSubState.newPosition?.index === newPosition?.index) {
155
+ if (prevItemReorder.targetItemId === itemId && prevItemReorder.action === action && prevItemReorder.newPosition?.parentId === newPosition?.parentId && prevItemReorder.newPosition?.index === newPosition?.index) {
149
156
  return prevState;
150
157
  }
151
158
  return _extends({}, prevState, {
152
- itemsReordering: _extends({}, prevSubState, {
153
- targetItemId: itemId,
154
- newPosition,
155
- action
159
+ itemsReordering: _extends({}, prevState.itemsReordering, {
160
+ currentReorder: _extends({}, prevItemReorder, {
161
+ targetItemId: itemId,
162
+ newPosition,
163
+ action
164
+ })
156
165
  })
157
166
  });
158
167
  });
159
168
  }, [store, params.itemChildrenIndentation]);
160
- const pluginContextValue = React.useMemo(() => ({
161
- itemsReordering: {
162
- enabled: params.itemsReordering,
163
- isItemReorderable: params.isItemReorderable
164
- }
165
- }), [params.itemsReordering, params.isItemReorderable]);
169
+ useEnhancedEffect(() => {
170
+ store.update(prevState => _extends({}, prevState, {
171
+ itemsReordering: _extends({}, prevState.itemsReordering, {
172
+ isItemReorderable: params.itemsReordering ? params.isItemReorderable ?? (() => true) : () => false
173
+ })
174
+ }));
175
+ }, [store, params.itemsReordering, params.isItemReorderable]);
166
176
  return {
167
177
  instance: {
168
178
  canItemBeDragged,
@@ -170,27 +180,20 @@ export const useTreeViewItemsReordering = ({
170
180
  startDraggingItem,
171
181
  stopDraggingItem,
172
182
  setDragTargetItem
173
- },
174
- contextValue: pluginContextValue
183
+ }
175
184
  };
176
185
  };
177
186
  useTreeViewItemsReordering.itemPlugin = useTreeViewItemsReorderingItemPlugin;
178
187
  useTreeViewItemsReordering.getDefaultizedParams = ({
179
- params,
180
- experimentalFeatures
181
- }) => {
182
- const canUseFeature = experimentalFeatures?.itemsReordering;
183
- if (process.env.NODE_ENV !== 'production') {
184
- if (params.itemsReordering && !canUseFeature) {
185
- warnOnce(['MUI X: The items reordering feature requires the `itemsReordering` experimental feature to be enabled.', 'You can do it by passing `experimentalFeatures={{ itemsReordering: true }}` to the `<RichTreeViewPro />`component.', 'Check the documentation for more details: https://mui.com/x/react-tree-view/rich-tree-view/items/']);
186
- }
188
+ params
189
+ }) => _extends({}, params, {
190
+ itemsReordering: params.itemsReordering ?? false
191
+ });
192
+ useTreeViewItemsReordering.getInitialState = params => ({
193
+ itemsReordering: {
194
+ currentReorder: null,
195
+ isItemReorderable: params.itemsReordering ? params.isItemReorderable ?? (() => true) : () => false
187
196
  }
188
- return _extends({}, params, {
189
- itemsReordering: canUseFeature ? params.itemsReordering ?? false : false
190
- });
191
- };
192
- useTreeViewItemsReordering.getInitialState = () => ({
193
- itemsReordering: null
194
197
  });
195
198
  useTreeViewItemsReordering.params = {
196
199
  itemsReordering: true,