@mui/x-tree-view-pro 8.11.0 → 8.11.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 (28) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/RichTreeViewPro/RichTreeViewPro.js +14 -12
  3. package/RichTreeViewPro/RichTreeViewPro.types.d.ts +3 -2
  4. package/RichTreeViewPro/index.d.ts +2 -1
  5. package/esm/RichTreeViewPro/RichTreeViewPro.js +14 -12
  6. package/esm/RichTreeViewPro/RichTreeViewPro.types.d.ts +3 -2
  7. package/esm/RichTreeViewPro/index.d.ts +2 -1
  8. package/esm/index.js +1 -1
  9. package/esm/internals/plugins/useTreeViewItemsReordering/index.d.ts +2 -1
  10. package/esm/internals/plugins/useTreeViewItemsReordering/index.js +2 -1
  11. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.js +6 -5
  12. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.js +57 -71
  13. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.d.ts +17 -433
  14. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.js +35 -50
  15. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.js +2 -2
  16. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.js +82 -78
  17. package/esm/internals/plugins/useTreeViewLazyLoading/utils.js +3 -1
  18. package/index.js +1 -1
  19. package/internals/plugins/useTreeViewItemsReordering/index.d.ts +2 -1
  20. package/internals/plugins/useTreeViewItemsReordering/index.js +8 -1
  21. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.js +4 -3
  22. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.js +55 -69
  23. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.d.ts +17 -433
  24. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.js +35 -50
  25. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.js +1 -1
  26. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.js +81 -77
  27. package/internals/plugins/useTreeViewLazyLoading/utils.js +3 -1
  28. package/package.json +14 -13
