react-native-drax 0.11.0-alpha.2 → 1.1.0
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/LICENSE.md +1 -1
- package/README.md +390 -227
- package/lib/module/DebugOverlay.js +121 -0
- package/lib/module/DebugOverlay.js.map +1 -0
- package/lib/module/Drax.js +36 -0
- package/lib/module/Drax.js.map +1 -0
- package/lib/module/DraxContext.js +6 -0
- package/lib/module/DraxContext.js.map +1 -0
- package/lib/module/DraxHandle.js +47 -0
- package/lib/module/DraxHandle.js.map +1 -0
- package/lib/module/DraxHandleContext.js +11 -0
- package/lib/module/DraxHandleContext.js.map +1 -0
- package/lib/module/DraxList.js +108 -0
- package/lib/module/DraxList.js.map +1 -0
- package/lib/module/DraxProvider.js +203 -0
- package/lib/module/DraxProvider.js.map +1 -0
- package/lib/module/DraxScrollView.js +167 -0
- package/lib/module/DraxScrollView.js.map +1 -0
- package/lib/module/DraxSubprovider.js +21 -0
- package/lib/module/DraxSubprovider.js.map +1 -0
- package/lib/module/DraxView.js +348 -0
- package/lib/module/DraxView.js.map +1 -0
- package/lib/module/HoverLayer.js +152 -0
- package/lib/module/HoverLayer.js.map +1 -0
- package/lib/module/SortableBoardContainer.js +386 -0
- package/lib/module/SortableBoardContainer.js.map +1 -0
- package/lib/module/SortableBoardContext.js +6 -0
- package/lib/module/SortableBoardContext.js.map +1 -0
- package/lib/module/SortableContainer.js +571 -0
- package/lib/module/SortableContainer.js.map +1 -0
- package/lib/module/SortableItem.js +226 -0
- package/lib/module/SortableItem.js.map +1 -0
- package/lib/module/SortableItemContext.js +38 -0
- package/lib/module/SortableItemContext.js.map +1 -0
- package/lib/module/compat/detectVersion.js +19 -0
- package/lib/module/compat/detectVersion.js.map +1 -0
- package/lib/module/compat/index.js +5 -0
- package/lib/module/compat/index.js.map +1 -0
- package/lib/module/compat/types.js +4 -0
- package/lib/module/compat/types.js.map +1 -0
- package/lib/module/compat/useDraxPanGesture.js +94 -0
- package/lib/module/compat/useDraxPanGesture.js.map +1 -0
- package/lib/module/hooks/index.js +5 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useCallbackDispatch.js +688 -0
- package/lib/module/hooks/useCallbackDispatch.js.map +1 -0
- package/lib/module/hooks/useDragGesture.js +240 -0
- package/lib/module/hooks/useDragGesture.js.map +1 -0
- package/lib/module/hooks/useDraxContext.js +12 -0
- package/lib/module/hooks/useDraxContext.js.map +1 -0
- package/lib/module/hooks/useDraxId.js +13 -0
- package/lib/module/hooks/useDraxId.js.map +1 -0
- package/lib/module/hooks/useDraxMethods.js +73 -0
- package/lib/module/hooks/useDraxMethods.js.map +1 -0
- package/lib/module/hooks/useDraxScrollHandler.js +97 -0
- package/lib/module/hooks/useDraxScrollHandler.js.map +1 -0
- package/lib/module/hooks/useSortableBoard.js +37 -0
- package/lib/module/hooks/useSortableBoard.js.map +1 -0
- package/lib/module/hooks/useSortableList.js +988 -0
- package/lib/module/hooks/useSortableList.js.map +1 -0
- package/lib/module/hooks/useSpatialIndex.js +283 -0
- package/lib/module/hooks/useSpatialIndex.js.map +1 -0
- package/lib/module/hooks/useViewStyles.js +158 -0
- package/lib/module/hooks/useViewStyles.js.map +1 -0
- package/lib/module/hooks/useWebScrollFreeze.js +52 -0
- package/lib/module/hooks/useWebScrollFreeze.js.map +1 -0
- package/lib/module/index.js +37 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/math.js +294 -0
- package/lib/module/math.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/params.js +88 -0
- package/lib/module/params.js.map +1 -0
- package/lib/module/types.js +215 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/DebugOverlay.d.ts +17 -0
- package/lib/typescript/src/DebugOverlay.d.ts.map +1 -0
- package/lib/typescript/src/Drax.d.ts +28 -0
- package/lib/typescript/src/Drax.d.ts.map +1 -0
- package/lib/typescript/src/DraxContext.d.ts +3 -0
- package/lib/typescript/src/DraxContext.d.ts.map +1 -0
- package/lib/typescript/src/DraxHandle.d.ts +25 -0
- package/lib/typescript/src/DraxHandle.d.ts.map +1 -0
- package/lib/typescript/src/DraxHandleContext.d.ts +12 -0
- package/lib/typescript/src/DraxHandleContext.d.ts.map +1 -0
- package/lib/typescript/src/DraxList.d.ts +66 -0
- package/lib/typescript/src/DraxList.d.ts.map +1 -0
- package/lib/typescript/src/DraxProvider.d.ts +4 -0
- package/lib/typescript/src/DraxProvider.d.ts.map +1 -0
- package/lib/typescript/src/DraxScrollView.d.ts +7 -0
- package/lib/typescript/src/DraxScrollView.d.ts.map +1 -0
- package/lib/typescript/src/DraxSubprovider.d.ts +4 -0
- package/lib/typescript/src/DraxSubprovider.d.ts.map +1 -0
- package/lib/typescript/src/DraxView.d.ts +4 -0
- package/lib/typescript/src/DraxView.d.ts.map +1 -0
- package/lib/typescript/src/HoverLayer.d.ts +38 -0
- package/lib/typescript/src/HoverLayer.d.ts.map +1 -0
- package/lib/typescript/src/SortableBoardContainer.d.ts +11 -0
- package/lib/typescript/src/SortableBoardContainer.d.ts.map +1 -0
- package/lib/typescript/src/SortableBoardContext.d.ts +4 -0
- package/lib/typescript/src/SortableBoardContext.d.ts.map +1 -0
- package/lib/typescript/src/SortableContainer.d.ts +13 -0
- package/lib/typescript/src/SortableContainer.d.ts.map +1 -0
- package/lib/typescript/src/SortableItem.d.ts +14 -0
- package/lib/typescript/src/SortableItem.d.ts.map +1 -0
- package/lib/typescript/src/SortableItemContext.d.ts +37 -0
- package/lib/typescript/src/SortableItemContext.d.ts.map +1 -0
- package/lib/typescript/src/compat/detectVersion.d.ts +2 -0
- package/lib/typescript/src/compat/detectVersion.d.ts.map +1 -0
- package/lib/typescript/src/compat/index.d.ts +4 -0
- package/lib/typescript/src/compat/index.d.ts.map +1 -0
- package/lib/typescript/src/compat/types.d.ts +33 -0
- package/lib/typescript/src/compat/types.d.ts.map +1 -0
- package/lib/typescript/src/compat/useDraxPanGesture.d.ts +8 -0
- package/lib/typescript/src/compat/useDraxPanGesture.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +3 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useCallbackDispatch.d.ts +40 -0
- package/lib/typescript/src/hooks/useCallbackDispatch.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDragGesture.d.ts +17 -0
- package/lib/typescript/src/hooks/useDragGesture.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDraxContext.d.ts +2 -0
- package/lib/typescript/src/hooks/useDraxContext.d.ts.map +1 -0
- package/{build → lib/typescript/src}/hooks/useDraxId.d.ts +1 -0
- package/lib/typescript/src/hooks/useDraxId.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDraxMethods.d.ts +13 -0
- package/lib/typescript/src/hooks/useDraxMethods.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDraxScrollHandler.d.ts +27 -0
- package/lib/typescript/src/hooks/useDraxScrollHandler.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSortableBoard.d.ts +10 -0
- package/lib/typescript/src/hooks/useSortableBoard.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSortableList.d.ts +11 -0
- package/lib/typescript/src/hooks/useSortableList.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSpatialIndex.d.ts +22 -0
- package/lib/typescript/src/hooks/useSpatialIndex.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useViewStyles.d.ts +183 -0
- package/lib/typescript/src/hooks/useViewStyles.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useWebScrollFreeze.d.ts +14 -0
- package/lib/typescript/src/hooks/useWebScrollFreeze.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +25 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/math.d.ts +76 -0
- package/lib/typescript/src/math.d.ts.map +1 -0
- package/{build → lib/typescript/src}/params.d.ts +13 -9
- package/lib/typescript/src/params.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +756 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +164 -34
- package/src/DebugOverlay.tsx +140 -0
- package/src/Drax.ts +33 -0
- package/src/DraxContext.ts +8 -0
- package/src/DraxHandle.tsx +52 -0
- package/src/DraxHandleContext.ts +15 -0
- package/src/DraxList.tsx +181 -0
- package/src/DraxProvider.tsx +224 -0
- package/src/DraxScrollView.tsx +180 -0
- package/src/DraxSubprovider.tsx +22 -0
- package/src/DraxView.tsx +430 -0
- package/src/HoverLayer.tsx +167 -0
- package/src/SortableBoardContainer.tsx +439 -0
- package/src/SortableBoardContext.ts +6 -0
- package/src/SortableContainer.tsx +650 -0
- package/src/SortableItem.tsx +264 -0
- package/src/SortableItemContext.ts +46 -0
- package/src/compat/detectVersion.ts +17 -0
- package/src/compat/index.ts +7 -0
- package/src/compat/types.ts +35 -0
- package/src/compat/useDraxPanGesture.ts +112 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useCallbackDispatch.tsx +830 -0
- package/src/hooks/useDragGesture.ts +273 -0
- package/src/hooks/useDraxContext.ts +11 -0
- package/src/hooks/useDraxId.ts +11 -0
- package/src/hooks/useDraxMethods.ts +71 -0
- package/src/hooks/useDraxScrollHandler.ts +121 -0
- package/src/hooks/useSortableBoard.ts +44 -0
- package/src/hooks/useSortableList.ts +1063 -0
- package/src/hooks/useSpatialIndex.ts +336 -0
- package/src/hooks/useViewStyles.ts +180 -0
- package/src/hooks/useWebScrollFreeze.ts +60 -0
- package/src/index.ts +111 -0
- package/src/math.ts +333 -0
- package/src/params.ts +74 -0
- package/src/types.ts +933 -0
- package/.editorconfig +0 -15
- package/.eslintrc.js +0 -4
- package/.prettierrc +0 -16
- package/CHANGELOG.md +0 -270
- package/CODE-OF-CONDUCT.md +0 -85
- package/CONTRIBUTING.md +0 -15
- package/FUNDING.yml +0 -4
- package/build/AllHoverViews.d.ts +0 -0
- package/build/AllHoverViews.js +0 -30
- package/build/DraxContext.d.ts +0 -2
- package/build/DraxContext.js +0 -6
- package/build/DraxList.d.ts +0 -8
- package/build/DraxList.js +0 -512
- package/build/DraxListItem.d.ts +0 -7
- package/build/DraxListItem.js +0 -121
- package/build/DraxProvider.d.ts +0 -2
- package/build/DraxProvider.js +0 -704
- package/build/DraxScrollView.d.ts +0 -6
- package/build/DraxScrollView.js +0 -136
- package/build/DraxSubprovider.d.ts +0 -3
- package/build/DraxSubprovider.js +0 -18
- package/build/DraxView.d.ts +0 -8
- package/build/DraxView.js +0 -93
- package/build/HoverView.d.ts +0 -8
- package/build/HoverView.js +0 -40
- package/build/PanGestureDetector.d.ts +0 -3
- package/build/PanGestureDetector.js +0 -49
- package/build/hooks/index.d.ts +0 -4
- package/build/hooks/index.js +0 -11
- package/build/hooks/useContent.d.ts +0 -23
- package/build/hooks/useContent.js +0 -212
- package/build/hooks/useDraxContext.d.ts +0 -1
- package/build/hooks/useDraxContext.js +0 -13
- package/build/hooks/useDraxId.js +0 -13
- package/build/hooks/useDraxProtocol.d.ts +0 -5
- package/build/hooks/useDraxProtocol.js +0 -32
- package/build/hooks/useDraxRegistry.d.ts +0 -78
- package/build/hooks/useDraxRegistry.js +0 -714
- package/build/hooks/useDraxScrollHandler.d.ts +0 -25
- package/build/hooks/useDraxScrollHandler.js +0 -89
- package/build/hooks/useDraxState.d.ts +0 -10
- package/build/hooks/useDraxState.js +0 -132
- package/build/hooks/useMeasurements.d.ts +0 -9
- package/build/hooks/useMeasurements.js +0 -119
- package/build/hooks/useStatus.d.ts +0 -11
- package/build/hooks/useStatus.js +0 -96
- package/build/index.d.ts +0 -9
- package/build/index.js +0 -33
- package/build/math.d.ts +0 -22
- package/build/math.js +0 -68
- package/build/params.js +0 -27
- package/build/transform.d.ts +0 -11
- package/build/transform.js +0 -59
- package/build/types.d.ts +0 -807
- package/build/types.js +0 -46
- package/docs/concept.md +0 -79
- package/docs/images/color-drag-drop.gif +0 -0
- package/docs/images/deck-cards.gif +0 -0
- package/docs/images/drag-drop-events.jpg +0 -0
- package/docs/images/knight-moves.gif +0 -0
- package/docs/images/reorderable-list.gif +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useLayoutEffect","useRef","useState","useSharedValue","runOnUI","defaultAutoScrollBackThreshold","defaultAutoScrollForwardThreshold","defaultAutoScrollJumpRatio","defaultListItemLongPressDelay","packGrid","DraxSnapbackTargetPreset","useDraxId","useStableKeyExtractor","_item","index","useSortableList","options","data","rawData","keyExtractor","onReorder","horizontal","numColumns","reorderStrategy","longPressDelay","lockToMainAxis","autoScrollJumpRatio","autoScrollBackThreshold","autoScrollForwardThreshold","animationConfig","getItemSpan","inactiveItemStyle","itemEntering","itemExiting","onDragStart","onDragPositionChange","onDragEnd","id","fixedKeys","Set","draggedItem","undefined","dropTargetPositionSV","x","y","dropTargetVisibleSV","shiftsRef","instantClearSV","shiftsValidSV","originalIndexes","setOriginalIndexes","stableData","setStableData","rawDataRef","current","itemMeasurements","Map","containerMeasurementsRef","contentSizeRef","scrollPosition","draggedDisplayIndexRef","dragStartIndexRef","pendingOrderRef","committedOrderRef","committedShiftsRef","committedKeyOrderRef","phantomRef","ghostShiftsRef","skipShiftsInvalidationRef","prev","isIdentity","length","every","v","i","Array","keys","committedKeys","matches","item","value","getMeasurementByOriginalIndex","originalIndex","key","get","getMeasForOrigIdx","getSpanForOrigIdx","origIdx","colSpan","rowSpan","deriveGridGeometry","firstOrigIdx","startMeas","origPacking","displayIdx","cellWidth","cellHeight","span","meas","width","height","firstSpan","colGap","positions","j","pi","pj","col","mi","mj","colDiff","Math","abs","xDiff","rowGap","row","rowDiff","yDiff","max","startX","startY","applyShifts","shifts","ghosts","Object","computeItemGap","meas0","meas1","firstRowEnd","min","lastInRow0","firstInRow1","computeShiftsForOrder","order","skipIndex","phantom","measurements","map","missingShiftIdx","findIndex","m","gap","targetPositions","cursor","displaySlot","atDisplayIndex","set","geo","packing","gp","cursorY","colXPositions","c","colMeas","push","rowStart","rowHeight","newShifts","currentMeas","target","dx","dy","computeShifts","moveDraggedItem","toDisplayIndex","fromIdx","targetOrigIdx","targetItem","targetKey","has","newOrder","temp","removed","splice","commitVisualOrder","pending","finalShifts","pendingShiftFlushRef","flushVisualOrder","currentRawData","setDraggedItem","resetDraggedItem","initPendingOrder","committed","cancelDrag","setPhantomSlot","clearPhantomSlot","ejectDraggedItem","dragIdx","reinjectDraggedItem","displayIndex","getPhantomSnapTarget","containerMeasurements","Default","phantomPos","getSlotFromPosition","contentPos","missingIdx","itemCount","firstMeas","size","boundary","pos","cellCol","floor","cellRow","cellOwner","r","owner","minDist","Infinity","nearest","cx","cy","dist","targetRow","totalRows","ceil","rowEnd","firstMeasWidth","targetCol","colX","colBoundary","getSnapbackTarget","some","targetPos","snapFirstOrigIdx","snapStartMeas","di","onScroll","event","_event","contentOffset","nativeEvent","onContentSizeChange","internal","onItemSnapEnd","stableKeyExtractor","_internal"],"sourceRoot":"../../../src","sources":["hooks/useSortableList.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
import { useSharedValue } from 'react-native-reanimated';
|
|
5
|
+
/**
|
|
6
|
+
* Module-level helper to update spatial entry capabilities.
|
|
7
|
+
* Defined outside the hook so the worklet closure cannot capture
|
|
8
|
+
* any React refs from the hook scope — only the explicitly passed values.
|
|
9
|
+
*/
|
|
10
|
+
function updateSpatialEntryCapabilities(spatialIndexSV, idx, draggable, receptive, monitoring, rejectOwnChildren, collisionAlgorithm) {
|
|
11
|
+
spatialIndexSV.modify(entries => {
|
|
12
|
+
'worklet';
|
|
13
|
+
|
|
14
|
+
if (idx >= 0 && idx < entries.length && entries[idx]) {
|
|
15
|
+
entries[idx].receptive = receptive;
|
|
16
|
+
entries[idx].monitoring = monitoring;
|
|
17
|
+
entries[idx].draggable = draggable;
|
|
18
|
+
entries[idx].rejectOwnChildren = rejectOwnChildren;
|
|
19
|
+
entries[idx].collisionAlgorithm = collisionAlgorithm;
|
|
20
|
+
}
|
|
21
|
+
return entries;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Manages the spatial index (SharedValue<SpatialEntry[]>) and the JS-thread
|
|
27
|
+
* view registry (Map<string, ViewRegistryEntry>).
|
|
28
|
+
*
|
|
29
|
+
* The spatial index lives on the UI thread and is used by gesture worklets
|
|
30
|
+
* for hit-testing. The registry is JS-thread only and stores callbacks,
|
|
31
|
+
* props, and other data that worklets don't need.
|
|
32
|
+
*/
|
|
33
|
+
export const useSpatialIndex = () => {
|
|
34
|
+
// ── SharedValues ───────────────────────────────────────────────────
|
|
35
|
+
const spatialIndexSV = useSharedValue([]);
|
|
36
|
+
const scrollOffsetsSV = useSharedValue([]);
|
|
37
|
+
|
|
38
|
+
// ── JS-thread registry ─────────────────────────────────────────────
|
|
39
|
+
const registryRef = useRef(new Map());
|
|
40
|
+
/** Local counter for deterministic index assignment (avoids race with async modify) */
|
|
41
|
+
const nextIndexRef = useRef(0);
|
|
42
|
+
/** Pending unregisters — deferred so re-registration can cancel them */
|
|
43
|
+
const pendingUnregistersRef = useRef(new Set());
|
|
44
|
+
|
|
45
|
+
/** Find the spatial index of a parent view, or -1 if not found */
|
|
46
|
+
const findParentSpatialIndex = parentId => {
|
|
47
|
+
if (!parentId) return -1;
|
|
48
|
+
const parent = registryRef.current.get(parentId);
|
|
49
|
+
return parent?.spatialIndex ?? -1;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/** Perform the actual removal of a view from spatial index and registry */
|
|
53
|
+
const performUnregister = id => {
|
|
54
|
+
const entry = registryRef.current.get(id);
|
|
55
|
+
if (!entry) return;
|
|
56
|
+
const removedIndex = entry.spatialIndex;
|
|
57
|
+
|
|
58
|
+
// Remove from spatial index
|
|
59
|
+
spatialIndexSV.modify(entries => {
|
|
60
|
+
'worklet';
|
|
61
|
+
|
|
62
|
+
entries.splice(removedIndex, 1);
|
|
63
|
+
return entries;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Remove from scroll offsets
|
|
67
|
+
scrollOffsetsSV.modify(offsets => {
|
|
68
|
+
'worklet';
|
|
69
|
+
|
|
70
|
+
offsets.splice(removedIndex, 1);
|
|
71
|
+
return offsets;
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Remove from JS registry
|
|
75
|
+
registryRef.current.delete(id);
|
|
76
|
+
nextIndexRef.current -= 1;
|
|
77
|
+
|
|
78
|
+
// Update spatial indices for all entries after the removed one
|
|
79
|
+
for (const [, regEntry] of registryRef.current) {
|
|
80
|
+
if (regEntry.spatialIndex > removedIndex) {
|
|
81
|
+
regEntry.spatialIndex -= 1;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Update parent indices in spatial index (entries that pointed to removed or later indices)
|
|
86
|
+
spatialIndexSV.modify(entries => {
|
|
87
|
+
'worklet';
|
|
88
|
+
|
|
89
|
+
for (let i = 0; i < entries.length; i++) {
|
|
90
|
+
const e = entries[i];
|
|
91
|
+
if (!e) continue;
|
|
92
|
+
if (e.parentIndex === removedIndex) {
|
|
93
|
+
// Parent was removed — reparent to grandparent or root
|
|
94
|
+
e.parentIndex = -1;
|
|
95
|
+
} else if (e.parentIndex > removedIndex) {
|
|
96
|
+
e.parentIndex -= 1;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return entries;
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/** Register a view (idempotent — re-registration preserves measurements) */
|
|
104
|
+
const registerView = payload => {
|
|
105
|
+
const {
|
|
106
|
+
id,
|
|
107
|
+
parentId,
|
|
108
|
+
scrollPosition,
|
|
109
|
+
props
|
|
110
|
+
} = payload;
|
|
111
|
+
|
|
112
|
+
// Cancel any pending unregister for this view
|
|
113
|
+
pendingUnregistersRef.current.delete(id);
|
|
114
|
+
|
|
115
|
+
// Determine capabilities from props
|
|
116
|
+
const draggable = isDraggable(props);
|
|
117
|
+
const receptive = isReceptive(props);
|
|
118
|
+
const monitoring = isMonitoring(props);
|
|
119
|
+
|
|
120
|
+
// If already registered, update in-place (preserves measurements)
|
|
121
|
+
const existing = registryRef.current.get(id);
|
|
122
|
+
if (existing) {
|
|
123
|
+
existing.parentId = parentId;
|
|
124
|
+
existing.scrollPosition = scrollPosition;
|
|
125
|
+
existing.props = props;
|
|
126
|
+
const idx = existing.spatialIndex;
|
|
127
|
+
updateSpatialEntryCapabilities(spatialIndexSV, idx, draggable, receptive, monitoring, props.rejectOwnChildren ?? false, props.collisionAlgorithm ?? 'center');
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const parentIndex = findParentSpatialIndex(parentId);
|
|
131
|
+
|
|
132
|
+
// Append to spatial index
|
|
133
|
+
const newEntry = {
|
|
134
|
+
id,
|
|
135
|
+
x: 0,
|
|
136
|
+
y: 0,
|
|
137
|
+
width: 0,
|
|
138
|
+
height: 0,
|
|
139
|
+
parentIndex,
|
|
140
|
+
receptive,
|
|
141
|
+
monitoring,
|
|
142
|
+
draggable,
|
|
143
|
+
rejectOwnChildren: props.rejectOwnChildren ?? false,
|
|
144
|
+
collisionAlgorithm: props.collisionAlgorithm ?? 'center'
|
|
145
|
+
};
|
|
146
|
+
const spatialIndex = nextIndexRef.current;
|
|
147
|
+
nextIndexRef.current += 1;
|
|
148
|
+
spatialIndexSV.modify(entries => {
|
|
149
|
+
'worklet';
|
|
150
|
+
|
|
151
|
+
entries.push(newEntry);
|
|
152
|
+
return entries;
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Also extend scroll offsets array
|
|
156
|
+
scrollOffsetsSV.modify(offsets => {
|
|
157
|
+
'worklet';
|
|
158
|
+
|
|
159
|
+
offsets.push({
|
|
160
|
+
x: 0,
|
|
161
|
+
y: 0
|
|
162
|
+
});
|
|
163
|
+
return offsets;
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
// Store in JS registry
|
|
167
|
+
registryRef.current.set(id, {
|
|
168
|
+
id,
|
|
169
|
+
parentId,
|
|
170
|
+
spatialIndex,
|
|
171
|
+
scrollPosition,
|
|
172
|
+
measurements: undefined,
|
|
173
|
+
props
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
// Fix up children that registered before this parent.
|
|
177
|
+
// React fires useEffect bottom-up, so children often register before their parent.
|
|
178
|
+
// Scan existing entries and update their parentIndex if they reference this view.
|
|
179
|
+
for (const [, childEntry] of registryRef.current) {
|
|
180
|
+
if (childEntry.parentId === id && childEntry.id !== id) {
|
|
181
|
+
const childIdx = childEntry.spatialIndex;
|
|
182
|
+
spatialIndexSV.modify(entries => {
|
|
183
|
+
'worklet';
|
|
184
|
+
|
|
185
|
+
if (childIdx >= 0 && childIdx < entries.length && entries[childIdx] && entries[childIdx].parentIndex !== spatialIndex) {
|
|
186
|
+
entries[childIdx].parentIndex = spatialIndex;
|
|
187
|
+
}
|
|
188
|
+
return entries;
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Unregister a view. Deferred via microtask so that if registerView is
|
|
196
|
+
* called for the same ID immediately after (useEffect cleanup → re-register),
|
|
197
|
+
* the removal is cancelled and measurements are preserved.
|
|
198
|
+
*/
|
|
199
|
+
const unregisterView = id => {
|
|
200
|
+
pendingUnregistersRef.current.add(id);
|
|
201
|
+
queueMicrotask(() => {
|
|
202
|
+
if (!pendingUnregistersRef.current.has(id)) return;
|
|
203
|
+
pendingUnregistersRef.current.delete(id);
|
|
204
|
+
performUnregister(id);
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
/** Update measurements for a view (called on layout) */
|
|
209
|
+
const updateMeasurements = (id, measurements) => {
|
|
210
|
+
const entry = registryRef.current.get(id);
|
|
211
|
+
if (!entry) return;
|
|
212
|
+
entry.measurements = measurements;
|
|
213
|
+
const idx = entry.spatialIndex;
|
|
214
|
+
spatialIndexSV.modify(entries => {
|
|
215
|
+
'worklet';
|
|
216
|
+
|
|
217
|
+
if (idx >= 0 && idx < entries.length && entries[idx]) {
|
|
218
|
+
entries[idx].x = measurements.x;
|
|
219
|
+
entries[idx].y = measurements.y;
|
|
220
|
+
entries[idx].width = measurements.width;
|
|
221
|
+
entries[idx].height = measurements.height;
|
|
222
|
+
}
|
|
223
|
+
return entries;
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
/** Update scroll offset for a scrollable view */
|
|
228
|
+
const updateScrollOffset = (id, offset) => {
|
|
229
|
+
const entry = registryRef.current.get(id);
|
|
230
|
+
if (!entry) return;
|
|
231
|
+
const idx = entry.spatialIndex;
|
|
232
|
+
scrollOffsetsSV.modify(offsets => {
|
|
233
|
+
'worklet';
|
|
234
|
+
|
|
235
|
+
if (idx >= 0 && idx < offsets.length) {
|
|
236
|
+
offsets[idx] = offset;
|
|
237
|
+
}
|
|
238
|
+
return offsets;
|
|
239
|
+
});
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/** Update view props (callbacks, capabilities, etc.) */
|
|
243
|
+
const updateViewProps = (id, props) => {
|
|
244
|
+
const entry = registryRef.current.get(id);
|
|
245
|
+
if (!entry) return;
|
|
246
|
+
entry.props = props;
|
|
247
|
+
|
|
248
|
+
// Update capabilities in spatial index
|
|
249
|
+
const draggable = isDraggable(props);
|
|
250
|
+
const receptive = isReceptive(props);
|
|
251
|
+
const monitoring = isMonitoring(props);
|
|
252
|
+
const idx = entry.spatialIndex;
|
|
253
|
+
updateSpatialEntryCapabilities(spatialIndexSV, idx, draggable, receptive, monitoring, props.rejectOwnChildren ?? false, props.collisionAlgorithm ?? 'center');
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
/** Get a view registry entry by id */
|
|
257
|
+
const getViewEntry = id => {
|
|
258
|
+
return registryRef.current.get(id);
|
|
259
|
+
};
|
|
260
|
+
return {
|
|
261
|
+
spatialIndexSV,
|
|
262
|
+
scrollOffsetsSV,
|
|
263
|
+
registerView,
|
|
264
|
+
unregisterView,
|
|
265
|
+
updateMeasurements,
|
|
266
|
+
updateScrollOffset,
|
|
267
|
+
updateViewProps,
|
|
268
|
+
getViewEntry
|
|
269
|
+
};
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
// ─── Helper functions ──────────────────────────────────────────────────────
|
|
273
|
+
|
|
274
|
+
export function isDraggable(props) {
|
|
275
|
+
return props.draggable ?? (props.dragPayload !== undefined || props.payload !== undefined || !!props.onDrag || !!props.onDragEnd || !!props.onDragEnter || !!props.onDragExit || !!props.onDragOver || !!props.onDragStart || !!props.onDragDrop);
|
|
276
|
+
}
|
|
277
|
+
function isReceptive(props) {
|
|
278
|
+
return props.receptive ?? (props.receiverPayload !== undefined || props.payload !== undefined || !!props.onReceiveDragEnter || !!props.onReceiveDragExit || !!props.onReceiveDragOver || !!props.onReceiveDragDrop);
|
|
279
|
+
}
|
|
280
|
+
function isMonitoring(props) {
|
|
281
|
+
return props.monitoring ?? (!!props.onMonitorDragStart || !!props.onMonitorDragEnter || !!props.onMonitorDragOver || !!props.onMonitorDragExit || !!props.onMonitorDragEnd || !!props.onMonitorDragDrop);
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=useSpatialIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useSharedValue","updateSpatialEntryCapabilities","spatialIndexSV","idx","draggable","receptive","monitoring","rejectOwnChildren","collisionAlgorithm","modify","entries","length","useSpatialIndex","scrollOffsetsSV","registryRef","Map","nextIndexRef","pendingUnregistersRef","Set","findParentSpatialIndex","parentId","parent","current","get","spatialIndex","performUnregister","id","entry","removedIndex","splice","offsets","delete","regEntry","i","e","parentIndex","registerView","payload","scrollPosition","props","isDraggable","isReceptive","isMonitoring","existing","newEntry","x","y","width","height","push","set","measurements","undefined","childEntry","childIdx","unregisterView","add","queueMicrotask","has","updateMeasurements","updateScrollOffset","offset","updateViewProps","getViewEntry","dragPayload","onDrag","onDragEnd","onDragEnter","onDragExit","onDragOver","onDragStart","onDragDrop","receiverPayload","onReceiveDragEnter","onReceiveDragExit","onReceiveDragOver","onReceiveDragDrop","onMonitorDragStart","onMonitorDragEnter","onMonitorDragOver","onMonitorDragExit","onMonitorDragEnd","onMonitorDragDrop"],"sourceRoot":"../../../src","sources":["hooks/useSpatialIndex.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import { useAnimatedStyle } from 'react-native-reanimated';
|
|
5
|
+
import { useDraxContext } from "./useDraxContext.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Provides animated styles for a DraxView.
|
|
9
|
+
*
|
|
10
|
+
* Key performance property: reads ONLY draggedIdSV, receiverIdSV, and dragPhaseSV.
|
|
11
|
+
* These change ~5 times per drag total (not per frame), so ALL views re-evaluate
|
|
12
|
+
* their styles only ~5 times per drag operation.
|
|
13
|
+
*
|
|
14
|
+
* hoverPositionSV is NOT read here — only HoverLayer reads it, ensuring only
|
|
15
|
+
* 1 component re-evaluates per frame during active drag.
|
|
16
|
+
*/
|
|
17
|
+
export const useViewStyles = (id, styleProps) => {
|
|
18
|
+
const {
|
|
19
|
+
draggedIdSV,
|
|
20
|
+
receiverIdSV,
|
|
21
|
+
dragPhaseSV
|
|
22
|
+
} = useDraxContext();
|
|
23
|
+
const {
|
|
24
|
+
style,
|
|
25
|
+
dragInactiveStyle,
|
|
26
|
+
draggingStyle,
|
|
27
|
+
draggingWithReceiverStyle,
|
|
28
|
+
draggingWithoutReceiverStyle,
|
|
29
|
+
dragReleasedStyle,
|
|
30
|
+
receiverInactiveStyle,
|
|
31
|
+
receivingStyle,
|
|
32
|
+
otherDraggingStyle,
|
|
33
|
+
otherDraggingWithReceiverStyle,
|
|
34
|
+
otherDraggingWithoutReceiverStyle
|
|
35
|
+
} = styleProps;
|
|
36
|
+
|
|
37
|
+
// Flatten style props once (they don't change during a drag)
|
|
38
|
+
const flatDraggingStyle = flattenOrNull(draggingStyle);
|
|
39
|
+
const flatDraggingWithReceiverStyle = flattenOrNull(draggingWithReceiverStyle);
|
|
40
|
+
const flatDraggingWithoutReceiverStyle = flattenOrNull(draggingWithoutReceiverStyle);
|
|
41
|
+
const flatDragReleasedStyle = flattenOrNull(dragReleasedStyle);
|
|
42
|
+
const flatDragInactiveStyle = flattenOrNull(dragInactiveStyle);
|
|
43
|
+
const flatReceiverInactiveStyle = flattenOrNull(receiverInactiveStyle);
|
|
44
|
+
const flatReceivingStyle = flattenOrNull(receivingStyle);
|
|
45
|
+
const flatOtherDraggingStyle = flattenOrNull(otherDraggingStyle);
|
|
46
|
+
const flatOtherDraggingWithReceiverStyle = flattenOrNull(otherDraggingWithReceiverStyle);
|
|
47
|
+
const flatOtherDraggingWithoutReceiverStyle = flattenOrNull(otherDraggingWithoutReceiverStyle);
|
|
48
|
+
|
|
49
|
+
// Compute a reset style that restores all animated properties to their base
|
|
50
|
+
// style values (or neutral defaults if not in the base style). Reanimated does
|
|
51
|
+
// not auto-clear native style properties when they disappear from
|
|
52
|
+
// useAnimatedStyle, so we must always set them explicitly.
|
|
53
|
+
const flatBaseStyle = flattenOrNull(style);
|
|
54
|
+
const resetStyle = computeResetStyle(flatBaseStyle, flatDraggingStyle, flatDraggingWithReceiverStyle, flatDraggingWithoutReceiverStyle, flatDragReleasedStyle, flatDragInactiveStyle, flatReceiverInactiveStyle, flatReceivingStyle, flatOtherDraggingStyle, flatOtherDraggingWithReceiverStyle, flatOtherDraggingWithoutReceiverStyle);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The animated style. Re-evaluates only when draggedIdSV, receiverIdSV,
|
|
58
|
+
* or dragPhaseSV change (~5 times per drag).
|
|
59
|
+
*
|
|
60
|
+
* Always spreads resetStyle first so that every animated property is
|
|
61
|
+
* explicitly set, preventing stale native-side values from lingering.
|
|
62
|
+
*/
|
|
63
|
+
const animatedDragStyle = useAnimatedStyle(() => {
|
|
64
|
+
const draggedId = draggedIdSV.value;
|
|
65
|
+
const receiverId = receiverIdSV.value;
|
|
66
|
+
const phase = dragPhaseSV.value;
|
|
67
|
+
const isMe = draggedId === id;
|
|
68
|
+
const amReceiving = receiverId === id;
|
|
69
|
+
const isDragging = phase !== 'idle';
|
|
70
|
+
|
|
71
|
+
// This view is being dragged
|
|
72
|
+
if (isMe && phase === 'dragging') {
|
|
73
|
+
return mergeStyles(resetStyle, flatDraggingStyle, amReceiving ? flatDraggingWithReceiverStyle : flatDraggingWithoutReceiverStyle);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// This view was just released
|
|
77
|
+
if (isMe && phase === 'releasing') {
|
|
78
|
+
return mergeStyles(resetStyle, flatDragReleasedStyle ?? flatDraggingStyle);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// This view is receiving a drag
|
|
82
|
+
if (amReceiving && isDragging) {
|
|
83
|
+
return mergeStyles(resetStyle, flatReceivingStyle);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Another view is being dragged (not me, not receiving)
|
|
87
|
+
if (isDragging && !isMe) {
|
|
88
|
+
return mergeStyles(resetStyle, flatDragInactiveStyle, flatOtherDraggingStyle, amReceiving ? flatOtherDraggingWithReceiverStyle : flatOtherDraggingWithoutReceiverStyle);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Idle state — combine inactive styles with reset base
|
|
92
|
+
return mergeStyles(resetStyle, flatDragInactiveStyle, flatReceiverInactiveStyle);
|
|
93
|
+
});
|
|
94
|
+
return {
|
|
95
|
+
style,
|
|
96
|
+
animatedDragStyle
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
// ─── Helpers ───────────────────────────────────────────────────────────────
|
|
101
|
+
|
|
102
|
+
function flattenOrNull(s) {
|
|
103
|
+
if (!s) return null;
|
|
104
|
+
return StyleSheet.flatten(s) ?? null;
|
|
105
|
+
}
|
|
106
|
+
function mergeStyles(...styles) {
|
|
107
|
+
'worklet';
|
|
108
|
+
|
|
109
|
+
let result = {};
|
|
110
|
+
for (const s of styles) {
|
|
111
|
+
if (s) {
|
|
112
|
+
result = {
|
|
113
|
+
...result,
|
|
114
|
+
...s
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Builds an object that explicitly resets every property found in any of the
|
|
123
|
+
* special style objects to its base-style value (or a neutral default if the
|
|
124
|
+
* base style doesn't define that property).
|
|
125
|
+
*
|
|
126
|
+
* This is necessary because Reanimated's native animation driver does not
|
|
127
|
+
* automatically remove style properties when they disappear from
|
|
128
|
+
* useAnimatedStyle. Without explicit resets, properties like borderWidth
|
|
129
|
+
* or opacity linger with their last animated value.
|
|
130
|
+
*
|
|
131
|
+
* Using base-style values as defaults prevents the animated style from
|
|
132
|
+
* overriding the regular `style` prop (e.g., blue borders set via React state).
|
|
133
|
+
*/
|
|
134
|
+
function computeResetStyle(base, ...specials) {
|
|
135
|
+
const reset = {};
|
|
136
|
+
const baseMap = base ? Object.entries(base).reduce((acc, [k, v]) => {
|
|
137
|
+
acc[k] = v;
|
|
138
|
+
return acc;
|
|
139
|
+
}, {}) : {};
|
|
140
|
+
for (const s of specials) {
|
|
141
|
+
if (!s) continue;
|
|
142
|
+
for (const [key, value] of Object.entries(s)) {
|
|
143
|
+
if (key in reset) continue;
|
|
144
|
+
if (key in baseMap) {
|
|
145
|
+
// Use the base style's value so we don't override it
|
|
146
|
+
reset[key] = baseMap[key];
|
|
147
|
+
} else if (typeof value === 'number') {
|
|
148
|
+
// opacity defaults to 1; all other numeric properties default to 0
|
|
149
|
+
reset[key] = key === 'opacity' ? 1 : 0;
|
|
150
|
+
} else if (typeof value === 'string') {
|
|
151
|
+
reset[key] = 'transparent';
|
|
152
|
+
}
|
|
153
|
+
// Skip non-primitive values (transform arrays, etc.)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return reset;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=useViewStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","useAnimatedStyle","useDraxContext","useViewStyles","id","styleProps","draggedIdSV","receiverIdSV","dragPhaseSV","style","dragInactiveStyle","draggingStyle","draggingWithReceiverStyle","draggingWithoutReceiverStyle","dragReleasedStyle","receiverInactiveStyle","receivingStyle","otherDraggingStyle","otherDraggingWithReceiverStyle","otherDraggingWithoutReceiverStyle","flatDraggingStyle","flattenOrNull","flatDraggingWithReceiverStyle","flatDraggingWithoutReceiverStyle","flatDragReleasedStyle","flatDragInactiveStyle","flatReceiverInactiveStyle","flatReceivingStyle","flatOtherDraggingStyle","flatOtherDraggingWithReceiverStyle","flatOtherDraggingWithoutReceiverStyle","flatBaseStyle","resetStyle","computeResetStyle","animatedDragStyle","draggedId","value","receiverId","phase","isMe","amReceiving","isDragging","mergeStyles","s","flatten","styles","result","base","specials","reset","baseMap","Object","entries","reduce","acc","k","v","key"],"sourceRoot":"../../../src","sources":["hooks/useViewStyles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,SAASC,gBAAgB,QAAQ,yBAAyB;AAG1D,SAASC,cAAc,QAAQ,qBAAkB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAACC,EAAU,EAAEC,UAA8B,KAAK;EAC3E,MAAM;IAAEC,WAAW;IAAEC,YAAY;IAAEC;EAAY,CAAC,GAAGN,cAAc,CAAC,CAAC;EAEnE,MAAM;IACJO,KAAK;IACLC,iBAAiB;IACjBC,aAAa;IACbC,yBAAyB;IACzBC,4BAA4B;IAC5BC,iBAAiB;IACjBC,qBAAqB;IACrBC,cAAc;IACdC,kBAAkB;IAClBC,8BAA8B;IAC9BC;EACF,CAAC,GAAGd,UAAU;;EAEd;EACA,MAAMe,iBAAiB,GAAGC,aAAa,CAACV,aAAa,CAAC;EACtD,MAAMW,6BAA6B,GAAGD,aAAa,CAACT,yBAAyB,CAAC;EAC9E,MAAMW,gCAAgC,GAAGF,aAAa,CAACR,4BAA4B,CAAC;EACpF,MAAMW,qBAAqB,GAAGH,aAAa,CAACP,iBAAiB,CAAC;EAC9D,MAAMW,qBAAqB,GAAGJ,aAAa,CAACX,iBAAiB,CAAC;EAC9D,MAAMgB,yBAAyB,GAAGL,aAAa,CAACN,qBAAqB,CAAC;EACtE,MAAMY,kBAAkB,GAAGN,aAAa,CAACL,cAAc,CAAC;EACxD,MAAMY,sBAAsB,GAAGP,aAAa,CAACJ,kBAAkB,CAAC;EAChE,MAAMY,kCAAkC,GAAGR,aAAa,CAACH,8BAA8B,CAAC;EACxF,MAAMY,qCAAqC,GAAGT,aAAa,CAACF,iCAAiC,CAAC;;EAE9F;EACA;EACA;EACA;EACA,MAAMY,aAAa,GAAGV,aAAa,CAACZ,KAAK,CAAC;EAC1C,MAAMuB,UAAU,GAAGC,iBAAiB,CAClCF,aAAa,EACbX,iBAAiB,EACjBE,6BAA6B,EAC7BC,gCAAgC,EAChCC,qBAAqB,EACrBC,qBAAqB,EACrBC,yBAAyB,EACzBC,kBAAkB,EAClBC,sBAAsB,EACtBC,kCAAkC,EAClCC,qCACF,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMI,iBAAiB,GAAGjC,gBAAgB,CAAC,MAAM;IAC/C,MAAMkC,SAAS,GAAG7B,WAAW,CAAC8B,KAAK;IACnC,MAAMC,UAAU,GAAG9B,YAAY,CAAC6B,KAAK;IACrC,MAAME,KAAK,GAAG9B,WAAW,CAAC4B,KAAK;IAE/B,MAAMG,IAAI,GAAGJ,SAAS,KAAK/B,EAAE;IAC7B,MAAMoC,WAAW,GAAGH,UAAU,KAAKjC,EAAE;IACrC,MAAMqC,UAAU,GAAGH,KAAK,KAAK,MAAM;;IAEnC;IACA,IAAIC,IAAI,IAAID,KAAK,KAAK,UAAU,EAAE;MAChC,OAAOI,WAAW,CAChBV,UAAU,EACVZ,iBAAiB,EACjBoB,WAAW,GACPlB,6BAA6B,GAC7BC,gCACN,CAAC;IACH;;IAEA;IACA,IAAIgB,IAAI,IAAID,KAAK,KAAK,WAAW,EAAE;MACjC,OAAOI,WAAW,CAACV,UAAU,EAAER,qBAAqB,IAAIJ,iBAAiB,CAAC;IAC5E;;IAEA;IACA,IAAIoB,WAAW,IAAIC,UAAU,EAAE;MAC7B,OAAOC,WAAW,CAACV,UAAU,EAAEL,kBAAkB,CAAC;IACpD;;IAEA;IACA,IAAIc,UAAU,IAAI,CAACF,IAAI,EAAE;MACvB,OAAOG,WAAW,CAChBV,UAAU,EACVP,qBAAqB,EACrBG,sBAAsB,EACtBY,WAAW,GACPX,kCAAkC,GAClCC,qCACN,CAAC;IACH;;IAEA;IACA,OAAOY,WAAW,CAACV,UAAU,EAAEP,qBAAqB,EAAEC,yBAAyB,CAAC;EAClF,CAAC,CAAC;EAEF,OAAO;IACLjB,KAAK;IACLyB;EACF,CAAC;AACH,CAAC;;AAED;;AAEA,SAASb,aAAaA,CAACsB,CAA4B,EAAoB;EACrE,IAAI,CAACA,CAAC,EAAE,OAAO,IAAI;EACnB,OAAO3C,UAAU,CAAC4C,OAAO,CAACD,CAAC,CAAC,IAAI,IAAI;AACtC;AAEA,SAASD,WAAWA,CAAC,GAAGG,MAAwC,EAAa;EAC3E,SAAS;;EACT,IAAIC,MAAiB,GAAG,CAAC,CAAC;EAC1B,KAAK,MAAMH,CAAC,IAAIE,MAAM,EAAE;IACtB,IAAIF,CAAC,EAAE;MACLG,MAAM,GAAG;QAAE,GAAGA,MAAM;QAAE,GAAGH;MAAE,CAAC;IAC9B;EACF;EACA,OAAOG,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASb,iBAAiBA,CAACc,IAAsB,EAAE,GAAGC,QAA8B,EAAa;EAC/F,MAAMC,KAA8B,GAAG,CAAC,CAAC;EACzC,MAAMC,OAAO,GAAGH,IAAI,GAAGI,MAAM,CAACC,OAAO,CAACL,IAAI,CAAC,CAACM,MAAM,CAA0B,CAACC,GAAG,EAAE,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK;IAC3FF,GAAG,CAACC,CAAC,CAAC,GAAGC,CAAC;IACV,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;EAEX,KAAK,MAAMX,CAAC,IAAIK,QAAQ,EAAE;IACxB,IAAI,CAACL,CAAC,EAAE;IACR,KAAK,MAAM,CAACc,GAAG,EAAErB,KAAK,CAAC,IAAIe,MAAM,CAACC,OAAO,CAACT,CAAC,CAAC,EAAE;MAC5C,IAAIc,GAAG,IAAIR,KAAK,EAAE;MAClB,IAAIQ,GAAG,IAAIP,OAAO,EAAE;QAClB;QACAD,KAAK,CAACQ,GAAG,CAAC,GAAGP,OAAO,CAACO,GAAG,CAAC;MAC3B,CAAC,MAAM,IAAI,OAAOrB,KAAK,KAAK,QAAQ,EAAE;QACpC;QACAa,KAAK,CAACQ,GAAG,CAAC,GAAGA,GAAG,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC;MACxC,CAAC,MAAM,IAAI,OAAOrB,KAAK,KAAK,QAAQ,EAAE;QACpCa,KAAK,CAACQ,GAAG,CAAC,GAAG,aAAa;MAC5B;MACA;IACF;EACF;EACA,OAAOR,KAAK;AACd","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
import { Platform } from 'react-native';
|
|
5
|
+
|
|
6
|
+
/** Minimal structural type for a DOM node with style.overflow (no DOM lib needed). */
|
|
7
|
+
|
|
8
|
+
/** Structural type for list refs that expose getScrollableNode() on web. */
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* On mobile web, RNGH sets touch-action:none on gesture views which blocks
|
|
12
|
+
* native scroll. We set touch-action:pan-y (via gesture config) to allow
|
|
13
|
+
* scroll before long-press. When drag activates, this hook freezes the
|
|
14
|
+
* scroll container (overflow:hidden) so scroll stops. On drag end, unfreeze.
|
|
15
|
+
*
|
|
16
|
+
* On native, this is a no-op.
|
|
17
|
+
*/
|
|
18
|
+
export function useWebScrollFreeze(scrollRef) {
|
|
19
|
+
const frozenRef = useRef(false);
|
|
20
|
+
const savedOverflowRef = useRef('');
|
|
21
|
+
const getScrollNode = () => {
|
|
22
|
+
if (Platform.OS !== 'web') return null;
|
|
23
|
+
// Narrow cast: web scroll methods aren't in RN type defs but exist at runtime
|
|
24
|
+
const list = scrollRef.current;
|
|
25
|
+
if (!list) return null;
|
|
26
|
+
// FlatList.getScrollableNode() returns the underlying DOM scroll element.
|
|
27
|
+
// Some list components (FlashList) expose it on _listRef instead.
|
|
28
|
+
return list.getScrollableNode?.() ?? list._listRef?.getScrollableNode?.() ?? null;
|
|
29
|
+
};
|
|
30
|
+
const freeze = () => {
|
|
31
|
+
if (frozenRef.current) return;
|
|
32
|
+
const node = getScrollNode();
|
|
33
|
+
if (node?.style) {
|
|
34
|
+
savedOverflowRef.current = node.style.overflow;
|
|
35
|
+
node.style.overflow = 'hidden';
|
|
36
|
+
frozenRef.current = true;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const unfreeze = () => {
|
|
40
|
+
if (!frozenRef.current) return;
|
|
41
|
+
const node = getScrollNode();
|
|
42
|
+
if (node?.style) {
|
|
43
|
+
node.style.overflow = savedOverflowRef.current || 'auto';
|
|
44
|
+
frozenRef.current = false;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
freeze,
|
|
49
|
+
unfreeze
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=useWebScrollFreeze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","Platform","useWebScrollFreeze","scrollRef","frozenRef","savedOverflowRef","getScrollNode","OS","list","current","getScrollableNode","_listRef","freeze","node","style","overflow","unfreeze"],"sourceRoot":"../../../src","sources":["hooks/useWebScrollFreeze.ts"],"mappings":";;AACA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;;AAEvC;;AAKA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,SAAmC,EAAE;EACtE,MAAMC,SAAS,GAAGJ,MAAM,CAAC,KAAK,CAAC;EAC/B,MAAMK,gBAAgB,GAAGL,MAAM,CAAC,EAAE,CAAC;EAEnC,MAAMM,aAAa,GAAGA,CAAA,KAA4B;IAChD,IAAIL,QAAQ,CAACM,EAAE,KAAK,KAAK,EAAE,OAAO,IAAI;IACtC;IACA,MAAMC,IAAI,GAAGL,SAAS,CAACM,OAAmC;IAC1D,IAAI,CAACD,IAAI,EAAE,OAAO,IAAI;IACtB;IACA;IACA,OACEA,IAAI,CAACE,iBAAiB,GAAG,CAAC,IAAIF,IAAI,CAACG,QAAQ,EAAED,iBAAiB,GAAG,CAAC,IAAI,IAAI;EAE9E,CAAC;EAED,MAAME,MAAM,GAAGA,CAAA,KAAM;IACnB,IAAIR,SAAS,CAACK,OAAO,EAAE;IACvB,MAAMI,IAAI,GAAGP,aAAa,CAAC,CAAC;IAC5B,IAAIO,IAAI,EAAEC,KAAK,EAAE;MACfT,gBAAgB,CAACI,OAAO,GAAGI,IAAI,CAACC,KAAK,CAACC,QAAQ;MAC9CF,IAAI,CAACC,KAAK,CAACC,QAAQ,GAAG,QAAQ;MAC9BX,SAAS,CAACK,OAAO,GAAG,IAAI;IAC1B;EACF,CAAC;EAED,MAAMO,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAI,CAACZ,SAAS,CAACK,OAAO,EAAE;IACxB,MAAMI,IAAI,GAAGP,aAAa,CAAC,CAAC;IAC5B,IAAIO,IAAI,EAAEC,KAAK,EAAE;MACfD,IAAI,CAACC,KAAK,CAACC,QAAQ,GAAGV,gBAAgB,CAACI,OAAO,IAAI,MAAM;MACxDL,SAAS,CAACK,OAAO,GAAG,KAAK;IAC3B;EACF,CAAC;EAED,OAAO;IAAEG,MAAM;IAAEI;EAAS,CAAC;AAC7B","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ── Namespace ────────────────────────────────────────────────────────
|
|
4
|
+
export { Drax } from "./Drax.js";
|
|
5
|
+
|
|
6
|
+
// ── Public Components ────────────────────────────────────────────────
|
|
7
|
+
export { DraxHandle } from "./DraxHandle.js";
|
|
8
|
+
export { DraxList } from "./DraxList.js";
|
|
9
|
+
export { DraxProvider } from "./DraxProvider.js";
|
|
10
|
+
export { DraxScrollView } from "./DraxScrollView.js";
|
|
11
|
+
export { DraxView } from "./DraxView.js";
|
|
12
|
+
|
|
13
|
+
// Sortable (list-agnostic)
|
|
14
|
+
export { SortableContainer } from "./SortableContainer.js";
|
|
15
|
+
export { SortableItem } from "./SortableItem.js";
|
|
16
|
+
|
|
17
|
+
// Cross-container sortable (board)
|
|
18
|
+
export { SortableBoardContainer } from "./SortableBoardContainer.js";
|
|
19
|
+
// ── Public Hooks ─────────────────────────────────────────────────────
|
|
20
|
+
export { useDraxContext } from "./hooks/useDraxContext.js";
|
|
21
|
+
export { useDraxId } from "./hooks/useDraxId.js";
|
|
22
|
+
export { useDraxMethods } from "./hooks/useDraxMethods.js";
|
|
23
|
+
export { useItemContext } from "./SortableItemContext.js";
|
|
24
|
+
export { useSortableList } from "./hooks/useSortableList.js";
|
|
25
|
+
export { useSortableBoard } from "./hooks/useSortableBoard.js";
|
|
26
|
+
|
|
27
|
+
// ── Public Utilities ─────────────────────────────────────────────────
|
|
28
|
+
export { snapToAlignment, packGrid } from "./math.js";
|
|
29
|
+
|
|
30
|
+
// ── Public Types ─────────────────────────────────────────────────────
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
// Enums
|
|
34
|
+
DraxViewDragStatus, DraxViewReceiveStatus, DraxSnapbackTargetPreset, AutoScrollDirection,
|
|
35
|
+
// Type guards
|
|
36
|
+
isPosition } from "./types.js";
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Drax","DraxHandle","DraxList","DraxProvider","DraxScrollView","DraxView","SortableContainer","SortableItem","SortableBoardContainer","useDraxContext","useDraxId","useDraxMethods","useItemContext","useSortableList","useSortableBoard","snapToAlignment","packGrid","DraxViewDragStatus","DraxViewReceiveStatus","DraxSnapbackTargetPreset","AutoScrollDirection","isPosition"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,IAAI,QAAQ,WAAQ;;AAE7B;AACA,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;;AAErC;AACA,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,YAAY,QAAQ,mBAAgB;;AAE7C;AACA,SAASC,sBAAsB,QAAQ,6BAA0B;AAGjE;AACA,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,cAAc,QAAQ,0BAAuB;AACtD,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,gBAAgB,QAAQ,6BAA0B;;AAE3D;AACA,SAASC,eAAe,EAAEC,QAAQ,QAAQ,WAAQ;;AAGlD;;AAuEA;AACE;AACAC,kBAAkB,EAClBC,qBAAqB,EACrBC,wBAAwB,EACxBC,mBAAmB;AAEnB;AACAC,UAAU,QACL,YAAS","ignoreList":[]}
|