react-native-tree-multi-select 3.0.0-beta.4 → 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.
package/README.md CHANGED
@@ -193,13 +193,14 @@ For visual customizations (overlay styles, indicator colors, or fully custom com
193
193
  | `longPressDuration` | `number` | No | Long press duration in ms to start drag (default: 400) |
194
194
  | `autoScrollThreshold` | `number` | No | Distance from edge (px) to trigger auto-scroll (default: 60) |
195
195
  | `autoScrollSpeed` | `number` | No | Speed multiplier for auto-scroll (default: 1.0) |
196
- | `dragOverlayOffset` | `number` | No | Overlay offset from the finger, in item-height units (default: -4, i.e. four rows above finger) |
196
+ | `dragOverlayOffset` | `number` | No | Overlay offset from the finger, in item-height units (default: -2, i.e. two rows above finger) |
197
197
  | `autoExpandDelay` | `number` | No | Delay in ms before auto-expanding a collapsed node during drag hover (default: 800) |
198
198
  | `customizations` | [DragDropCustomizations](#dragdropcustomizationsid)`<ID>` | No | Customizations for drag-and-drop visuals (overlay, indicator, opacity) |
199
199
  | `canDrop` | `(draggedNode, targetNode, position) => boolean` | No | Callback to determine if a node can be dropped on a specific target |
200
200
  | `maxDepth` | `number` | No | Maximum nesting depth allowed. Drops exceeding this are suppressed |
201
201
  | `canNodeHaveChildren` | `(node: TreeNode<ID>) => boolean` | No | Callback to determine if a node can accept children |
202
202
  | `canDrag` | `(node: TreeNode<ID>) => boolean` | No | Callback to determine if a node can be dragged (default: all nodes) |
203
+ | `autoScrollToDroppedNode` | `boolean \| DropAutoScrollOptions` | No | Auto-scroll to the dropped node after a successful drop. Pass `false` to disable, `true` for defaults, or an object to customize. Default: `{ enabled: true, animated: true, viewPosition: 0.5 }` |
203
204
 
204
205
  ##### Notes
205
206
 
@@ -211,7 +212,7 @@ For visual customizations (overlay styles, indicator colors, or fully custom com
211
212
  1. `BuiltInCheckBoxViewStyleProps`
212
213
  1. `ExpandCollapseIconComponent`
213
214
  1. `ExpandCollapseTouchableComponent`
214
- 1. `dragAndDrop.customizations.draggedNodeOpacity` / `invalidTargetOpacity` the custom component receives `isDraggedNode`, `isInvalidDropTarget`, and `isDragging` props and is responsible for its own drag-state visuals.
215
+ 1. `dragAndDrop.customizations.draggedNodeOpacity` / `invalidTargetOpacity` - the custom component receives `isDraggedNode`, `isInvalidDropTarget`, and `isDragging` props and is responsible for its own drag-state visuals.
215
216
 
216
217
  - ⚠️ If the tree view doesn't scroll if rendered in a complex nested scroll view/s then try setting the `renderScrollComponent` value in `treeFlashListProps` to `ScrollView` from `react-native-gesture-handler`.
217
218
 
@@ -386,6 +387,19 @@ Type: `"above"` | `"below"` | `"inside"`
386
387
 
387
388
  ---
388
389
 
390
+ #### DropAutoScrollOptions
391
+
392
+ *Options for auto-scrolling to the dropped node after a successful drop. Uses the same scroll parameters as [`scrollToNodeID`](#scrolltonodeparams).*
393
+
394
+ | Property | Type | Required | Description |
395
+ | -------------- | --------- | -------- | --------------------------------------------------------------- |
396
+ | `enabled` | `boolean` | No | Enable auto-scroll to the dropped node (default: true) |
397
+ | `animated` | `boolean` | No | Whether the scroll should be animated (default: true) |
398
+ | `viewOffset` | `number` | No | Fixed offset from the target position (in pixels) |
399
+ | `viewPosition` | `number` | No | Position in the viewport: 0 = top, 0.5 = center, 1 = bottom (default: 0.5) |
400
+
401
+ ---
402
+
389
403
  #### DragDropCustomizations`<ID>`
390
404
 
391
405
  *Customizations for drag-and-drop visuals.*
@@ -504,14 +518,6 @@ MIT
504
518
  ## 🙏 Support the project
505
519
 
506
520
  <p align="center" valign="center">
507
- <a href="https://liberapay.com/FutureJJ/donate">
508
- <img src="https://liberapay.com/assets/widgets/donate.svg" alt="LiberPay_Donation_Button" height="50" >
509
- </a>
510
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
511
- <a href=".github/assets/Jairaj_Jangle_Google_Pay_UPI_QR_Code.jpg">
512
- <img src=".github/assets/upi.png" alt="Paypal_Donation_Button" height="50" >
513
- </a>
514
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
515
521
  <a href="https://www.paypal.com/paypalme/jairajjangle001/usd">
516
522
  <img src=".github/assets/paypal_donate.png" alt="Paypal_Donation_Button" height="50" >
517
523
  </a>
@@ -519,6 +525,10 @@ MIT
519
525
  <a href="https://github.com/sponsors/JairajJangle">
520
526
  <img src=".github/assets/github_sponsor.svg" alt="GitHub_Sponsor_Button" height="50" >
521
527
  </a>
528
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
529
+ <a href="https://liberapay.com/FutureJJ/donate">
530
+ <img src=".github/assets/liberapay_donate.svg" alt="Liberapay_Donation_Button" height="50" >
531
+ </a>
522
532
  </p>
523
533
 
524
534
 
@@ -38,13 +38,14 @@ function _NodeList(props) {
38
38
  longPressDuration = 400,
39
39
  autoScrollThreshold = 60,
40
40
  autoScrollSpeed = 1.0,
41
- dragOverlayOffset = -4,
41
+ dragOverlayOffset = -2,
42
42
  autoExpandDelay = 800,
43
43
  customizations: dragDropCustomizations,
44
44
  canDrop: canDropCallback,
45
45
  maxDepth,
46
46
  canNodeHaveChildren,
47
- canDrag
47
+ canDrag,
48
+ autoScrollToDroppedNode
48
49
  } = dragAndDrop ?? {};
49
50
 
50
51
  // When the dragAndDrop prop is provided, drag is enabled by default.
@@ -127,7 +128,9 @@ function _NodeList(props) {
127
128
  canDrop: canDropCallback,
128
129
  maxDepth,
129
130
  canNodeHaveChildren,
130
- canDrag
131
+ canDrag,
132
+ scrollToNodeHandlerRef,
133
+ autoScrollToDroppedNode
131
134
  });
132
135
 
133
136
  // Combined onScroll handler
@@ -287,7 +290,7 @@ function _Node(props) {
287
290
 
288
291
  // Determine opacity for drag state (separate values for dragged node vs invalid targets).
289
292
  // When CustomNodeRowComponent is used, hand off all visual control
290
- // (including drag opacity) to the custom component it receives
293
+ // (including drag opacity) to the custom component - it receives
291
294
  // isDraggedNode / isInvalidDropTarget / isDragging props.
292
295
  const draggedOpacity = dragDropCustomizations?.draggedNodeOpacity ?? 0.3;
293
296
  const invalidOpacity = dragDropCustomizations?.invalidTargetOpacity ?? 0.3;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getCheckboxValue","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","DragOverlay","defaultIndentationMultiplier","listHeaderFooterPadding","useShallow","typedMemo","useScrollToNode","useDragDrop","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NodeList","_NodeList","props","storeId","scrollToNodeHandlerRef","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","dragAndDrop","enabled","_dragEnabled","onDragStart","onDragEnd","onDragCancel","longPressDuration","autoScrollThreshold","autoScrollSpeed","dragOverlayOffset","autoExpandDelay","customizations","dragDropCustomizations","canDrop","canDropCallback","maxDepth","canNodeHaveChildren","canDrag","dragEnabled","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","flashListRef","containerRef","internalDataRef","measuredItemHeightRef","handleItemLayout","height","current","initialScrollIndex","setInitialScrollIndex","filteredTree","trim","toLowerCase","flattenedFilteredNodes","updatedInnerMostChildrenIds","effectiveIndentationMultiplier","panResponder","overlayY","overlayX","isDragging","draggedNode","effectiveDropLevel","handleNodeTouchStart","handleNodeTouchEnd","cancelLongPressTimer","scrollOffsetRef","flattenedNodes","handleScroll","event","nativeEvent","contentOffset","y","onScroll","nodeRenderer","item","index","Node","node","level","nodeIndex","onNodeTouchStart","undefined","onNodeTouchEnd","onItemLayout","_userOnScroll","restFlashListProps","flashListElement","ref","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","scrollEnabled","data","renderItem","children","style","styles","dragContainer","panHandlers","padding","_Node","isDraggingGlobal","isExpanded","value","isBeingDragged","isDragInvalid","isDropTarget","nodeDropPosition","nodeDropLevel","has","id","checked","indeterminate","draggedNodeId","invalidDragTargetIds","dropTargetNodeId","dropPosition","dropLevel","wasDraggedRef","_onToggleExpand","_onCheck","handleTouchStart","e","pageY","locationY","handleTouchEnd","draggedOpacity","draggedNodeOpacity","invalidOpacity","invalidTargetOpacity","nodeOpacity","handleLayout","layout","touchHandlers","onTouchStart","onTouchEnd","onTouchCancel","CustomDropIndicator","CustomDropIndicatorComponent","indicatorLevel","dropIndicator","position","NodeDropIndicator","styleProps","dropIndicatorStyleProps","testID","onLayout","nodeCheckboxAndArrowRow","paddingStart","opacity","nodeOverflowVisible","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","isInvalidDropTarget","isDraggedNode","dragHandleProps","lineColor","lineThickness","circleSize","highlightColor","highlightBorderColor","leftOffset","pointerEvents","dropHighlight","left","backgroundColor","borderColor","safeLeftOffset","Math","max","dropLineContainer","dropLineTop","dropLineBottom","width","borderRadius","marginLeft","dropLine","create","flex","flexDirection","alignItems","minWidth","top","bottom","right","borderWidth","zIndex","overflow"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getCheckboxValue","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","DragOverlay","defaultIndentationMultiplier","listHeaderFooterPadding","useShallow","typedMemo","useScrollToNode","useDragDrop","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NodeList","_NodeList","props","storeId","scrollToNodeHandlerRef","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","dragAndDrop","enabled","_dragEnabled","onDragStart","onDragEnd","onDragCancel","longPressDuration","autoScrollThreshold","autoScrollSpeed","dragOverlayOffset","autoExpandDelay","customizations","dragDropCustomizations","canDrop","canDropCallback","maxDepth","canNodeHaveChildren","canDrag","autoScrollToDroppedNode","dragEnabled","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","flashListRef","containerRef","internalDataRef","measuredItemHeightRef","handleItemLayout","height","current","initialScrollIndex","setInitialScrollIndex","filteredTree","trim","toLowerCase","flattenedFilteredNodes","updatedInnerMostChildrenIds","effectiveIndentationMultiplier","panResponder","overlayY","overlayX","isDragging","draggedNode","effectiveDropLevel","handleNodeTouchStart","handleNodeTouchEnd","cancelLongPressTimer","scrollOffsetRef","flattenedNodes","handleScroll","event","nativeEvent","contentOffset","y","onScroll","nodeRenderer","item","index","Node","node","level","nodeIndex","onNodeTouchStart","undefined","onNodeTouchEnd","onItemLayout","_userOnScroll","restFlashListProps","flashListElement","ref","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","scrollEnabled","data","renderItem","children","style","styles","dragContainer","panHandlers","padding","_Node","isDraggingGlobal","isExpanded","value","isBeingDragged","isDragInvalid","isDropTarget","nodeDropPosition","nodeDropLevel","has","id","checked","indeterminate","draggedNodeId","invalidDragTargetIds","dropTargetNodeId","dropPosition","dropLevel","wasDraggedRef","_onToggleExpand","_onCheck","handleTouchStart","e","pageY","locationY","handleTouchEnd","draggedOpacity","draggedNodeOpacity","invalidOpacity","invalidTargetOpacity","nodeOpacity","handleLayout","layout","touchHandlers","onTouchStart","onTouchEnd","onTouchCancel","CustomDropIndicator","CustomDropIndicatorComponent","indicatorLevel","dropIndicator","position","NodeDropIndicator","styleProps","dropIndicatorStyleProps","testID","onLayout","nodeCheckboxAndArrowRow","paddingStart","opacity","nodeOverflowVisible","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","isInvalidDropTarget","isDraggedNode","dragHandleProps","lineColor","lineThickness","circleSize","highlightColor","highlightBorderColor","leftOffset","pointerEvents","dropHighlight","left","backgroundColor","borderColor","safeLeftOffset","Math","max","dropLineContainer","dropLineTop","dropLineBottom","width","borderRadius","marginLeft","dropLine","create","flex","flexDirection","alignItems","minWidth","top","bottom","right","borderWidth","zIndex","overflow"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
@@ -34,7 +34,7 @@ export function moveTreeNode(data, draggedNodeId, targetNodeId, position) {
34
34
  function isDescendant(nodes, ancestorId, candidateDescendantId) {
35
35
  for (const node of nodes) {
36
36
  if (node.id === ancestorId) {
37
- // Found the ancestor search its subtree for the candidate
37
+ // Found the ancestor - search its subtree for the candidate
38
38
  return containsNode(node.children ?? [], candidateDescendantId);
39
39
  }
40
40
  if (node.children && isDescendant(node.children, ancestorId, candidateDescendantId)) {
@@ -250,7 +250,7 @@ export function recalculateCheckedStates(storeId) {
250
250
  // Update each parent based on its children's current state
251
251
  for (const parentId of parentNodes) {
252
252
  const node = nodeMap.get(parentId);
253
- /* istanbul ignore next -- parentNodes is built from nodeMap entries with children above; same nodeMap, same iteration unreachable unless nodeMap mutates between loops */
253
+ /* istanbul ignore next -- parentNodes is built from nodeMap entries with children above; same nodeMap, same iteration - unreachable unless nodeMap mutates between loops */
254
254
  if (!node?.children?.length) continue;
255
255
  updateParentCheckState(parentId, node.children, tempChecked, tempIndeterminate);
256
256
  }
@@ -1,11 +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
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;
9
13
  export function useDragDrop(params) {
10
14
  const {
11
15
  storeId,
@@ -27,7 +31,9 @@ export function useDragDrop(params) {
27
31
  canDrop: canDropCallback,
28
32
  maxDepth,
29
33
  canNodeHaveChildren,
30
- canDrag
34
+ canDrag,
35
+ scrollToNodeHandlerRef,
36
+ autoScrollToDroppedNode
31
37
  } = params;
32
38
 
33
39
  // --- Refs for mutable state (no stale closures in PanResponder) ---
@@ -38,6 +44,7 @@ export function useDragDrop(params) {
38
44
  const longPressTimerRef = useRef(null);
39
45
  const containerPageXRef = useRef(0);
40
46
  const containerPageYRef = useRef(0);
47
+ const containerWidthRef = useRef(0);
41
48
  const containerHeightRef = useRef(0);
42
49
  const grabOffsetYRef = useRef(0);
43
50
  const scrollOffsetRef = useRef(0);
@@ -158,9 +165,10 @@ export function useDragDrop(params) {
158
165
  if (!dragEnabled) return;
159
166
  const container = containerRef.current;
160
167
  if (!container) return;
161
- container.measureInWindow((x, y, _w, h) => {
168
+ container.measureInWindow((x, y, w, h) => {
162
169
  containerPageXRef.current = x;
163
170
  containerPageYRef.current = y;
171
+ containerWidthRef.current = w;
164
172
  containerHeightRef.current = h;
165
173
 
166
174
  // Find the node in flattened list
@@ -211,7 +219,7 @@ export function useDragDrop(params) {
211
219
  store.getState().updateInvalidDragTargetIds(descendants);
212
220
 
213
221
  // Set overlay initial position (with configurable offset)
214
- const overlayLocalY = fingerLocalY - locationY + dragOverlayOffsetRef.current * itemHeightRef.current;
222
+ const overlayLocalY = fingerLocalY - locationY + (dragOverlayOffsetRef.current + PLATFORM_OVERLAY_Y_CORRECTION) * itemHeightRef.current;
215
223
  overlayY.setValue(overlayLocalY);
216
224
 
217
225
  // Reset magnetic overlay
@@ -323,9 +331,9 @@ export function useDragDrop(params) {
323
331
  // Determine zone within item
324
332
  const positionInItem = (adjustedContentY - clampedIndex * iH) / iH;
325
333
  let position;
326
- if (positionInItem < 0.15) {
334
+ if (positionInItem < 0.25) {
327
335
  position = "above";
328
- } else if (positionInItem > 0.85) {
336
+ } else if (positionInItem > 0.75) {
329
337
  position = "below";
330
338
  } else {
331
339
  position = "inside";
@@ -363,7 +371,7 @@ export function useDragDrop(params) {
363
371
  let logicalTargetId = null;
364
372
  let logicalPosition = null;
365
373
  let visualDropLevel = null;
366
- if (position === "below" || position === "inside") {
374
+ if (position === "below") {
367
375
  const currentLevel = targetNode.level ?? 0;
368
376
  let isCliff = false;
369
377
  let shallowLevel = 0;
@@ -380,9 +388,9 @@ export function useDragDrop(params) {
380
388
  shallowLevel = 0;
381
389
  }
382
390
  if (isCliff) {
383
- // Generous threshold: midpoint of the two levels + 2× indent buffer
384
- const indent = indentationMultiplierRef.current;
385
- const threshold = (currentLevel + shallowLevel) / 2 * indent + indent * 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;
386
394
  if (fingerLocalX < threshold) {
387
395
  // User wants the shallow level
388
396
  if (clampedIndex < nodes.length - 1) {
@@ -417,9 +425,8 @@ export function useDragDrop(params) {
417
425
  const prevLevel = prevNode?.level ?? 0;
418
426
  const currentLevel = targetNode.level ?? 0;
419
427
  if (prevNode && prevLevel > currentLevel) {
420
- // Level cliff above - same generous threshold
421
- const indent = indentationMultiplierRef.current;
422
- const threshold = (prevLevel + currentLevel) / 2 * indent + indent * 2;
428
+ const itemLeftEdge = prevLevel * indentationMultiplierRef.current;
429
+ const threshold = itemLeftEdge + (containerWidthRef.current - itemLeftEdge) * 0.3;
423
430
  if (fingerLocalX >= threshold) {
424
431
  clampedIndex = clampedIndex - 1;
425
432
  targetNode = prevNode;
@@ -428,26 +435,15 @@ export function useDragDrop(params) {
428
435
  }
429
436
  }
430
437
 
431
- // --- Suppress "below" when it's redundant or confusing ---
432
- // After horizontal control, any remaining "below" that isn't at a
433
- // cliff is redundant with "above" on the next node → show "inside".
434
- // Only convert to "inside" if inside drops are allowed for this target.
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.
435
442
  if (position === "below" && canDropInsideTarget) {
436
443
  const expandedSet = getTreeViewStore(storeId).getState().expanded;
437
-
438
- // (a) Expanded parent: "below" visually sits at the parent/child junction
439
- // but semantically inserts as a sibling after the entire subtree.
440
444
  if (targetNode.children?.length && expandedSet.has(targetNode.id)) {
441
445
  position = "inside";
442
446
  }
443
- // (b) No level cliff below: convert to "inside" so the highlight
444
- // covers the full bottom of the node.
445
- else if (clampedIndex < nodes.length - 1) {
446
- const nextNode = nodes[clampedIndex + 1];
447
- if (nextNode && (nextNode.level ?? 0) >= (targetNode.level ?? 0)) {
448
- position = "inside";
449
- }
450
- }
451
447
  }
452
448
 
453
449
  // --- Hysteresis: prevent flicker between "below N" and "above N+1" ---
@@ -501,7 +497,7 @@ export function useDragDrop(params) {
501
497
  autoExpandTimerRef.current = setTimeout(() => {
502
498
  autoExpandTimerRef.current = null;
503
499
  // Expand the node and track it
504
- handleToggleExpand(storeId, targetNode.id);
500
+ expandNodes(storeId, [targetNode.id]);
505
501
  autoExpandedDuringDragRef.current.add(targetNode.id);
506
502
  }, autoExpandDelayRef.current);
507
503
  }
@@ -631,32 +627,22 @@ export function useDragDrop(params) {
631
627
  newTreeData: newData
632
628
  });
633
629
 
634
- // Scroll to the dropped node after React processes the expansion,
635
- // but only if it's outside the visible viewport. An animated
636
- // scroll would consume the user's next touch (RN stops the
637
- // animation on tap), so we skip when the node is already visible.
638
- setTimeout(() => {
639
- const nodes = flattenedNodesRef.current;
640
- const idx = nodes.findIndex(n => n.id === droppedNodeId);
641
- if (idx < 0) return;
642
- const itemH = itemHeightRef.current;
643
- const scrollTop = scrollOffsetRef.current;
644
- const containerH = containerHeightRef.current;
645
- const estimatedTop = idx * itemH;
646
- const estimatedBottom = estimatedTop + itemH;
647
-
648
- // Already in view → no scroll needed
649
- if (estimatedTop >= scrollTop && estimatedBottom <= scrollTop + containerH) {
650
- return;
651
- }
652
- flashListRef.current?.scrollToIndex?.({
653
- index: idx,
654
- animated: true,
655
- viewPosition: 0.5
656
- });
657
- }, 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
+ }
658
644
  } else if (droppedNodeId !== null) {
659
- // Drag ended without a valid drop notify consumer
645
+ // Drag ended without a valid drop - notify consumer
660
646
  onDragCancelRef.current?.({
661
647
  draggedNodeId: droppedNodeId
662
648
  });
@@ -737,7 +723,7 @@ export function useDragDrop(params) {
737
723
  const fingerLocalY = fingerPageY - containerPageYRef.current;
738
724
 
739
725
  // Update overlay position (with configurable offset)
740
- const overlayLocalY = fingerLocalY - grabOffsetYRef.current + dragOverlayOffsetRef.current * itemHeightRef.current;
726
+ const overlayLocalY = fingerLocalY - grabOffsetYRef.current + (dragOverlayOffsetRef.current + PLATFORM_OVERLAY_Y_CORRECTION) * itemHeightRef.current;
741
727
  overlayY.setValue(overlayLocalY);
742
728
 
743
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","listHeaderFooterPadding","useDragDrop","params","storeId","flattenedNodes","flashListRef","containerRef","dragEnabled","onDragStart","onDragEnd","onDragCancel","longPressDuration","autoScrollThreshold","autoScrollSpeed","internalDataRef","measuredItemHeightRef","dragOverlayOffset","autoExpandDelay","indentationMultiplier","canDrop","canDropCallback","maxDepth","canNodeHaveChildren","canDrag","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","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","indent","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","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":[]}
@@ -108,7 +108,7 @@ export function useScrollToNode(params) {
108
108
  }
109
109
 
110
110
  // Ensure if the parent is expanded before proceeding to scroll to the node.
111
- // This fires transiently during the milestone system the layout effect runs
111
+ // This fires transiently during the milestone system - the layout effect runs
112
112
  // before the expansion has propagated to the store, then retries on next render.
113
113
  /* istanbul ignore next -- async timing guard: expansion not yet propagated to store */
114
114
  if (parentId && !expanded.has(parentId)) return;
@@ -1 +1 @@
1
- {"version":3,"names":["moveTreeNode","deleteTreeViewStore"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AA0BA,cAAc,eAAY;AAC1B,cAAc,8BAA2B;AACzC,SAASA,YAAY,QAAQ,kCAA+B;AAC5D,SAASC,mBAAmB,QAAQ,2BAAwB","ignoreList":[]}
1
+ {"version":3,"names":["moveTreeNode","deleteTreeViewStore"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AA2BA,cAAc,eAAY;AAC1B,cAAc,8BAA2B;AACzC,SAASA,YAAY,QAAQ,kCAA+B;AAC5D,SAASC,mBAAmB,QAAQ,2BAAwB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGR,aAAa,EAGhB,MAAM,yBAAyB,CAAC;AAwBjC,QAAA,MAAM,QAAQ,kBAAuB,CAAC;AACtC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,2CAkP9C"}
1
+ {"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGR,aAAa,EAGhB,MAAM,yBAAyB,CAAC;AAwBjC,QAAA,MAAM,QAAQ,kBAAuB,CAAC;AACtC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,2CAqP9C"}
@@ -1,7 +1,8 @@
1
1
  import { MutableRefObject, RefObject } from "react";
2
2
  import { Animated, type PanResponderInstance } from "react-native";
3
3
  import type { FlashList } from "@shopify/flash-list";
4
- import type { __FlattenedTreeNode__, TreeNode } from "../types/treeView.types";
4
+ import type { __FlattenedTreeNode__, TreeNode, DropAutoScrollOptions } from "../types/treeView.types";
5
+ import type { ScrollToNodeHandlerRef } from "./useScrollToNode";
5
6
  import type { DragCancelEvent, DragEndEvent, DragStartEvent, DropTarget } from "../types/dragDrop.types";
6
7
  interface UseDragDropParams<ID> {
7
8
  storeId: string;
@@ -29,6 +30,10 @@ interface UseDragDropParams<ID> {
29
30
  maxDepth?: number;
30
31
  /** Callback to determine if a node can accept children. */
31
32
  canNodeHaveChildren?: (node: TreeNode<ID>) => boolean;
33
+ /** Ref for scrolling to a node after drop. */
34
+ scrollToNodeHandlerRef: RefObject<ScrollToNodeHandlerRef<ID> | null>;
35
+ /** Auto-scroll configuration for after drop. */
36
+ autoScrollToDroppedNode?: boolean | DropAutoScrollOptions;
32
37
  /** Callback to determine if a node can be dragged. */
33
38
  canDrag?: (node: TreeNode<ID>) => boolean;
34
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useDragDrop.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDragDrop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDragDrop.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDragDrop.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { TreeNode, NodeRowProps, TreeViewProps, TreeViewRef, TreeFlatListProps, ExpandIconProps, CheckBoxViewProps, CheckboxValueType, BuiltInCheckBoxViewStyleProps, SelectionPropagation, DragAndDropOptions, DragDropCustomizations, DragOverlayStyleProps, DragOverlayComponentProps, DropIndicatorStyleProps, DropIndicatorComponentProps, DragHandleProps } from "./types/treeView.types";
1
+ import type { TreeNode, NodeRowProps, TreeViewProps, TreeViewRef, TreeFlatListProps, ExpandIconProps, CheckBoxViewProps, CheckboxValueType, BuiltInCheckBoxViewStyleProps, SelectionPropagation, DragAndDropOptions, DropAutoScrollOptions, DragDropCustomizations, DragOverlayStyleProps, DragOverlayComponentProps, DropIndicatorStyleProps, DropIndicatorComponentProps, DragHandleProps } from "./types/treeView.types";
2
2
  import type { DragCancelEvent, DragEndEvent, DragStartEvent, DropPosition } from "./types/dragDrop.types";
3
3
  export * from "./TreeView";
4
4
  export * from "./components/CheckboxView";
5
5
  export { moveTreeNode } from "./helpers/moveTreeNode.helper";
6
6
  export { deleteTreeViewStore } from "./store/treeView.store";
7
- export type { TreeNode, NodeRowProps, TreeViewProps, TreeViewRef, TreeFlatListProps, ExpandIconProps, CheckBoxViewProps, CheckboxValueType, BuiltInCheckBoxViewStyleProps, SelectionPropagation, DragAndDropOptions, DragCancelEvent, DragEndEvent, DragStartEvent, DropPosition, DragDropCustomizations, DragOverlayStyleProps, DragOverlayComponentProps, DropIndicatorStyleProps, DropIndicatorComponentProps, DragHandleProps, };
7
+ export type { TreeNode, NodeRowProps, TreeViewProps, TreeViewRef, TreeFlatListProps, ExpandIconProps, CheckBoxViewProps, CheckboxValueType, BuiltInCheckBoxViewStyleProps, SelectionPropagation, DragAndDropOptions, DropAutoScrollOptions, DragCancelEvent, DragEndEvent, DragStartEvent, DropPosition, DragDropCustomizations, DragOverlayStyleProps, DragOverlayComponentProps, DropIndicatorStyleProps, DropIndicatorComponentProps, DragHandleProps, };
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACR,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,EACf,MAAM,wBAAwB,CAAC;AAEhC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,YAAY,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,GAClB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACR,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,EACf,MAAM,wBAAwB,CAAC;AAEhC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,YAAY,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,GAClB,CAAC"}
@@ -102,6 +102,12 @@ export interface NodeProps<ID> extends TreeItemCustomizations<ID> {
102
102
  /** Customizations for drag-and-drop visuals */
103
103
  dragDropCustomizations?: DragDropCustomizations<ID>;
104
104
  }
105
+ /** Options for auto-scrolling to the dropped node after a successful drop.
106
+ * Uses the same scroll parameters as `scrollToNodeID` (minus internally managed fields). */
107
+ export interface DropAutoScrollOptions extends Omit<ScrollToNodeParams<never>, "nodeId" | "expandScrolledNode"> {
108
+ /** Enable auto-scroll to the dropped node. Default: true */
109
+ enabled?: boolean;
110
+ }
105
111
  /** Configuration options for drag-and-drop reordering */
106
112
  export interface DragAndDropOptions<ID = string> {
107
113
  /** Enable drag-and-drop reordering. Default: true (when dragAndDrop is provided) */
@@ -118,7 +124,7 @@ export interface DragAndDropOptions<ID = string> {
118
124
  autoScrollThreshold?: number;
119
125
  /** Speed multiplier for auto-scroll during drag. Default: 1.0 */
120
126
  autoScrollSpeed?: number;
121
- /** Offset of the dragged overlay from the finger, in item-height units. Default: -4 (four items above finger) */
127
+ /** Offset of the dragged overlay from the finger, in item-height units. Default: -2 (two items above finger) */
122
128
  dragOverlayOffset?: number;
123
129
  /** Delay in ms before auto-expanding a collapsed node during drag hover. Default: 800 */
124
130
  autoExpandDelay?: number;
@@ -135,6 +141,10 @@ export interface DragAndDropOptions<ID = string> {
135
141
  /** Callback to determine if a node can be dragged.
136
142
  * Return false to prevent dragging this node. Default: all nodes are draggable. */
137
143
  canDrag?: (node: TreeNode<ID>) => boolean;
144
+ /** Auto-scroll to the dropped node after a successful drop.
145
+ * Pass `false` to disable, `true` for defaults, or an object to customize.
146
+ * Default: `{ enabled: true, animated: true, viewPosition: 0.5 }` */
147
+ autoScrollToDroppedNode?: boolean | DropAutoScrollOptions;
138
148
  }
139
149
  /** Props for the NodeList component that renders the flattened tree */
140
150
  export interface NodeListProps<ID> extends TreeItemCustomizations<ID> {
@@ -1 +1 @@
1
- {"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../../src/types/treeView.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../../src/types/treeView.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-tree-multi-select",
3
- "version": "3.0.0-beta.4",
3
+ "version": "3.0.0-beta.5",
4
4
  "description": "Super-fast, customizable tree view component for React Native with drag-and-drop reordering, multi-selection, and search filtering.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -74,13 +74,14 @@ function _NodeList<ID>(props: NodeListProps<ID>) {
74
74
  longPressDuration = 400,
75
75
  autoScrollThreshold = 60,
76
76
  autoScrollSpeed = 1.0,
77
- dragOverlayOffset = -4,
77
+ dragOverlayOffset = -2,
78
78
  autoExpandDelay = 800,
79
79
  customizations: dragDropCustomizations,
80
80
  canDrop: canDropCallback,
81
81
  maxDepth,
82
82
  canNodeHaveChildren,
83
83
  canDrag,
84
+ autoScrollToDroppedNode,
84
85
  } = dragAndDrop ?? {};
85
86
 
86
87
  // When the dragAndDrop prop is provided, drag is enabled by default.
@@ -181,6 +182,8 @@ function _NodeList<ID>(props: NodeListProps<ID>) {
181
182
  maxDepth,
182
183
  canNodeHaveChildren,
183
184
  canDrag,
185
+ scrollToNodeHandlerRef,
186
+ autoScrollToDroppedNode,
184
187
  });
185
188
 
186
189
  // Combined onScroll handler
@@ -385,7 +388,7 @@ function _Node<ID>(props: NodeProps<ID>) {
385
388
 
386
389
  // Determine opacity for drag state (separate values for dragged node vs invalid targets).
387
390
  // When CustomNodeRowComponent is used, hand off all visual control
388
- // (including drag opacity) to the custom component it receives
391
+ // (including drag opacity) to the custom component - it receives
389
392
  // isDraggedNode / isInvalidDropTarget / isDragging props.
390
393
  const draggedOpacity = dragDropCustomizations?.draggedNodeOpacity ?? 0.3;
391
394
  const invalidOpacity = dragDropCustomizations?.invalidTargetOpacity ?? 0.3;
@@ -45,7 +45,7 @@ function isDescendant<ID>(
45
45
  ): boolean {
46
46
  for (const node of nodes) {
47
47
  if (node.id === ancestorId) {
48
- // Found the ancestor search its subtree for the candidate
48
+ // Found the ancestor - search its subtree for the candidate
49
49
  return containsNode(node.children ?? [], candidateDescendantId);
50
50
  }
51
51
  if (node.children && isDescendant(node.children, ancestorId, candidateDescendantId)) {
@@ -276,7 +276,7 @@ export function recalculateCheckedStates<ID>(storeId: string) {
276
276
  // Update each parent based on its children's current state
277
277
  for (const parentId of parentNodes) {
278
278
  const node = nodeMap.get(parentId);
279
- /* istanbul ignore next -- parentNodes is built from nodeMap entries with children above; same nodeMap, same iteration unreachable unless nodeMap mutates between loops */
279
+ /* istanbul ignore next -- parentNodes is built from nodeMap entries with children above; same nodeMap, same iteration - unreachable unless nodeMap mutates between loops */
280
280
  if (!node?.children?.length) continue;
281
281
  updateParentCheckState(parentId, node.children, tempChecked, tempIndeterminate);
282
282
  }
@@ -9,11 +9,13 @@ import {
9
9
  import {
10
10
  Animated,
11
11
  PanResponder,
12
+ Platform,
12
13
  type PanResponderInstance,
13
14
  } from "react-native";
14
15
  import type { FlashList } from "@shopify/flash-list";
15
16
 
16
- import type { __FlattenedTreeNode__, TreeNode } from "../types/treeView.types";
17
+ import type { __FlattenedTreeNode__, TreeNode, DropAutoScrollOptions } from "../types/treeView.types";
18
+ import type { ScrollToNodeHandlerRef } from "./useScrollToNode";
17
19
  import type { DragCancelEvent, DragEndEvent, DragStartEvent, DropTarget } from "../types/dragDrop.types";
18
20
  import { getTreeViewStore } from "../store/treeView.store";
19
21
  import {
@@ -26,6 +28,10 @@ import {
26
28
  import { moveTreeNode } from "../helpers/moveTreeNode.helper";
27
29
  import { listHeaderFooterPadding } from "../constants/treeView.constants";
28
30
 
31
+ // Android reports locationY slightly differently, causing the overlay
32
+ // to appear ~1 item height closer to the finger than on iOS.
33
+ const PLATFORM_OVERLAY_Y_CORRECTION = Platform.OS === "android" ? -2 : 0;
34
+
29
35
  interface UseDragDropParams<ID> {
30
36
  storeId: string;
31
37
  flattenedNodes: __FlattenedTreeNode__<ID>[];
@@ -50,6 +56,10 @@ interface UseDragDropParams<ID> {
50
56
  maxDepth?: number;
51
57
  /** Callback to determine if a node can accept children. */
52
58
  canNodeHaveChildren?: (node: TreeNode<ID>) => boolean;
59
+ /** Ref for scrolling to a node after drop. */
60
+ scrollToNodeHandlerRef: RefObject<ScrollToNodeHandlerRef<ID> | null>;
61
+ /** Auto-scroll configuration for after drop. */
62
+ autoScrollToDroppedNode?: boolean | DropAutoScrollOptions;
53
63
  /** Callback to determine if a node can be dragged. */
54
64
  canDrag?: (node: TreeNode<ID>) => boolean;
55
65
  }
@@ -98,6 +108,8 @@ export function useDragDrop<ID>(
98
108
  maxDepth,
99
109
  canNodeHaveChildren,
100
110
  canDrag,
111
+ scrollToNodeHandlerRef,
112
+ autoScrollToDroppedNode,
101
113
  } = params;
102
114
 
103
115
  // --- Refs for mutable state (no stale closures in PanResponder) ---
@@ -110,6 +122,7 @@ export function useDragDrop<ID>(
110
122
 
111
123
  const containerPageXRef = useRef(0);
112
124
  const containerPageYRef = useRef(0);
125
+ const containerWidthRef = useRef(0);
113
126
  const containerHeightRef = useRef(0);
114
127
  const grabOffsetYRef = useRef(0);
115
128
  const scrollOffsetRef = useRef(0);
@@ -238,9 +251,10 @@ export function useDragDrop<ID>(
238
251
  const container = containerRef.current;
239
252
  if (!container) return;
240
253
 
241
- container.measureInWindow((x, y, _w, h) => {
254
+ container.measureInWindow((x, y, w, h) => {
242
255
  containerPageXRef.current = x;
243
256
  containerPageYRef.current = y;
257
+ containerWidthRef.current = w;
244
258
  containerHeightRef.current = h;
245
259
 
246
260
  // Find the node in flattened list
@@ -294,7 +308,7 @@ export function useDragDrop<ID>(
294
308
  store.getState().updateInvalidDragTargetIds(descendants);
295
309
 
296
310
  // Set overlay initial position (with configurable offset)
297
- const overlayLocalY = fingerLocalY - locationY + dragOverlayOffsetRef.current * itemHeightRef.current;
311
+ const overlayLocalY = fingerLocalY - locationY + (dragOverlayOffsetRef.current + PLATFORM_OVERLAY_Y_CORRECTION) * itemHeightRef.current;
298
312
  overlayY.setValue(overlayLocalY);
299
313
 
300
314
  // Reset magnetic overlay
@@ -438,9 +452,9 @@ export function useDragDrop<ID>(
438
452
  const positionInItem =
439
453
  (adjustedContentY - clampedIndex * iH) / iH;
440
454
  let position: "above" | "below" | "inside";
441
- if (positionInItem < 0.15) {
455
+ if (positionInItem < 0.25) {
442
456
  position = "above";
443
- } else if (positionInItem > 0.85) {
457
+ } else if (positionInItem > 0.75) {
444
458
  position = "below";
445
459
  } else {
446
460
  position = "inside";
@@ -479,7 +493,7 @@ export function useDragDrop<ID>(
479
493
  let logicalPosition: "above" | "below" | "inside" | null = null;
480
494
  let visualDropLevel: number | null = null;
481
495
 
482
- if (position === "below" || position === "inside") {
496
+ if (position === "below") {
483
497
  const currentLevel = targetNode.level ?? 0;
484
498
  let isCliff = false;
485
499
  let shallowLevel = 0;
@@ -498,11 +512,9 @@ export function useDragDrop<ID>(
498
512
  }
499
513
 
500
514
  if (isCliff) {
501
- // Generous threshold: midpoint of the two levels + 2× indent buffer
502
- const indent = indentationMultiplierRef.current;
503
- const threshold =
504
- ((currentLevel + shallowLevel) / 2) * indent
505
- + indent * 2;
515
+ // Midpoint of the item's visible content area
516
+ const itemLeftEdge = currentLevel * indentationMultiplierRef.current;
517
+ const threshold = itemLeftEdge + (containerWidthRef.current - itemLeftEdge) * 0.3;
506
518
 
507
519
  if (fingerLocalX < threshold) {
508
520
  // User wants the shallow level
@@ -536,11 +548,8 @@ export function useDragDrop<ID>(
536
548
  const prevLevel = prevNode?.level ?? 0;
537
549
  const currentLevel = targetNode.level ?? 0;
538
550
  if (prevNode && prevLevel > currentLevel) {
539
- // Level cliff above - same generous threshold
540
- const indent = indentationMultiplierRef.current;
541
- const threshold =
542
- ((prevLevel + currentLevel) / 2) * indent
543
- + indent * 2;
551
+ const itemLeftEdge = prevLevel * indentationMultiplierRef.current;
552
+ const threshold = itemLeftEdge + (containerWidthRef.current - itemLeftEdge) * 0.3;
544
553
 
545
554
  if (fingerLocalX >= threshold) {
546
555
  clampedIndex = clampedIndex - 1;
@@ -550,26 +559,15 @@ export function useDragDrop<ID>(
550
559
  }
551
560
  }
552
561
 
553
- // --- Suppress "below" when it's redundant or confusing ---
554
- // After horizontal control, any remaining "below" that isn't at a
555
- // cliff is redundant with "above" on the next node → show "inside".
556
- // Only convert to "inside" if inside drops are allowed for this target.
562
+ // --- Suppress "below" when it's semantically confusing ---
563
+ // For expanded parents, "below" visually sits at the parent/child
564
+ // junction but semantically inserts as a sibling after the entire
565
+ // subtree. Convert to "inside" which is clearer.
557
566
  if (position === "below" && canDropInsideTarget) {
558
567
  const expandedSet = getTreeViewStore<ID>(storeId).getState().expanded;
559
-
560
- // (a) Expanded parent: "below" visually sits at the parent/child junction
561
- // but semantically inserts as a sibling after the entire subtree.
562
568
  if (targetNode.children?.length && expandedSet.has(targetNode.id)) {
563
569
  position = "inside";
564
570
  }
565
- // (b) No level cliff below: convert to "inside" so the highlight
566
- // covers the full bottom of the node.
567
- else if (clampedIndex < nodes.length - 1) {
568
- const nextNode = nodes[clampedIndex + 1];
569
- if (nextNode && (nextNode.level ?? 0) >= (targetNode.level ?? 0)) {
570
- position = "inside";
571
- }
572
- }
573
571
  }
574
572
 
575
573
  // --- Hysteresis: prevent flicker between "below N" and "above N+1" ---
@@ -632,7 +630,7 @@ export function useDragDrop<ID>(
632
630
  autoExpandTimerRef.current = setTimeout(() => {
633
631
  autoExpandTimerRef.current = null;
634
632
  // Expand the node and track it
635
- handleToggleExpand(storeId, targetNode.id);
633
+ expandNodes(storeId, [targetNode.id]);
636
634
  autoExpandedDuringDragRef.current.add(targetNode.id);
637
635
  }, autoExpandDelayRef.current);
638
636
  }
@@ -792,34 +790,24 @@ export function useDragDrop<ID>(
792
790
  newTreeData: newData,
793
791
  });
794
792
 
795
- // Scroll to the dropped node after React processes the expansion,
796
- // but only if it's outside the visible viewport. An animated
797
- // scroll would consume the user's next touch (RN stops the
798
- // animation on tap), so we skip when the node is already visible.
799
- setTimeout(() => {
800
- const nodes = flattenedNodesRef.current;
801
- const idx = nodes.findIndex(n => n.id === droppedNodeId);
802
- if (idx < 0) return;
803
-
804
- const itemH = itemHeightRef.current;
805
- const scrollTop = scrollOffsetRef.current;
806
- const containerH = containerHeightRef.current;
807
- const estimatedTop = idx * itemH;
808
- const estimatedBottom = estimatedTop + itemH;
809
-
810
- // Already in view → no scroll needed
811
- if (estimatedTop >= scrollTop && estimatedBottom <= scrollTop + containerH) {
812
- return;
813
- }
814
-
815
- flashListRef.current?.scrollToIndex?.({
816
- index: idx,
817
- animated: true,
818
- viewPosition: 0.5,
819
- });
820
- }, 100);
793
+ // Auto-scroll to the dropped node unless disabled by the user.
794
+ const scrollOpts = autoScrollToDroppedNode;
795
+ const scrollEnabled = scrollOpts === undefined || scrollOpts === true
796
+ || (typeof scrollOpts === "object" && scrollOpts.enabled !== false);
797
+
798
+ if (scrollEnabled) {
799
+ const custom = typeof scrollOpts === "object" ? scrollOpts : {};
800
+ setTimeout(() => {
801
+ scrollToNodeHandlerRef.current?.scrollToNodeID({
802
+ nodeId: droppedNodeId,
803
+ animated: custom.animated ?? true,
804
+ viewPosition: custom.viewPosition ?? 0.5,
805
+ viewOffset: custom.viewOffset,
806
+ });
807
+ }, 0);
808
+ }
821
809
  } else if (droppedNodeId !== null) {
822
- // Drag ended without a valid drop notify consumer
810
+ // Drag ended without a valid drop - notify consumer
823
811
  onDragCancelRef.current?.({ draggedNodeId: droppedNodeId });
824
812
  }
825
813
 
@@ -913,7 +901,7 @@ export function useDragDrop<ID>(
913
901
 
914
902
  // Update overlay position (with configurable offset)
915
903
  const overlayLocalY =
916
- fingerLocalY - grabOffsetYRef.current + dragOverlayOffsetRef.current * itemHeightRef.current;
904
+ fingerLocalY - grabOffsetYRef.current + (dragOverlayOffsetRef.current + PLATFORM_OVERLAY_Y_CORRECTION) * itemHeightRef.current;
917
905
  overlayY.setValue(overlayLocalY);
918
906
 
919
907
  // Calculate drop target (horizontal position used at level cliffs)
@@ -155,7 +155,7 @@ export function useScrollToNode<ID>(params: UseScrollToNodeParams<ID>) {
155
155
  }
156
156
 
157
157
  // Ensure if the parent is expanded before proceeding to scroll to the node.
158
- // This fires transiently during the milestone system the layout effect runs
158
+ // This fires transiently during the milestone system - the layout effect runs
159
159
  // before the expansion has propagated to the store, then retries on next render.
160
160
  /* istanbul ignore next -- async timing guard: expansion not yet propagated to store */
161
161
  if (parentId && !expanded.has(parentId))
package/src/index.tsx CHANGED
@@ -10,6 +10,7 @@ import type {
10
10
  BuiltInCheckBoxViewStyleProps,
11
11
  SelectionPropagation,
12
12
  DragAndDropOptions,
13
+ DropAutoScrollOptions,
13
14
  DragDropCustomizations,
14
15
  DragOverlayStyleProps,
15
16
  DragOverlayComponentProps,
@@ -41,6 +42,7 @@ export type {
41
42
  BuiltInCheckBoxViewStyleProps,
42
43
  SelectionPropagation,
43
44
  DragAndDropOptions,
45
+ DropAutoScrollOptions,
44
46
  DragCancelEvent,
45
47
  DragEndEvent,
46
48
  DragStartEvent,
@@ -139,6 +139,13 @@ export interface NodeProps<ID> extends TreeItemCustomizations<ID> {
139
139
  dragDropCustomizations?: DragDropCustomizations<ID>;
140
140
  }
141
141
 
142
+ /** Options for auto-scrolling to the dropped node after a successful drop.
143
+ * Uses the same scroll parameters as `scrollToNodeID` (minus internally managed fields). */
144
+ export interface DropAutoScrollOptions extends Omit<ScrollToNodeParams<never>, "nodeId" | "expandScrolledNode"> {
145
+ /** Enable auto-scroll to the dropped node. Default: true */
146
+ enabled?: boolean;
147
+ }
148
+
142
149
  /** Configuration options for drag-and-drop reordering */
143
150
  export interface DragAndDropOptions<ID = string> {
144
151
  /** Enable drag-and-drop reordering. Default: true (when dragAndDrop is provided) */
@@ -155,7 +162,7 @@ export interface DragAndDropOptions<ID = string> {
155
162
  autoScrollThreshold?: number;
156
163
  /** Speed multiplier for auto-scroll during drag. Default: 1.0 */
157
164
  autoScrollSpeed?: number;
158
- /** Offset of the dragged overlay from the finger, in item-height units. Default: -4 (four items above finger) */
165
+ /** Offset of the dragged overlay from the finger, in item-height units. Default: -2 (two items above finger) */
159
166
  dragOverlayOffset?: number;
160
167
  /** Delay in ms before auto-expanding a collapsed node during drag hover. Default: 800 */
161
168
  autoExpandDelay?: number;
@@ -173,6 +180,10 @@ export interface DragAndDropOptions<ID = string> {
173
180
  /** Callback to determine if a node can be dragged.
174
181
  * Return false to prevent dragging this node. Default: all nodes are draggable. */
175
182
  canDrag?: (node: TreeNode<ID>) => boolean;
183
+ /** Auto-scroll to the dropped node after a successful drop.
184
+ * Pass `false` to disable, `true` for defaults, or an object to customize.
185
+ * Default: `{ enabled: true, animated: true, viewPosition: 0.5 }` */
186
+ autoScrollToDroppedNode?: boolean | DropAutoScrollOptions;
176
187
  }
177
188
 
178
189
  /** Props for the NodeList component that renders the flattened tree */