package/CHANGELOG.md CHANGED
@@ -5,6 +5,80 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.11.1
9
+
10
+ _Sep 4, 2025_
11
+
12
+ We'd like to extend a big thank you to the 6 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ Special thanks go out to the community members for their valuable contributions:
15
+ @sai6855
16
+
17
+ The following are all team members who have contributed to this release:
18
+ @brijeshb42, @flaviendelangle, @JCQuintas, @mapache-salvaje, @oliviertassinari
19
+
20
+ ### Data Grid
21
+
22
+ #### `@mui/x-data-grid@8.11.1`
23
+
24
+ - [DataGrid] Refine types in `GridCell` component (#19384) @sai6855
25
+
26
+ #### `@mui/x-data-grid-pro@8.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
27
+
28
+ Same changes as in `@mui/x-data-grid@8.11.1`.
29
+
30
+ #### `@mui/x-data-grid-premium@8.11.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
31
+
32
+ Same changes as in `@mui/x-data-grid-pro@8.11.1`.
33
+
34
+ ### Date and Time Pickers
35
+
36
+ #### `@mui/x-date-pickers@8.11.1`
37
+
38
+ - [pickers] Merge `slotProps` for input adornment in `PickerFieldUI` component (#19399) @sai6855
39
+
40
+ #### `@mui/x-date-pickers-pro@8.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
41
+
42
+ Same changes as in `@mui/x-date-pickers@8.11.1`.
43
+
44
+ ### Charts
45
+
46
+ #### `@mui/x-charts@8.11.1`
47
+
48
+ - [charts] Prevent crash and warn user on incorrect `axisId` when composing (#19397) @JCQuintas
49
+
50
+ #### `@mui/x-charts-pro@8.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
51
+
52
+ Same changes as in `@mui/x-charts@8.11.1`.
53
+
54
+ ### Tree View
55
+
56
+ #### `@mui/x-tree-view@8.11.1`
57
+
58
+ - [tree view] Expose the methods to manually refetch the children of an item (#19248) @flaviendelangle
59
+ - [tree view] Use the shared store implementation instead of the custom one (#19261) @flaviendelangle
60
+
61
+ #### `@mui/x-tree-view-pro@8.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
62
+
63
+ Same changes as in `@mui/x-tree-view@8.11.1`.
64
+
65
+ ### Codemod
66
+
67
+ #### `@mui/x-codemod@8.11.1`
68
+
69
+ Internal changes.
70
+
71
+ ### Docs
72
+
73
+ - [docs] Fix grammar and spelling mistakes on the Date and Time Pickers pages (#19300) @mapache-salvaje
74
+ - [docs] Remove wrong legend info (#19383) @JCQuintas
75
+
76
+ ### Core
77
+
78
+ - [internal] Fix action alert (#19388) @oliviertassinari
79
+ - [internal] Fix pnpm valelint to have 0 errors @oliviertassinari
80
+ - [infra] Remove "main" fields from publishable packages (#19407) @brijeshb42
81
+
8
82
  ## 8.11.0
9
83
 
10
84
  _Aug 29, 2025_
@@ -52,7 +52,7 @@ const RichTreeViewProRoot = exports.RichTreeViewProRoot = (0, _zeroStyled.styled
52
52
  outline: 0,
53
53
  position: 'relative'
54
54
  });
55
- const releaseInfo = "MTc1NjQxNDgwMDAwMA==";
55
+ const releaseInfo = "MTc1Njk0NDAwMDAwMA==";
56
56
 
57
57
  /**
58
58
  *
@@ -124,17 +124,19 @@ process.env.NODE_ENV !== "production" ? RichTreeViewPro.propTypes = {
124
124
  */
125
125
  apiRef: _propTypes.default.shape({
126
126
  current: _propTypes.default.shape({
127
- focusItem: _propTypes.default.func.isRequired,
128
- getItem: _propTypes.default.func.isRequired,
129
- getItemDOMElement: _propTypes.default.func.isRequired,
130
- getItemOrderedChildrenIds: _propTypes.default.func.isRequired,
131
- getItemTree: _propTypes.default.func.isRequired,
132
- getParentId: _propTypes.default.func.isRequired,
133
- setEditedItem: _propTypes.default.func.isRequired,
134
- setIsItemDisabled: _propTypes.default.func.isRequired,
135
- setItemExpansion: _propTypes.default.func.isRequired,
136
- setItemSelection: _propTypes.default.func.isRequired,
137
- updateItemLabel: _propTypes.default.func.isRequired
127
+ focusItem: _propTypes.default.func,
128
+ getItem: _propTypes.default.func,
129
+ getItemDOMElement: _propTypes.default.func,
130
+ getItemOrderedChildrenIds: _propTypes.default.func,
131
+ getItemTree: _propTypes.default.func,
132
+ getParentId: _propTypes.default.func,
133
+ isItemExpanded: _propTypes.default.func,
134
+ setEditedItem: _propTypes.default.func,
135
+ setIsItemDisabled: _propTypes.default.func,
136
+ setItemExpansion: _propTypes.default.func,
137
+ setItemSelection: _propTypes.default.func,
138
+ updateItemChildren: _propTypes.default.func,
139
+ updateItemLabel: _propTypes.default.func
138
140
  })
139
141
  }),
140
142
  /**
@@ -15,7 +15,7 @@ export interface RichTreeViewProSlots extends TreeViewSlots, RichTreeViewItemsSl
15
15
  export interface RichTreeViewProSlotProps<R extends {}, Multiple extends boolean | undefined> extends TreeViewSlotProps, RichTreeViewItemsSlotProps {
16
16
  root?: SlotComponentProps<'ul', {}, RichTreeViewProProps<R, Multiple>>;
17
17
  }
18
- export type RichTreeViewProApiRef = React.RefObject<TreeViewPublicAPI<RichTreeViewProPluginSignatures> | undefined>;
18
+ type RichTreeViewProApiRef = React.RefObject<Partial<TreeViewPublicAPI<RichTreeViewProPluginSignatures>> | undefined>;
19
19
  export interface RichTreeViewProPropsBase extends React.HTMLAttributes<HTMLUListElement> {
20
20
  className?: string;
21
21
  /**
@@ -42,4 +42,5 @@ export interface RichTreeViewProProps<R extends {}, Multiple extends boolean | u
42
42
  * The ref object that allows Tree View manipulation. Can be instantiated with `useTreeViewApiRef()`.
43
43
  */
44
44
  apiRef?: RichTreeViewProApiRef;
45
- }
45
+ }
46
+ export {};
@@ -1,3 +1,4 @@
1
1
  export * from "./RichTreeViewPro.js";
2
2
  export * from "./richTreeViewProClasses.js";
3
- export type { RichTreeViewProProps, RichTreeViewProPropsBase, RichTreeViewProSlots, RichTreeViewProSlotProps } from "./RichTreeViewPro.types.js";
3
+ export type { RichTreeViewProProps, RichTreeViewProPropsBase, RichTreeViewProSlots, RichTreeViewProSlotProps } from "./RichTreeViewPro.types.js";
4
+ export type { RichTreeViewProPluginSignatures } from "./RichTreeViewPro.plugins.js";
@@ -45,7 +45,7 @@ export const RichTreeViewProRoot = styled('ul', {
45
45
  outline: 0,
46
46
  position: 'relative'
47
47
  });
48
- const releaseInfo = "MTc1NjQxNDgwMDAwMA==";
48
+ const releaseInfo = "MTc1Njk0NDAwMDAwMA==";
49
49
 
50
50
  /**
51
51
  *
@@ -117,17 +117,19 @@ process.env.NODE_ENV !== "production" ? RichTreeViewPro.propTypes = {
117
117
  */
118
118
  apiRef: PropTypes.shape({
119
119
  current: PropTypes.shape({
120
- focusItem: PropTypes.func.isRequired,
121
- getItem: PropTypes.func.isRequired,
122
- getItemDOMElement: PropTypes.func.isRequired,
123
- getItemOrderedChildrenIds: PropTypes.func.isRequired,
124
- getItemTree: PropTypes.func.isRequired,
125
- getParentId: PropTypes.func.isRequired,
126
- setEditedItem: PropTypes.func.isRequired,
127
- setIsItemDisabled: PropTypes.func.isRequired,
128
- setItemExpansion: PropTypes.func.isRequired,
129
- setItemSelection: PropTypes.func.isRequired,
130
- updateItemLabel: PropTypes.func.isRequired
120
+ focusItem: PropTypes.func,
121
+ getItem: PropTypes.func,
122
+ getItemDOMElement: PropTypes.func,
123
+ getItemOrderedChildrenIds: PropTypes.func,
124
+ getItemTree: PropTypes.func,
125
+ getParentId: PropTypes.func,
126
+ isItemExpanded: PropTypes.func,
127
+ setEditedItem: PropTypes.func,
128
+ setIsItemDisabled: PropTypes.func,
129
+ setItemExpansion: PropTypes.func,
130
+ setItemSelection: PropTypes.func,
131
+ updateItemChildren: PropTypes.func,
132
+ updateItemLabel: PropTypes.func
131
133
  })
132
134
  }),
133
135
  /**
@@ -15,7 +15,7 @@ export interface RichTreeViewProSlots extends TreeViewSlots, RichTreeViewItemsSl
15
15
  export interface RichTreeViewProSlotProps<R extends {}, Multiple extends boolean | undefined> extends TreeViewSlotProps, RichTreeViewItemsSlotProps {
16
16
  root?: SlotComponentProps<'ul', {}, RichTreeViewProProps<R, Multiple>>;
17
17
  }
18
- export type RichTreeViewProApiRef = React.RefObject<TreeViewPublicAPI<RichTreeViewProPluginSignatures> | undefined>;
18
+ type RichTreeViewProApiRef = React.RefObject<Partial<TreeViewPublicAPI<RichTreeViewProPluginSignatures>> | undefined>;
19
19
  export interface RichTreeViewProPropsBase extends React.HTMLAttributes<HTMLUListElement> {
20
20
  className?: string;
21
21
  /**
@@ -42,4 +42,5 @@ export interface RichTreeViewProProps<R extends {}, Multiple extends boolean | u
42
42
  * The ref object that allows Tree View manipulation. Can be instantiated with `useTreeViewApiRef()`.
43
43
  */
44
44
  apiRef?: RichTreeViewProApiRef;
45
- }
45
+ }
46
+ export {};
@@ -1,3 +1,4 @@
1
1
  export * from "./RichTreeViewPro.js";
2
2
  export * from "./richTreeViewProClasses.js";
3
- export type { RichTreeViewProProps, RichTreeViewProPropsBase, RichTreeViewProSlots, RichTreeViewProSlotProps } from "./RichTreeViewPro.types.js";
3
+ export type { RichTreeViewProProps, RichTreeViewProPropsBase, RichTreeViewProSlots, RichTreeViewProSlotProps } from "./RichTreeViewPro.types.js";
4
+ export type { RichTreeViewProPluginSignatures } from "./RichTreeViewPro.plugins.js";
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view-pro v8.11.0
2
+ * @mui/x-tree-view-pro v8.11.1
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
@@ -1,2 +1,3 @@
1
1
  export { useTreeViewItemsReordering } from "./useTreeViewItemsReordering.js";
2
- export type { UseTreeViewItemsReorderingSignature, UseTreeViewItemsReorderingParameters, UseTreeViewItemsReorderingParametersWithDefaults, TreeViewItemReorderPosition } from "./useTreeViewItemsReordering.types.js";
2
+ export type { UseTreeViewItemsReorderingSignature, UseTreeViewItemsReorderingParameters, UseTreeViewItemsReorderingParametersWithDefaults, TreeViewItemReorderPosition } from "./useTreeViewItemsReordering.types.js";
3
+ export { itemsReorderingSelectors } from "./useTreeViewItemsReordering.selectors.js";
@@ -1 +1,2 @@
1
- export { useTreeViewItemsReordering } from "./useTreeViewItemsReordering.js";
1
+ export { useTreeViewItemsReordering } from "./useTreeViewItemsReordering.js";
2
+ export { itemsReorderingSelectors } from "./useTreeViewItemsReordering.selectors.js";
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
- import { useTreeViewContext, isTargetInDescendants, useSelector } from '@mui/x-tree-view/internals';
3
- import { selectorCanItemBeReordered, selectorDraggedItemProperties, selectorIsItemValidReorderingTarget } from "./useTreeViewItemsReordering.selectors.js";
2
+ import { useStore } from '@mui/x-internals/store';
3
+ import { useTreeViewContext, isTargetInDescendants } from '@mui/x-tree-view/internals';
4
+ import { itemsReorderingSelectors } from "./useTreeViewItemsReordering.selectors.js";
4
5
  export const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');
5
6
  export const useTreeViewItemsReorderingItemPlugin = ({
6
7
  props
@@ -13,9 +14,9 @@ export const useTreeViewItemsReorderingItemPlugin = ({
13
14
  itemId
14
15
  } = props;
15
16
  const validActionsRef = React.useRef(null);
16
- const draggedItemProperties = useSelector(store, selectorDraggedItemProperties, itemId);
17
- const canItemBeReordered = useSelector(store, selectorCanItemBeReordered, itemId);
18
- const isValidTarget = useSelector(store, selectorIsItemValidReorderingTarget, itemId);
17
+ const draggedItemProperties = useStore(store, itemsReorderingSelectors.draggedItemProperties, itemId);
18
+ const canItemBeReordered = useStore(store, itemsReorderingSelectors.canItemBeReordered, itemId);
19
+ const isValidTarget = useStore(store, itemsReorderingSelectors.isItemValidDropTarget, itemId);
19
20
  return {
20
21
  propsEnhancers: {
21
22
  root: ({
@@ -1,10 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
- import { selectorIsItemBeingEdited, selectorItemIndex, selectorItemMeta, selectorItemOrderedChildrenIds } from '@mui/x-tree-view/internals';
4
+ import { itemsSelectors, labelSelectors } from '@mui/x-tree-view/internals';
5
5
  import { chooseActionToApply, isAncestor, moveItemInTree } from "./useTreeViewItemsReordering.utils.js";
6
6
  import { useTreeViewItemsReorderingItemPlugin } from "./useTreeViewItemsReordering.itemPlugin.js";
7
- import { selectorCurrentItemReordering } from "./useTreeViewItemsReordering.selectors.js";
7
+ import { itemsReorderingSelectors } from "./useTreeViewItemsReordering.selectors.js";
8
8
  export const useTreeViewItemsReordering = ({
9
9
  params,
10
10
  store
@@ -20,7 +20,7 @@ export const useTreeViewItemsReordering = ({
20
20
  return true;
21
21
  }, [params.itemsReordering, params.isItemReorderable]);
22
22
  const getDroppingTargetValidActions = React.useCallback(itemId => {
23
- const currentReorder = selectorCurrentItemReordering(store.value);
23
+ const currentReorder = itemsReorderingSelectors.currentReorder(store.state);
24
24
  if (!currentReorder) {
25
25
  throw new Error('There is no ongoing reordering.');
26
26
  }
@@ -28,11 +28,11 @@ export const useTreeViewItemsReordering = ({
28
28
  return {};
29
29
  }
30
30
  const canMoveItemToNewPosition = params.canMoveItemToNewPosition;
31
- const targetItemMeta = selectorItemMeta(store.value, itemId);
32
- const targetItemIndex = selectorItemIndex(store.value, targetItemMeta.id);
33
- const draggedItemMeta = selectorItemMeta(store.value, currentReorder.draggedItemId);
34
- const draggedItemIndex = selectorItemIndex(store.value, draggedItemMeta.id);
35
- const isTargetLastSibling = targetItemIndex === selectorItemOrderedChildrenIds(store.value, targetItemMeta.parentId).length - 1;
31
+ const targetItemMeta = itemsSelectors.itemMeta(store.state, itemId);
32
+ const targetItemIndex = itemsSelectors.itemIndex(store.state, targetItemMeta.id);
33
+ const draggedItemMeta = itemsSelectors.itemMeta(store.state, currentReorder.draggedItemId);
34
+ const draggedItemIndex = itemsSelectors.itemIndex(store.state, draggedItemMeta.id);
35
+ const isTargetLastSibling = targetItemIndex === itemsSelectors.itemOrderedChildrenIds(store.state, targetItemMeta.parentId).length - 1;
36
36
  const oldPosition = {
37
37
  parentId: draggedItemMeta.parentId,
38
38
  index: draggedItemIndex
@@ -68,7 +68,7 @@ export const useTreeViewItemsReordering = ({
68
68
  } : null,
69
69
  'move-to-parent': targetItemMeta.parentId == null ? null : {
70
70
  parentId: targetItemMeta.parentId,
71
- index: selectorItemOrderedChildrenIds(store.value, targetItemMeta.parentId).length
71
+ index: itemsSelectors.itemOrderedChildrenIds(store.state, targetItemMeta.parentId).length
72
72
  }
73
73
  };
74
74
  const validActions = {};
@@ -81,64 +81,56 @@ export const useTreeViewItemsReordering = ({
81
81
  return validActions;
82
82
  }, [store, params.canMoveItemToNewPosition]);
83
83
  const startDraggingItem = React.useCallback(itemId => {
84
- store.update(prevState => {
85
- const isItemBeingEditing = selectorIsItemBeingEdited(prevState, itemId);
86
- if (isItemBeingEditing) {
87
- return prevState;
84
+ const isItemBeingEdited = labelSelectors.isItemBeingEdited(store.state, itemId);
85
+ if (isItemBeingEdited) {
86
+ return;
87
+ }
88
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
89
+ currentReorder: {
90
+ targetItemId: itemId,
91
+ draggedItemId: itemId,
92
+ action: null,
93
+ newPosition: null
88
94
  }
89
- return _extends({}, prevState, {
90
- itemsReordering: _extends({}, prevState.itemsReordering, {
91
- currentReorder: {
92
- targetItemId: itemId,
93
- draggedItemId: itemId,
94
- action: null,
95
- newPosition: null
96
- }
97
- })
98
- });
99
- });
95
+ }));
100
96
  }, [store]);
101
97
  const cancelDraggingItem = React.useCallback(() => {
102
- const currentReorder = selectorCurrentItemReordering(store.value);
98
+ const currentReorder = itemsReorderingSelectors.currentReorder(store.state);
103
99
  if (currentReorder == null) {
104
100
  return;
105
101
  }
106
- store.update(prevState => _extends({}, prevState, {
107
- itemsReordering: _extends({}, prevState.itemsReordering, {
108
- currentReorder: null
109
- })
102
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
103
+ currentReorder: null
110
104
  }));
111
105
  }, [store]);
112
106
  const completeDraggingItem = React.useCallback(itemId => {
113
- const currentReorder = selectorCurrentItemReordering(store.value);
107
+ const currentReorder = itemsReorderingSelectors.currentReorder(store.state);
114
108
  if (currentReorder == null || currentReorder.draggedItemId !== itemId) {
115
109
  return;
116
110
  }
117
111
  if (currentReorder.draggedItemId === currentReorder.targetItemId || currentReorder.action == null || currentReorder.newPosition == null) {
118
- store.update(prevState => _extends({}, prevState, {
119
- itemsReordering: _extends({}, prevState.itemsReordering, {
120
- currentReorder: null
121
- })
112
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
113
+ currentReorder: null
122
114
  }));
123
115
  return;
124
116
  }
125
- const draggedItemMeta = selectorItemMeta(store.value, currentReorder.draggedItemId);
117
+ const draggedItemMeta = itemsSelectors.itemMeta(store.state, currentReorder.draggedItemId);
126
118
  const oldPosition = {
127
119
  parentId: draggedItemMeta.parentId,
128
- index: selectorItemIndex(store.value, draggedItemMeta.id)
120
+ index: itemsSelectors.itemIndex(store.state, draggedItemMeta.id)
129
121
  };
130
122
  const newPosition = currentReorder.newPosition;
131
- store.update(prevState => _extends({}, prevState, {
132
- itemsReordering: _extends({}, prevState.itemsReordering, {
123
+ store.update({
124
+ itemsReordering: _extends({}, store.state.itemsReordering, {
133
125
  currentReorder: null
134
126
  }),
135
127
  items: moveItemInTree({
136
128
  itemToMoveId: itemId,
137
129
  newPosition,
138
130
  oldPosition,
139
- prevState: prevState.items
131
+ prevState: store.state.items
140
132
  })
141
- }));
133
+ });
142
134
  const onItemPositionChange = params.onItemPositionChange;
143
135
  onItemPositionChange?.({
144
136
  itemId,
@@ -154,40 +146,34 @@ export const useTreeViewItemsReordering = ({
154
146
  cursorX,
155
147
  contentElement
156
148
  }) => {
157
- store.update(prevState => {
158
- const prevItemReorder = prevState.itemsReordering.currentReorder;
159
- if (prevItemReorder == null || isAncestor(store, itemId, prevItemReorder.draggedItemId)) {
160
- return prevState;
161
- }
162
- const action = chooseActionToApply({
163
- itemChildrenIndentation: params.itemChildrenIndentation,
164
- validActions,
165
- targetHeight,
166
- targetDepth: prevState.items.itemMetaLookup[itemId].depth,
167
- cursorY,
168
- cursorX,
169
- contentElement
170
- });
171
- const newPosition = action == null ? null : validActions[action];
172
- if (prevItemReorder.targetItemId === itemId && prevItemReorder.action === action && prevItemReorder.newPosition?.parentId === newPosition?.parentId && prevItemReorder.newPosition?.index === newPosition?.index) {
173
- return prevState;
174
- }
175
- return _extends({}, prevState, {
176
- itemsReordering: _extends({}, prevState.itemsReordering, {
177
- currentReorder: _extends({}, prevItemReorder, {
178
- targetItemId: itemId,
179
- newPosition,
180
- action
181
- })
182
- })
183
- });
149
+ const prevItemReorder = store.state.itemsReordering.currentReorder;
150
+ if (prevItemReorder == null || isAncestor(store, itemId, prevItemReorder.draggedItemId)) {
151
+ return;
152
+ }
153
+ const action = chooseActionToApply({
154
+ itemChildrenIndentation: params.itemChildrenIndentation,
155
+ validActions,
156
+ targetHeight,
157
+ targetDepth: store.state.items.itemMetaLookup[itemId].depth,
158
+ cursorY,
159
+ cursorX,
160
+ contentElement
184
161
  });
162
+ const newPosition = action == null ? null : validActions[action];
163
+ if (prevItemReorder.targetItemId === itemId && prevItemReorder.action === action && prevItemReorder.newPosition?.parentId === newPosition?.parentId && prevItemReorder.newPosition?.index === newPosition?.index) {
164
+ return;
165
+ }
166
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
167
+ currentReorder: _extends({}, prevItemReorder, {
168
+ targetItemId: itemId,
169
+ newPosition,
170
+ action
171
+ })
172
+ }));
185
173
  }, [store, params.itemChildrenIndentation]);
186
174
  useEnhancedEffect(() => {
187
- store.update(prevState => _extends({}, prevState, {
188
- itemsReordering: _extends({}, prevState.itemsReordering, {
189
- isItemReorderable: params.itemsReordering ? params.isItemReorderable ?? (() => true) : () => false
190
- })
175
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
176
+ isItemReorderable: params.itemsReordering ? params.isItemReorderable ?? (() => true) : () => false
191
177
  }));
192
178
  }, [store, params.itemsReordering, params.isItemReorderable]);
193
179
  return {