react-native-tree-multi-select 3.0.0-beta.3 → 3.0.0-beta.5

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 (96) hide show
  1. package/README.md +100 -30
  2. package/lib/module/TreeView.js +36 -31
  3. package/lib/module/TreeView.js.map +1 -1
  4. package/lib/module/components/CheckboxView.js +8 -4
  5. package/lib/module/components/CheckboxView.js.map +1 -1
  6. package/lib/module/components/CustomExpandCollapseIcon.js +2 -2
  7. package/lib/module/components/CustomExpandCollapseIcon.js.map +1 -1
  8. package/lib/module/components/DragOverlay.js +17 -5
  9. package/lib/module/components/DragOverlay.js.map +1 -1
  10. package/lib/module/components/DropIndicator.js +2 -2
  11. package/lib/module/components/DropIndicator.js.map +1 -1
  12. package/lib/module/components/NodeList.js +78 -58
  13. package/lib/module/components/NodeList.js.map +1 -1
  14. package/lib/module/constants/treeView.constants.js +3 -0
  15. package/lib/module/constants/treeView.constants.js.map +1 -1
  16. package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
  17. package/lib/module/helpers/moveTreeNode.helper.js +30 -0
  18. package/lib/module/helpers/moveTreeNode.helper.js.map +1 -1
  19. package/lib/module/helpers/selectAll.helper.js.map +1 -1
  20. package/lib/module/helpers/toggleCheckbox.helper.js +43 -60
  21. package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -1
  22. package/lib/module/hooks/useDragDrop.js +146 -65
  23. package/lib/module/hooks/useDragDrop.js.map +1 -1
  24. package/lib/module/{handlers/ScrollToNodeHandler.js → hooks/useScrollToNode.js} +27 -26
  25. package/lib/module/hooks/useScrollToNode.js.map +1 -0
  26. package/lib/module/index.js +1 -0
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/module/jest.setup.js +14 -1
  29. package/lib/module/jest.setup.js.map +1 -1
  30. package/lib/module/store/treeView.store.js +3 -0
  31. package/lib/module/store/treeView.store.js.map +1 -1
  32. package/lib/module/utils/typedMemo.js +3 -3
  33. package/lib/module/utils/typedMemo.js.map +1 -1
  34. package/lib/module/utils/useDeepCompareEffect.js +5 -5
  35. package/lib/module/utils/useDeepCompareEffect.js.map +1 -1
  36. package/lib/typescript/src/TreeView.d.ts +3 -3
  37. package/lib/typescript/src/TreeView.d.ts.map +1 -1
  38. package/lib/typescript/src/components/CheckboxView.d.ts +1 -2
  39. package/lib/typescript/src/components/CheckboxView.d.ts.map +1 -1
  40. package/lib/typescript/src/components/CustomExpandCollapseIcon.d.ts +1 -2
  41. package/lib/typescript/src/components/CustomExpandCollapseIcon.d.ts.map +1 -1
  42. package/lib/typescript/src/components/DragOverlay.d.ts +1 -0
  43. package/lib/typescript/src/components/DragOverlay.d.ts.map +1 -1
  44. package/lib/typescript/src/components/DropIndicator.d.ts +1 -2
  45. package/lib/typescript/src/components/DropIndicator.d.ts.map +1 -1
  46. package/lib/typescript/src/components/NodeList.d.ts.map +1 -1
  47. package/lib/typescript/src/constants/treeView.constants.d.ts +2 -0
  48. package/lib/typescript/src/constants/treeView.constants.d.ts.map +1 -1
  49. package/lib/typescript/src/helpers/expandCollapse.helper.d.ts +2 -2
  50. package/lib/typescript/src/helpers/expandCollapse.helper.d.ts.map +1 -1
  51. package/lib/typescript/src/helpers/moveTreeNode.helper.d.ts.map +1 -1
  52. package/lib/typescript/src/helpers/selectAll.helper.d.ts +4 -4
  53. package/lib/typescript/src/helpers/selectAll.helper.d.ts.map +1 -1
  54. package/lib/typescript/src/helpers/toggleCheckbox.helper.d.ts +3 -0
  55. package/lib/typescript/src/helpers/toggleCheckbox.helper.d.ts.map +1 -1
  56. package/lib/typescript/src/hooks/useDragDrop.d.ts +24 -8
  57. package/lib/typescript/src/hooks/useDragDrop.d.ts.map +1 -1
  58. package/lib/typescript/src/{handlers/ScrollToNodeHandler.d.ts → hooks/useScrollToNode.d.ts} +13 -15
  59. package/lib/typescript/src/hooks/useScrollToNode.d.ts.map +1 -0
  60. package/lib/typescript/src/index.d.ts +4 -3
  61. package/lib/typescript/src/index.d.ts.map +1 -1
  62. package/lib/typescript/src/jest.setup.d.ts +1 -1
  63. package/lib/typescript/src/jest.setup.d.ts.map +1 -1
  64. package/lib/typescript/src/store/treeView.store.d.ts +2 -1
  65. package/lib/typescript/src/store/treeView.store.d.ts.map +1 -1
  66. package/lib/typescript/src/types/dragDrop.types.d.ts +10 -0
  67. package/lib/typescript/src/types/dragDrop.types.d.ts.map +1 -1
  68. package/lib/typescript/src/types/treeView.types.d.ts +79 -41
  69. package/lib/typescript/src/types/treeView.types.d.ts.map +1 -1
  70. package/lib/typescript/src/utils/typedMemo.d.ts +1 -1
  71. package/lib/typescript/src/utils/typedMemo.d.ts.map +1 -1
  72. package/lib/typescript/src/utils/useDeepCompareEffect.d.ts +2 -2
  73. package/lib/typescript/src/utils/useDeepCompareEffect.d.ts.map +1 -1
  74. package/package.json +32 -15
  75. package/src/TreeView.tsx +57 -35
  76. package/src/components/CheckboxView.tsx +7 -4
  77. package/src/components/CustomExpandCollapseIcon.tsx +2 -2
  78. package/src/components/DragOverlay.tsx +19 -6
  79. package/src/components/DropIndicator.tsx +2 -2
  80. package/src/components/NodeList.tsx +87 -60
  81. package/src/constants/treeView.constants.ts +4 -1
  82. package/src/helpers/expandCollapse.helper.ts +5 -5
  83. package/src/helpers/moveTreeNode.helper.ts +33 -0
  84. package/src/helpers/selectAll.helper.ts +10 -10
  85. package/src/helpers/toggleCheckbox.helper.ts +56 -68
  86. package/src/hooks/useDragDrop.ts +190 -80
  87. package/src/{handlers/ScrollToNodeHandler.tsx → hooks/useScrollToNode.ts} +48 -45
  88. package/src/index.tsx +11 -0
  89. package/src/jest.setup.ts +14 -1
  90. package/src/store/treeView.store.ts +6 -1
  91. package/src/types/dragDrop.types.ts +12 -0
  92. package/src/types/treeView.types.ts +87 -43
  93. package/src/utils/typedMemo.ts +3 -3
  94. package/src/utils/useDeepCompareEffect.ts +13 -7
  95. package/lib/module/handlers/ScrollToNodeHandler.js.map +0 -1
  96. package/lib/typescript/src/handlers/ScrollToNodeHandler.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["getTreeViewStore","toggleCheckboxes","storeId","ids","forceCheck","treeViewStore","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","selectionPropagation","getState","toChildren","toParents","tempChecked","Set","tempIndeterminate","affectedNodes","nodeDepths","Map","forEach","id","node","get","isChecked","has","newCheckedState","undefined","add","delete","updateChildrenIteratively","nodesToUpdate","currentNodeId","parentNodeId","size","sortedNodes","Array","from","sort","a","b","getNodeDepth","nodeId","updateNodeState","rootId","childrenChecked","stack","length","pop","children","childNode","push","depth","set","allChildrenChecked","anyChildCheckedOrIndeterminate","child","isIndeterminate","recalculateCheckedStates","parentNodes","getDepth","currentId","parentId","allChecked","anyCheckedOrIndeterminate"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getTreeViewStore","getCheckboxValue","isChecked","isIndeterminate","updateParentCheckState","parentId","children","tempChecked","tempIndeterminate","allChecked","anyCheckedOrIndeterminate","child","has","id","add","delete","toggleCheckboxes","storeId","ids","forceCheck","treeViewStore","checked","updateChecked","indeterminate","updateIndeterminate","nodeMap","childToParentMap","selectionPropagation","getState","toChildren","toParents","Set","affectedNodes","nodeDepths","Map","forEach","node","get","newCheckedState","undefined","updateChildrenIteratively","nodesToUpdate","currentNodeId","parentNodeId","size","sortedNodes","Array","from","sort","a","b","getNodeDepth","nodeId","updateNodeState","rootId","childrenChecked","stack","length","pop","childNode","push","depth","set","recalculateCheckedStates","parentNodes","getDepth","currentId"],"sourceRoot":"../../../src","sources":["helpers/toggleCheckbox.helper.ts"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useEffect, useRef, useState } from "react";
4
- import { Animated, PanResponder } from "react-native";
4
+ import { Animated, PanResponder, Platform } from "react-native";
5
5
  import { getTreeViewStore } from "../store/treeView.store.js";
6
6
  import { collapseNodes, expandNodes, handleToggleExpand, initializeNodeMaps, recalculateCheckedStates } from "../helpers/index.js";
7
7
  import { moveTreeNode } from "../helpers/moveTreeNode.helper.js";
8
+ import { listHeaderFooterPadding } from "../constants/treeView.constants.js";
9
+
10
+ // Android reports locationY slightly differently, causing the overlay
11
+ // to appear ~1 item height closer to the finger than on iOS.
12
+ const PLATFORM_OVERLAY_Y_CORRECTION = Platform.OS === "android" ? -2 : 0;
8
13
  export function useDragDrop(params) {
9
14
  const {
10
15
  storeId,
@@ -12,7 +17,9 @@ export function useDragDrop(params) {
12
17
  flashListRef,
13
18
  containerRef,
14
19
  dragEnabled,
20
+ onDragStart,
15
21
  onDragEnd,
22
+ onDragCancel,
16
23
  longPressDuration,
17
24
  autoScrollThreshold,
18
25
  autoScrollSpeed,
@@ -20,7 +27,13 @@ export function useDragDrop(params) {
20
27
  measuredItemHeightRef,
21
28
  dragOverlayOffset,
22
29
  autoExpandDelay,
23
- indentationMultiplier
30
+ indentationMultiplier,
31
+ canDrop: canDropCallback,
32
+ maxDepth,
33
+ canNodeHaveChildren,
34
+ canDrag,
35
+ scrollToNodeHandlerRef,
36
+ autoScrollToDroppedNode
24
37
  } = params;
25
38
 
26
39
  // --- Refs for mutable state (no stale closures in PanResponder) ---
@@ -31,6 +44,7 @@ export function useDragDrop(params) {
31
44
  const longPressTimerRef = useRef(null);
32
45
  const containerPageXRef = useRef(0);
33
46
  const containerPageYRef = useRef(0);
47
+ const containerWidthRef = useRef(0);
34
48
  const containerHeightRef = useRef(0);
35
49
  const grabOffsetYRef = useRef(0);
36
50
  const scrollOffsetRef = useRef(0);
@@ -58,13 +72,40 @@ export function useDragDrop(params) {
58
72
  // Previous drop target for hysteresis (prevents flicker between "below N" / "above N+1")
59
73
  const prevDropTargetRef = useRef(null);
60
74
 
75
+ // Depth of the dragged subtree (computed once at drag start, used for maxDepth check)
76
+ const draggedSubtreeDepthRef = useRef(0);
77
+
61
78
  // Keep flattenedNodes ref current for PanResponder closures
62
79
  const flattenedNodesRef = useRef(flattenedNodes);
63
80
  flattenedNodesRef.current = flattenedNodes;
64
81
 
65
82
  // Keep callbacks current
83
+ const onDragStartRef = useRef(onDragStart);
84
+ onDragStartRef.current = onDragStart;
66
85
  const onDragEndRef = useRef(onDragEnd);
67
86
  onDragEndRef.current = onDragEnd;
87
+ const onDragCancelRef = useRef(onDragCancel);
88
+ onDragCancelRef.current = onDragCancel;
89
+ const canDropRef = useRef(canDropCallback);
90
+ canDropRef.current = canDropCallback;
91
+ const canNodeHaveChildrenRef = useRef(canNodeHaveChildren);
92
+ canNodeHaveChildrenRef.current = canNodeHaveChildren;
93
+ const canDragRef = useRef(canDrag);
94
+ canDragRef.current = canDrag;
95
+
96
+ // Keep config values current for PanResponder closures
97
+ const dragOverlayOffsetRef = useRef(dragOverlayOffset);
98
+ dragOverlayOffsetRef.current = dragOverlayOffset;
99
+ const autoScrollThresholdRef = useRef(autoScrollThreshold);
100
+ autoScrollThresholdRef.current = autoScrollThreshold;
101
+ const autoScrollSpeedParamRef = useRef(autoScrollSpeed);
102
+ autoScrollSpeedParamRef.current = autoScrollSpeed;
103
+ const autoExpandDelayRef = useRef(autoExpandDelay);
104
+ autoExpandDelayRef.current = autoExpandDelay;
105
+ const indentationMultiplierRef = useRef(indentationMultiplier);
106
+ indentationMultiplierRef.current = indentationMultiplier;
107
+ const maxDepthRef = useRef(maxDepth);
108
+ maxDepthRef.current = maxDepth;
68
109
 
69
110
  // --- React state (triggers re-renders only at drag start/end + indicator changes) ---
70
111
  const [isDragging, setIsDragging] = useState(false);
@@ -104,14 +145,30 @@ export function useDragDrop(params) {
104
145
  return descendants;
105
146
  }, [storeId]);
106
147
 
148
+ // --- Get the maximum depth of a subtree (0 for leaf nodes) ---
149
+ const getSubtreeDepth = useCallback(nodeId => {
150
+ const store = getTreeViewStore(storeId);
151
+ const {
152
+ nodeMap
153
+ } = store.getState();
154
+ const node = nodeMap.get(nodeId);
155
+ if (!node?.children?.length) return 0;
156
+ let max = 0;
157
+ for (const child of node.children) {
158
+ max = Math.max(max, 1 + getSubtreeDepth(child.id));
159
+ }
160
+ return max;
161
+ }, [storeId]);
162
+
107
163
  // --- Initiate drag ---
108
164
  const initiateDrag = useCallback((nodeId, pageY, locationY, nodeIndex) => {
109
165
  if (!dragEnabled) return;
110
166
  const container = containerRef.current;
111
167
  if (!container) return;
112
- container.measureInWindow((x, y, _w, h) => {
168
+ container.measureInWindow((x, y, w, h) => {
113
169
  containerPageXRef.current = x;
114
170
  containerPageYRef.current = y;
171
+ containerWidthRef.current = w;
115
172
  containerHeightRef.current = h;
116
173
 
117
174
  // Find the node in flattened list
@@ -133,11 +190,11 @@ export function useDragDrop(params) {
133
190
  draggedNodeRef.current = node;
134
191
  draggedNodeIdRef.current = nodeId;
135
192
  draggedNodeIndexRef.current = nodeIndex;
193
+ draggedSubtreeDepthRef.current = getSubtreeDepth(nodeId);
136
194
 
137
- // Use measured item height if available, fall back to estimatedItemSize
195
+ // Use measured item height if available, fall back to default
138
196
  const measured = measuredItemHeightRef.current;
139
- const estimatedSize = flashListRef.current?.props?.estimatedItemSize ?? 36;
140
- itemHeightRef.current = measured > 0 ? measured : estimatedSize;
197
+ itemHeightRef.current = measured > 0 ? measured : 36;
141
198
 
142
199
  // Calculate headerOffset dynamically:
143
200
  // fingerLocalY = pageY - containerPageY
@@ -148,9 +205,8 @@ export function useDragDrop(params) {
148
205
 
149
206
  // Delta-based auto-scroll: compute finger's position in the container
150
207
  // from the node's known index (avoids unreliable containerPageY).
151
- // The FlashList header (padding:5 → ~10px) + nodeIndex * itemHeight - scroll + locationY
152
208
  const iH = itemHeightRef.current;
153
- const listHeaderHeight = 10; // HeaderFooterView has padding: 5 → 10px total
209
+ const listHeaderHeight = listHeaderFooterPadding * 2;
154
210
  initialFingerPageYRef.current = pageY;
155
211
  initialFingerContainerYRef.current = listHeaderHeight + nodeIndex * iH - scrollOffsetRef.current + locationY;
156
212
 
@@ -163,7 +219,7 @@ export function useDragDrop(params) {
163
219
  store.getState().updateInvalidDragTargetIds(descendants);
164
220
 
165
221
  // Set overlay initial position (with configurable offset)
166
- const overlayLocalY = fingerLocalY - locationY + dragOverlayOffset * itemHeightRef.current;
222
+ const overlayLocalY = fingerLocalY - locationY + (dragOverlayOffsetRef.current + PLATFORM_OVERLAY_Y_CORRECTION) * itemHeightRef.current;
167
223
  overlayY.setValue(overlayLocalY);
168
224
 
169
225
  // Reset magnetic overlay
@@ -178,17 +234,28 @@ export function useDragDrop(params) {
178
234
  setEffectiveDropLevel(node.level ?? 0);
179
235
  setDropTarget(null);
180
236
 
237
+ // Notify consumer that drag has started
238
+ onDragStartRef.current?.({
239
+ draggedNodeId: nodeId
240
+ });
241
+
181
242
  // Start auto-scroll loop
182
243
  startAutoScrollLoop();
183
244
  });
184
245
  },
185
246
  // eslint-disable-next-line react-hooks/exhaustive-deps
186
- [dragEnabled, storeId, containerRef, flashListRef, getDescendantIds, overlayY]);
247
+ [dragEnabled, storeId, containerRef, flashListRef, getDescendantIds, getSubtreeDepth, overlayY]);
187
248
 
188
249
  // --- Handle node touch start (long press detection) ---
189
250
  const handleNodeTouchStart = useCallback((nodeId, pageY, locationY, nodeIndex) => {
190
251
  if (!dragEnabled) return;
191
252
 
253
+ // Check if this node can be dragged
254
+ if (canDragRef.current) {
255
+ const node = flattenedNodesRef.current[nodeIndex];
256
+ if (node && !canDragRef.current(node)) return;
257
+ }
258
+
192
259
  // Cancel any existing timer
193
260
  cancelLongPressTimer();
194
261
 
@@ -223,8 +290,8 @@ export function useDragDrop(params) {
223
290
  autoScrollSpeedRef.current = 0;
224
291
  }, []);
225
292
  const updateAutoScroll = useCallback(fingerInContainer => {
226
- const threshold = autoScrollThreshold;
227
- const maxSpeed = 8 * autoScrollSpeed;
293
+ const threshold = autoScrollThresholdRef.current;
294
+ const maxSpeed = 8 * autoScrollSpeedParamRef.current;
228
295
  const containerH = containerHeightRef.current;
229
296
  if (fingerInContainer < threshold) {
230
297
  // Scroll up
@@ -237,7 +304,7 @@ export function useDragDrop(params) {
237
304
  } else {
238
305
  autoScrollSpeedRef.current = 0;
239
306
  }
240
- }, [autoScrollThreshold, autoScrollSpeed]);
307
+ }, []);
241
308
 
242
309
  // --- Cancel auto-expand timer ---
243
310
  const cancelAutoExpandTimer = useCallback(() => {
@@ -264,14 +331,34 @@ export function useDragDrop(params) {
264
331
  // Determine zone within item
265
332
  const positionInItem = (adjustedContentY - clampedIndex * iH) / iH;
266
333
  let position;
267
- if (positionInItem < 0.15) {
334
+ if (positionInItem < 0.25) {
268
335
  position = "above";
269
- } else if (positionInItem > 0.85) {
336
+ } else if (positionInItem > 0.75) {
270
337
  position = "below";
271
338
  } else {
272
339
  position = "inside";
273
340
  }
274
341
 
342
+ // --- Determine if "inside" drop is allowed for this target ---
343
+ const canDropInsideTarget = (() => {
344
+ // canNodeHaveChildren: structural constraint
345
+ if (canNodeHaveChildrenRef.current && !canNodeHaveChildrenRef.current(targetNode)) {
346
+ return false;
347
+ }
348
+ // maxDepth: the dragged subtree at (targetLevel + 1) must not exceed maxDepth
349
+ if (maxDepthRef.current !== undefined) {
350
+ const targetLevel = targetNode.level ?? 0;
351
+ const deepest = targetLevel + 1 + draggedSubtreeDepthRef.current;
352
+ if (deepest > maxDepthRef.current) return false;
353
+ }
354
+ return true;
355
+ })();
356
+
357
+ // If "inside" is not allowed, convert to nearest zone
358
+ if (position === "inside" && !canDropInsideTarget) {
359
+ position = positionInItem < 0.5 ? "above" : "below";
360
+ }
361
+
275
362
  // --- Horizontal control at level cliffs ---
276
363
  // At the boundary between nodes at different depths, the user's
277
364
  // horizontal finger position decides the drop level:
@@ -284,7 +371,7 @@ export function useDragDrop(params) {
284
371
  let logicalTargetId = null;
285
372
  let logicalPosition = null;
286
373
  let visualDropLevel = null;
287
- if (position === "below" || position === "inside") {
374
+ if (position === "below") {
288
375
  const currentLevel = targetNode.level ?? 0;
289
376
  let isCliff = false;
290
377
  let shallowLevel = 0;
@@ -301,8 +388,9 @@ export function useDragDrop(params) {
301
388
  shallowLevel = 0;
302
389
  }
303
390
  if (isCliff) {
304
- // Generous threshold: midpoint of the two levels + 2× indent buffer
305
- const threshold = (currentLevel + shallowLevel) / 2 * indentationMultiplier + indentationMultiplier * 2;
391
+ // Midpoint of the item's visible content area
392
+ const itemLeftEdge = currentLevel * indentationMultiplierRef.current;
393
+ const threshold = itemLeftEdge + (containerWidthRef.current - itemLeftEdge) * 0.3;
306
394
  if (fingerLocalX < threshold) {
307
395
  // User wants the shallow level
308
396
  if (clampedIndex < nodes.length - 1) {
@@ -337,8 +425,8 @@ export function useDragDrop(params) {
337
425
  const prevLevel = prevNode?.level ?? 0;
338
426
  const currentLevel = targetNode.level ?? 0;
339
427
  if (prevNode && prevLevel > currentLevel) {
340
- // Level cliff above - same generous threshold
341
- const threshold = (prevLevel + currentLevel) / 2 * indentationMultiplier + indentationMultiplier * 2;
428
+ const itemLeftEdge = prevLevel * indentationMultiplierRef.current;
429
+ const threshold = itemLeftEdge + (containerWidthRef.current - itemLeftEdge) * 0.3;
342
430
  if (fingerLocalX >= threshold) {
343
431
  clampedIndex = clampedIndex - 1;
344
432
  targetNode = prevNode;
@@ -347,25 +435,15 @@ export function useDragDrop(params) {
347
435
  }
348
436
  }
349
437
 
350
- // --- Suppress "below" when it's redundant or confusing ---
351
- // After horizontal control, any remaining "below" that isn't at a
352
- // cliff is redundant with "above" on the next node → show "inside".
353
- if (position === "below") {
438
+ // --- Suppress "below" when it's semantically confusing ---
439
+ // For expanded parents, "below" visually sits at the parent/child
440
+ // junction but semantically inserts as a sibling after the entire
441
+ // subtree. Convert to "inside" which is clearer.
442
+ if (position === "below" && canDropInsideTarget) {
354
443
  const expandedSet = getTreeViewStore(storeId).getState().expanded;
355
-
356
- // (a) Expanded parent: "below" visually sits at the parent/child junction
357
- // but semantically inserts as a sibling after the entire subtree.
358
444
  if (targetNode.children?.length && expandedSet.has(targetNode.id)) {
359
445
  position = "inside";
360
446
  }
361
- // (b) No level cliff below: convert to "inside" so the highlight
362
- // covers the full bottom of the node.
363
- else if (clampedIndex < nodes.length - 1) {
364
- const nextNode = nodes[clampedIndex + 1];
365
- if (nextNode && (nextNode.level ?? 0) >= (targetNode.level ?? 0)) {
366
- position = "inside";
367
- }
368
- }
369
447
  }
370
448
 
371
449
  // --- Hysteresis: prevent flicker between "below N" and "above N+1" ---
@@ -400,7 +478,15 @@ export function useDragDrop(params) {
400
478
  draggedNodeId,
401
479
  expanded
402
480
  } = store.getState();
403
- const isValid = targetNode.id !== draggedNodeId && !invalidDragTargetIds.has(targetNode.id);
481
+
482
+ // maxDepth check for above/below (sibling) positions
483
+ let maxDepthValid = true;
484
+ if (maxDepthRef.current !== undefined && (position === "above" || position === "below")) {
485
+ const targetLevel = targetNode.level ?? 0;
486
+ const deepest = targetLevel + draggedSubtreeDepthRef.current;
487
+ if (deepest > maxDepthRef.current) maxDepthValid = false;
488
+ }
489
+ const isValid = targetNode.id !== draggedNodeId && !invalidDragTargetIds.has(targetNode.id) && maxDepthValid && (!canDropRef.current || canDropRef.current(draggedNodeRef.current, targetNode, position));
404
490
 
405
491
  // --- Auto-expand: if hovering "inside" a collapsed expandable node ---
406
492
  if (isValid && position === "inside" && targetNode.children?.length && !expanded.has(targetNode.id)) {
@@ -411,9 +497,9 @@ export function useDragDrop(params) {
411
497
  autoExpandTimerRef.current = setTimeout(() => {
412
498
  autoExpandTimerRef.current = null;
413
499
  // Expand the node and track it
414
- handleToggleExpand(storeId, targetNode.id);
500
+ expandNodes(storeId, [targetNode.id]);
415
501
  autoExpandedDuringDragRef.current.add(targetNode.id);
416
- }, autoExpandDelay);
502
+ }, autoExpandDelayRef.current);
417
503
  }
418
504
  } else {
419
505
  // Not hovering inside a collapsed expandable node - cancel timer
@@ -439,7 +525,7 @@ export function useDragDrop(params) {
439
525
  // Counteract that visual jump with an initial translateX offset,
440
526
  // then spring to 0 for a smooth "magnetic snap" transition.
441
527
  if (prevLevel !== effectiveLevel) {
442
- overlayX.setValue((prevLevel - effectiveLevel) * indentationMultiplier);
528
+ overlayX.setValue((prevLevel - effectiveLevel) * indentationMultiplierRef.current);
443
529
  Animated.spring(overlayX, {
444
530
  toValue: 0,
445
531
  useNativeDriver: true,
@@ -482,7 +568,7 @@ export function useDragDrop(params) {
482
568
  }
483
569
  return newTarget;
484
570
  });
485
- }, [storeId, autoExpandDelay, cancelAutoExpandTimer, indentationMultiplier, overlayX]);
571
+ }, [storeId, cancelAutoExpandTimer, overlayX]);
486
572
 
487
573
  // --- Handle drag end ---
488
574
  const handleDragEnd = useCallback((fingerPageY, fingerPageX) => {
@@ -541,30 +627,25 @@ export function useDragDrop(params) {
541
627
  newTreeData: newData
542
628
  });
543
629
 
544
- // Scroll to the dropped node after React processes the expansion,
545
- // but only if it's outside the visible viewport. An animated
546
- // scroll would consume the user's next touch (RN stops the
547
- // animation on tap), so we skip when the node is already visible.
548
- setTimeout(() => {
549
- const nodes = flattenedNodesRef.current;
550
- const idx = nodes.findIndex(n => n.id === droppedNodeId);
551
- if (idx < 0) return;
552
- const itemH = itemHeightRef.current;
553
- const scrollTop = scrollOffsetRef.current;
554
- const containerH = containerHeightRef.current;
555
- const estimatedTop = idx * itemH;
556
- const estimatedBottom = estimatedTop + itemH;
557
-
558
- // Already in view no scroll needed
559
- if (estimatedTop >= scrollTop && estimatedBottom <= scrollTop + containerH) {
560
- return;
561
- }
562
- flashListRef.current?.scrollToIndex?.({
563
- index: idx,
564
- animated: true,
565
- viewPosition: 0.5
566
- });
567
- }, 100);
630
+ // Auto-scroll to the dropped node unless disabled by the user.
631
+ const scrollOpts = autoScrollToDroppedNode;
632
+ const scrollEnabled = scrollOpts === undefined || scrollOpts === true || typeof scrollOpts === "object" && scrollOpts.enabled !== false;
633
+ if (scrollEnabled) {
634
+ const custom = typeof scrollOpts === "object" ? scrollOpts : {};
635
+ setTimeout(() => {
636
+ scrollToNodeHandlerRef.current?.scrollToNodeID({
637
+ nodeId: droppedNodeId,
638
+ animated: custom.animated ?? true,
639
+ viewPosition: custom.viewPosition ?? 0.5,
640
+ viewOffset: custom.viewOffset
641
+ });
642
+ }, 0);
643
+ }
644
+ } else if (droppedNodeId !== null) {
645
+ // Drag ended without a valid drop - notify consumer
646
+ onDragCancelRef.current?.({
647
+ draggedNodeId: droppedNodeId
648
+ });
568
649
  }
569
650
 
570
651
  // Collapse auto-expanded nodes that aren't ancestors of the drop target
@@ -642,7 +723,7 @@ export function useDragDrop(params) {
642
723
  const fingerLocalY = fingerPageY - containerPageYRef.current;
643
724
 
644
725
  // Update overlay position (with configurable offset)
645
- const overlayLocalY = fingerLocalY - grabOffsetYRef.current + dragOverlayOffset * itemHeightRef.current;
726
+ const overlayLocalY = fingerLocalY - grabOffsetYRef.current + (dragOverlayOffsetRef.current + PLATFORM_OVERLAY_Y_CORRECTION) * itemHeightRef.current;
646
727
  overlayY.setValue(overlayLocalY);
647
728
 
648
729
  // Calculate drop target (horizontal position used at level cliffs)
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","Animated","PanResponder","getTreeViewStore","collapseNodes","expandNodes","handleToggleExpand","initializeNodeMaps","recalculateCheckedStates","moveTreeNode","useDragDrop","params","storeId","flattenedNodes","flashListRef","containerRef","dragEnabled","onDragEnd","longPressDuration","autoScrollThreshold","autoScrollSpeed","internalDataRef","measuredItemHeightRef","dragOverlayOffset","autoExpandDelay","indentationMultiplier","isDraggingRef","draggedNodeRef","draggedNodeIdRef","draggedNodeIndexRef","longPressTimerRef","containerPageXRef","containerPageYRef","containerHeightRef","grabOffsetYRef","scrollOffsetRef","headerOffsetRef","itemHeightRef","overlayY","Value","current","overlayX","prevEffectiveLevelRef","autoScrollRAFRef","autoScrollSpeedRef","initialFingerPageYRef","initialFingerContainerYRef","autoExpandTimerRef","autoExpandTargetRef","autoExpandedDuringDragRef","Set","panResponderActiveRef","prevDropTargetRef","flattenedNodesRef","onDragEndRef","isDragging","setIsDragging","draggedNode","setDraggedNode","dropTarget","setDropTarget","effectiveDropLevel","setEffectiveDropLevel","dropTargetRef","cancelLongPressTimer","clearTimeout","getDescendantIds","nodeId","store","nodeMap","getState","descendants","stack","length","currentId","pop","node","get","children","child","add","id","push","initiateDrag","pageY","locationY","nodeIndex","container","measureInWindow","x","y","_w","h","nodes","expanded","has","measured","estimatedSize","props","estimatedItemSize","fingerLocalY","iH","listHeaderHeight","updateDraggedNodeId","updateInvalidDragTargetIds","overlayLocalY","setValue","level","clear","startAutoScrollLoop","handleNodeTouchStart","setTimeout","loop","newOffset","Math","max","scrollToOffset","offset","animated","requestAnimationFrame","stopAutoScroll","cancelAnimationFrame","updateAutoScroll","fingerInContainer","threshold","maxSpeed","containerH","ratio","cancelAutoExpandTimer","calculateDropTarget","fingerPageY","fingerPageX","fingerContentY","adjustedContentY","rawIndex","floor","clampedIndex","min","targetNode","positionInItem","position","fingerLocalX","logicalTargetId","logicalPosition","visualDropLevel","currentLevel","isCliff","shallowLevel","nextNode","nextLevel","childToParentMap","ancestorId","walkLevel","parentId","undefined","prevNode","prevLevel","expandedSet","prev","sameGap","targetIndex","upperIdx","lowerIdx","upperLevel","lowerLevel","indicatorTop","invalidDragTargetIds","draggedNodeId","isValid","draggedLevel","effectiveLevel","spring","toValue","useNativeDriver","speed","bounciness","start","newTarget","targetNodeId","targetLevel","updateDropTarget","prevTarget","handleDragEnd","currentTarget","droppedNodeId","currentData","initialTreeViewData","newData","updateInitialTreeViewData","newTreeData","idx","findIndex","n","itemH","scrollTop","estimatedTop","estimatedBottom","scrollToIndex","index","viewPosition","size","store3","ancestorIds","walkId","toCollapse","store2","handleNodeTouchEnd","panResponder","create","onStartShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","evt","nativeEvent","pageX","onPanResponderRelease","onPanResponderTerminate"],"sourceRoot":"../../../src","sources":["hooks/useDragDrop.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","Animated","PanResponder","Platform","getTreeViewStore","collapseNodes","expandNodes","handleToggleExpand","initializeNodeMaps","recalculateCheckedStates","moveTreeNode","listHeaderFooterPadding","PLATFORM_OVERLAY_Y_CORRECTION","OS","useDragDrop","params","storeId","flattenedNodes","flashListRef","containerRef","dragEnabled","onDragStart","onDragEnd","onDragCancel","longPressDuration","autoScrollThreshold","autoScrollSpeed","internalDataRef","measuredItemHeightRef","dragOverlayOffset","autoExpandDelay","indentationMultiplier","canDrop","canDropCallback","maxDepth","canNodeHaveChildren","canDrag","scrollToNodeHandlerRef","autoScrollToDroppedNode","isDraggingRef","draggedNodeRef","draggedNodeIdRef","draggedNodeIndexRef","longPressTimerRef","containerPageXRef","containerPageYRef","containerWidthRef","containerHeightRef","grabOffsetYRef","scrollOffsetRef","headerOffsetRef","itemHeightRef","overlayY","Value","current","overlayX","prevEffectiveLevelRef","autoScrollRAFRef","autoScrollSpeedRef","initialFingerPageYRef","initialFingerContainerYRef","autoExpandTimerRef","autoExpandTargetRef","autoExpandedDuringDragRef","Set","panResponderActiveRef","prevDropTargetRef","draggedSubtreeDepthRef","flattenedNodesRef","onDragStartRef","onDragEndRef","onDragCancelRef","canDropRef","canNodeHaveChildrenRef","canDragRef","dragOverlayOffsetRef","autoScrollThresholdRef","autoScrollSpeedParamRef","autoExpandDelayRef","indentationMultiplierRef","maxDepthRef","isDragging","setIsDragging","draggedNode","setDraggedNode","dropTarget","setDropTarget","effectiveDropLevel","setEffectiveDropLevel","dropTargetRef","cancelLongPressTimer","clearTimeout","getDescendantIds","nodeId","store","nodeMap","getState","descendants","stack","length","currentId","pop","node","get","children","child","add","id","push","getSubtreeDepth","max","Math","initiateDrag","pageY","locationY","nodeIndex","container","measureInWindow","x","y","w","h","nodes","expanded","has","measured","fingerLocalY","iH","listHeaderHeight","updateDraggedNodeId","updateInvalidDragTargetIds","overlayLocalY","setValue","level","clear","draggedNodeId","startAutoScrollLoop","handleNodeTouchStart","setTimeout","loop","newOffset","scrollToOffset","offset","animated","requestAnimationFrame","stopAutoScroll","cancelAnimationFrame","updateAutoScroll","fingerInContainer","threshold","maxSpeed","containerH","ratio","cancelAutoExpandTimer","calculateDropTarget","fingerPageY","fingerPageX","fingerContentY","adjustedContentY","rawIndex","floor","clampedIndex","min","targetNode","positionInItem","position","canDropInsideTarget","undefined","targetLevel","deepest","fingerLocalX","logicalTargetId","logicalPosition","visualDropLevel","currentLevel","isCliff","shallowLevel","nextNode","nextLevel","itemLeftEdge","childToParentMap","ancestorId","walkLevel","parentId","prevNode","prevLevel","expandedSet","prev","sameGap","targetIndex","upperIdx","lowerIdx","upperLevel","lowerLevel","indicatorTop","invalidDragTargetIds","maxDepthValid","isValid","draggedLevel","effectiveLevel","spring","toValue","useNativeDriver","speed","bounciness","start","newTarget","targetNodeId","updateDropTarget","prevTarget","handleDragEnd","currentTarget","droppedNodeId","currentData","initialTreeViewData","newData","updateInitialTreeViewData","newTreeData","scrollOpts","scrollEnabled","enabled","custom","scrollToNodeID","viewPosition","viewOffset","size","store3","ancestorIds","walkId","toCollapse","store2","handleNodeTouchEnd","panResponder","create","onStartShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","evt","nativeEvent","pageX","onPanResponderRelease","onPanResponderTerminate"],"sourceRoot":"../../../src","sources":["hooks/useDragDrop.ts"],"mappings":"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","ignoreList":[]}