react-native-reorderable-list 0.12.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +0 -1
  2. package/lib/commonjs/components/NestedReorderableList.js +2 -0
  3. package/lib/commonjs/components/NestedReorderableList.js.map +1 -1
  4. package/lib/commonjs/components/ReorderableList.js +4 -3
  5. package/lib/commonjs/components/ReorderableList.js.map +1 -1
  6. package/lib/commonjs/components/ReorderableListCell.js +2 -2
  7. package/lib/commonjs/components/ReorderableListCell.js.map +1 -1
  8. package/lib/commonjs/components/ReorderableListCore/ReorderableListCore.js +3 -3
  9. package/lib/commonjs/components/ReorderableListCore/ReorderableListCore.js.map +1 -1
  10. package/lib/commonjs/components/ReorderableListCore/useReorderableListCore.js +160 -99
  11. package/lib/commonjs/components/ReorderableListCore/useReorderableListCore.js.map +1 -1
  12. package/lib/commonjs/components/ScrollViewContainer.js +14 -3
  13. package/lib/commonjs/components/ScrollViewContainer.js.map +1 -1
  14. package/lib/commonjs/contexts/ScrollViewContainerContext.js.map +1 -1
  15. package/lib/module/components/NestedReorderableList.js +2 -0
  16. package/lib/module/components/NestedReorderableList.js.map +1 -1
  17. package/lib/module/components/ReorderableList.js +4 -3
  18. package/lib/module/components/ReorderableList.js.map +1 -1
  19. package/lib/module/components/ReorderableListCell.js +2 -2
  20. package/lib/module/components/ReorderableListCell.js.map +1 -1
  21. package/lib/module/components/ReorderableListCore/ReorderableListCore.js +3 -3
  22. package/lib/module/components/ReorderableListCore/ReorderableListCore.js.map +1 -1
  23. package/lib/module/components/ReorderableListCore/useReorderableListCore.js +161 -100
  24. package/lib/module/components/ReorderableListCore/useReorderableListCore.js.map +1 -1
  25. package/lib/module/components/ScrollViewContainer.js +16 -5
  26. package/lib/module/components/ScrollViewContainer.js.map +1 -1
  27. package/lib/module/contexts/ScrollViewContainerContext.js.map +1 -1
  28. package/lib/typescript/components/NestedReorderableList.d.ts.map +1 -1
  29. package/lib/typescript/components/ReorderableList.d.ts.map +1 -1
  30. package/lib/typescript/components/ReorderableListCore/ReorderableListCore.d.ts +1 -0
  31. package/lib/typescript/components/ReorderableListCore/ReorderableListCore.d.ts.map +1 -1
  32. package/lib/typescript/components/ReorderableListCore/useReorderableListCore.d.ts +4 -5
  33. package/lib/typescript/components/ReorderableListCore/useReorderableListCore.d.ts.map +1 -1
  34. package/lib/typescript/components/ScrollViewContainer.d.ts.map +1 -1
  35. package/lib/typescript/contexts/ScrollViewContainerContext.d.ts +1 -0
  36. package/lib/typescript/contexts/ScrollViewContainerContext.d.ts.map +1 -1
  37. package/lib/typescript/types/props.d.ts +0 -5
  38. package/lib/typescript/types/props.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/components/NestedReorderableList.tsx +2 -0
  41. package/src/components/ReorderableList.tsx +3 -2
  42. package/src/components/ReorderableListCell.tsx +3 -3
  43. package/src/components/ReorderableListCore/ReorderableListCore.tsx +4 -3
  44. package/src/components/ReorderableListCore/useReorderableListCore.ts +277 -184
  45. package/src/components/ScrollViewContainer.tsx +23 -5
  46. package/src/contexts/ScrollViewContainerContext.ts +1 -0
  47. package/src/types/props.ts +0 -5
@@ -23,19 +23,19 @@ const useReorderableListCore = ({
23
23
  autoscrollDelay,
24
24
  autoscrollActivationDelta,
25
25
  animationDuration,
26
- dragReorderThreshold,
27
26
  onReorder,
28
27
  onDragStart,
29
28
  onDragEnd,
30
29
  onLayout,
31
30
  onIndexChange,
32
31
  scrollViewContainerRef,
32
+ scrollViewPageY,
33
33
  scrollViewHeightY,
34
34
  scrollViewScrollOffsetY,
35
35
  scrollViewScrollEnabled,
36
+ scrollable,
36
37
  initialScrollEnabled,
37
38
  initialScrollViewScrollEnabled,
38
- nestedScrollable,
39
39
  cellAnimations,
40
40
  shouldUpdateActiveItem,
41
41
  panActivateAfterLongPress,
@@ -47,22 +47,25 @@ const useReorderableListCore = ({
47
47
  const gestureState = (0, _reactNativeReanimated.useSharedValue)(_reactNativeGestureHandler.State.UNDETERMINED);
48
48
  const currentY = (0, _reactNativeReanimated.useSharedValue)(0);
49
49
  const currentTranslationY = (0, _reactNativeReanimated.useSharedValue)(0);
50
+ const currentItemDragCenterY = (0, _reactNativeReanimated.useSharedValue)(null);
51
+ const startItemDragCenterY = (0, _reactNativeReanimated.useSharedValue)(0);
50
52
  const flatListScrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
51
53
  const flatListHeightY = (0, _reactNativeReanimated.useSharedValue)(0);
52
- const nestedFlatListPositionY = (0, _reactNativeReanimated.useSharedValue)(0);
54
+ const flatListPageY = (0, _reactNativeReanimated.useSharedValue)(0);
55
+ // The scroll y translation of the list since drag start
53
56
  const dragScrollTranslationY = (0, _reactNativeReanimated.useSharedValue)(0);
57
+ // The initial scroll offset y of the list on drag start
54
58
  const dragInitialScrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
59
+ // The scroll y translation of the ScrollViewContainer since drag start
55
60
  const scrollViewDragScrollTranslationY = (0, _reactNativeReanimated.useSharedValue)(0);
61
+ // The initial scroll offset y of the ScrollViewContainer on drag start
56
62
  const scrollViewDragInitialScrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
57
63
  const draggedHeight = (0, _reactNativeReanimated.useSharedValue)(0);
58
64
  const itemOffset = (0, _reactNativeReanimated.useSharedValue)([]);
59
65
  const itemHeight = (0, _reactNativeReanimated.useSharedValue)([]);
60
66
  const autoscrollTrigger = (0, _reactNativeReanimated.useSharedValue)(-1);
61
67
  const lastAutoscrollTrigger = (0, _reactNativeReanimated.useSharedValue)(-1);
62
- const previousY = (0, _reactNativeReanimated.useSharedValue)(0);
63
68
  const dragY = (0, _reactNativeReanimated.useSharedValue)(0);
64
- const previousDirection = (0, _reactNativeReanimated.useSharedValue)(0);
65
- const previousIndex = (0, _reactNativeReanimated.useSharedValue)(-1);
66
69
  const currentIndex = (0, _reactNativeReanimated.useSharedValue)(-1);
67
70
  const draggedIndex = (0, _reactNativeReanimated.useSharedValue)(-1);
68
71
  const state = (0, _reactNativeReanimated.useSharedValue)(_types.ReorderableListState.IDLE);
@@ -74,6 +77,9 @@ const useReorderableListCore = ({
74
77
  const dragDirection = (0, _reactNativeReanimated.useSharedValue)(0);
75
78
  const lastDragDirectionPivot = (0, _reactNativeReanimated.useSharedValue)(null);
76
79
  const autoscrollDelta = (0, _reactNativeReanimated.useSharedValue)(autoscrollActivationDelta);
80
+
81
+ // Position of the list relative to the scroll container
82
+ const nestedFlatListPositionY = (0, _reactNativeReanimated.useDerivedValue)(() => flatListPageY.value - ((scrollViewPageY === null || scrollViewPageY === void 0 ? void 0 : scrollViewPageY.value) || 0));
77
83
  (0, _react.useEffect)(() => {
78
84
  duration.value = animationDuration;
79
85
  autoscrollDelta.value = autoscrollActivationDelta;
@@ -97,6 +103,8 @@ const useReorderableListCore = ({
97
103
  * Decides the intended drag direction of the user.
98
104
  * This is used to to determine if the user intends to autoscroll
99
105
  * when within the threshold area.
106
+ *
107
+ * @param e - The payload of the pan gesture update event.
100
108
  */
101
109
  const setDragDirection = (0, _react.useCallback)(e => {
102
110
  'worklet';
@@ -111,6 +119,22 @@ const useReorderableListCore = ({
111
119
  }
112
120
  }
113
121
  }, [dragDirection, lastDragDirectionPivot, autoscrollDelta]);
122
+ const setCurrentItemDragCenterY = (0, _react.useCallback)(e => {
123
+ 'worklet';
124
+
125
+ if (currentItemDragCenterY.value === null) {
126
+ if (currentIndex.value >= 0) {
127
+ const itemCenter = itemHeight.value[currentIndex.value] * 0.5;
128
+ // the y coordinate of the item relative to the list
129
+ const itemY = itemOffset.value[currentIndex.value] - (flatListScrollOffsetY.value + scrollViewDragScrollTranslationY.value);
130
+ const value = itemY + itemCenter + e.translationY;
131
+ startItemDragCenterY.value = value;
132
+ currentItemDragCenterY.value = value;
133
+ }
134
+ } else {
135
+ currentItemDragCenterY.value = startItemDragCenterY.value + e.translationY;
136
+ }
137
+ }, [currentItemDragCenterY, currentIndex, startItemDragCenterY, itemOffset, itemHeight, flatListScrollOffsetY, scrollViewDragScrollTranslationY]);
114
138
  const panGestureHandler = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Pan().onBegin(e => {
115
139
  // prevent new dragging until item is completely released
116
140
  if (state.value === _types.ReorderableListState.IDLE) {
@@ -125,12 +149,13 @@ const useReorderableListCore = ({
125
149
  setDragDirection(e);
126
150
  }
127
151
  if (state.value !== _types.ReorderableListState.RELEASED) {
152
+ setCurrentItemDragCenterY(e);
128
153
  currentY.value = startY.value + e.translationY;
129
154
  currentTranslationY.value = e.translationY;
130
155
  dragY.value = e.translationY + dragScrollTranslationY.value + scrollViewDragScrollTranslationY.value;
131
156
  gestureState.value = e.state;
132
157
  }
133
- }).onEnd(e => gestureState.value = e.state).onFinalize(e => gestureState.value = e.state), [state, startY, currentY, currentTranslationY, dragY, gestureState, setDragDirection, dragScrollTranslationY, scrollViewDragScrollTranslationY]);
158
+ }).onEnd(e => gestureState.value = e.state).onFinalize(e => gestureState.value = e.state), [state, startY, currentY, currentTranslationY, dragY, gestureState, dragScrollTranslationY, scrollViewDragScrollTranslationY, setDragDirection, setCurrentItemDragCenterY]);
134
159
  const panGestureHandlerWithOptions = (0, _react.useMemo)(() => {
135
160
  if (typeof panActivateAfterLongPress === 'number') {
136
161
  panGestureHandler.activateAfterLongPress(panActivateAfterLongPress);
@@ -168,7 +193,8 @@ const useReorderableListCore = ({
168
193
  scrollViewDragScrollTranslationY.value = 0;
169
194
  dragDirection.value = 0;
170
195
  lastDragDirectionPivot.value = null;
171
- }, [state, draggedIndex, dragY, dragScrollTranslationY, scrollViewDragScrollTranslationY, dragDirection, lastDragDirectionPivot]);
196
+ currentItemDragCenterY.value = null;
197
+ }, [state, draggedIndex, dragY, dragScrollTranslationY, scrollViewDragScrollTranslationY, dragDirection, lastDragDirectionPivot, currentItemDragCenterY]);
172
198
  const resetSharedValuesAfterAnimations = (0, _react.useCallback)(() => {
173
199
  setTimeout((0, _reactNativeReanimated.runOnUI)(resetSharedValues), duration.value);
174
200
  }, [resetSharedValues, duration]);
@@ -188,67 +214,72 @@ const useReorderableListCore = ({
188
214
  }
189
215
  }
190
216
  };
191
- const getIndexFromY = (0, _react.useCallback)(y => {
217
+ const recomputeLayout = (0, _react.useCallback)((from, to) => {
192
218
  'worklet';
193
219
 
194
- const relativeY = flatListScrollOffsetY.value + y;
195
- const count = itemOffset.value.length;
196
- for (let i = 0; i < count; i++) {
197
- if (currentIndex.value === i) {
198
- continue;
199
- }
200
- const direction = i > currentIndex.value ? 1 : -1;
201
- const threshold = Math.max(0, Math.min(1, dragReorderThreshold));
202
- const height = itemHeight.value[i];
203
- const offset = itemOffset.value[i] + height * threshold * direction;
204
- if (i === 0 && relativeY <= offset || i === count - 1 && relativeY >= offset + height || relativeY >= offset && relativeY <= offset + height) {
205
- return {
206
- index: i,
207
- direction
208
- };
220
+ const itemDirection = to > from;
221
+ const index1 = itemDirection ? from : to;
222
+ const index2 = itemDirection ? to : from;
223
+ const newOffset1 = itemOffset.value[index1];
224
+ const newHeight1 = itemHeight.value[index2];
225
+ const newOffset2 = itemOffset.value[index2] + itemHeight.value[index2] - itemHeight.value[index1];
226
+ const newHeight2 = itemHeight.value[index1];
227
+ itemOffset.value[index1] = newOffset1;
228
+ itemHeight.value[index1] = newHeight1;
229
+ itemOffset.value[index2] = newOffset2;
230
+ itemHeight.value[index2] = newHeight2;
231
+ }, [itemOffset, itemHeight]);
232
+
233
+ /**
234
+ * Computes a potential new drop container for the current dragged item and evaluates
235
+ * whether the dragged item center is nearer to the center of the current container or the new one.
236
+ *
237
+ * @returns The new index if the center of the dragged item is closer to the center of
238
+ * the new drop container or the current index if closer to the current drop container.
239
+ */
240
+ const computeCurrentIndex = (0, _react.useCallback)(() => {
241
+ 'worklet';
242
+
243
+ if (currentItemDragCenterY.value === null) {
244
+ return currentIndex.value;
245
+ }
246
+
247
+ // apply scroll offset and scroll container translation
248
+ const relativeDragCenterY = flatListScrollOffsetY.value + scrollViewDragScrollTranslationY.value + currentItemDragCenterY.value;
249
+ const currentOffset = itemOffset.value[currentIndex.value];
250
+ const currentHeight = itemHeight.value[currentIndex.value];
251
+ const currentCenter = currentOffset + currentHeight * 0.5;
252
+ const max = itemOffset.value.length;
253
+ const possibleIndex = relativeDragCenterY < currentCenter ? Math.max(0, currentIndex.value - 1) : Math.min(max - 1, currentIndex.value + 1);
254
+ if (currentIndex.value !== possibleIndex) {
255
+ let possibleOffset = itemOffset.value[possibleIndex];
256
+ if (possibleIndex > currentIndex.value) {
257
+ possibleOffset += itemHeight.value[possibleIndex] - currentHeight;
209
258
  }
259
+ const possibleCenter = possibleOffset + currentHeight * 0.5;
260
+ const distanceFromCurrent = Math.abs(relativeDragCenterY - currentCenter);
261
+ const distanceFromPossible = Math.abs(relativeDragCenterY - possibleCenter);
262
+ return distanceFromCurrent <= distanceFromPossible ? currentIndex.value : possibleIndex;
210
263
  }
211
- return {
212
- index: currentIndex.value,
213
- direction: previousDirection.value
214
- };
215
- }, [dragReorderThreshold, currentIndex, flatListScrollOffsetY, previousDirection, itemOffset, itemHeight]);
216
- const setCurrentIndex = (0, _react.useCallback)(y => {
264
+ return currentIndex.value;
265
+ }, [currentIndex, currentItemDragCenterY, itemOffset, itemHeight, flatListScrollOffsetY, scrollViewDragScrollTranslationY]);
266
+ const setCurrentIndex = (0, _react.useCallback)(() => {
217
267
  'worklet';
218
268
 
219
- const {
220
- index: newIndex,
221
- direction: newDirection
222
- } = getIndexFromY(y);
223
- const delta = Math.abs(previousY.value - y);
224
- if (currentIndex.value !== newIndex && (
225
- // if the same two items re-swap index check delta and direction to avoid swap flickering
226
- previousIndex.value !== newIndex || previousDirection.value !== newDirection && delta >= 5)) {
227
- const itemDirection = newIndex > currentIndex.value;
228
- const index1 = itemDirection ? currentIndex.value : newIndex;
229
- const index2 = itemDirection ? newIndex : currentIndex.value;
230
- const newOffset1 = itemOffset.value[index1];
231
- const newHeight1 = itemHeight.value[index2];
232
- const newOffset2 = itemOffset.value[index2] + (itemHeight.value[index2] - itemHeight.value[index1]);
233
- const newHeight2 = itemHeight.value[index1];
234
- itemOffset.value[index1] = newOffset1;
235
- itemHeight.value[index1] = newHeight1;
236
- itemOffset.value[index2] = newOffset2;
237
- itemHeight.value[index2] = newHeight2;
238
- previousY.value = y;
239
- previousDirection.value = newDirection;
240
- previousIndex.value = currentIndex.value;
269
+ const newIndex = computeCurrentIndex();
270
+ if (currentIndex.value !== newIndex) {
271
+ recomputeLayout(currentIndex.value, newIndex);
241
272
  currentIndex.value = newIndex;
242
273
  onIndexChange === null || onIndexChange === void 0 || onIndexChange({
243
274
  index: newIndex
244
275
  });
245
276
  }
246
- }, [currentIndex, previousIndex, previousDirection, previousY, itemOffset, itemHeight, getIndexFromY, onIndexChange]);
277
+ }, [currentIndex, computeCurrentIndex, recomputeLayout, onIndexChange]);
247
278
  const runDefaultDragAnimations = (0, _react.useCallback)(type => {
248
279
  'worklet';
249
280
 
250
281
  // if no custom scale run default
251
- if (!(cellAnimations && 'transformtra' in cellAnimations)) {
282
+ if (!(cellAnimations && 'transform' in cellAnimations)) {
252
283
  const scaleConfig = _animationDefaults.SCALE_ANIMATION_CONFIG_DEFAULT[type];
253
284
  scaleDefault.value = (0, _reactNativeReanimated.withTiming)(scaleConfig.toValue, scaleConfig);
254
285
  }
@@ -303,7 +334,7 @@ const useReorderableListCore = ({
303
334
  }
304
335
  }
305
336
  });
306
- const calculateHiddenArea = (0, _react.useCallback)(() => {
337
+ const computeHiddenArea = (0, _react.useCallback)(() => {
307
338
  'worklet';
308
339
 
309
340
  if (!scrollViewScrollOffsetY || !scrollViewHeightY) {
@@ -321,9 +352,10 @@ const useReorderableListCore = ({
321
352
  bottom
322
353
  };
323
354
  }, [scrollViewScrollOffsetY, scrollViewHeightY, nestedFlatListPositionY, flatListHeightY]);
324
- const calculateThresholdArea = (0, _react.useCallback)(hiddenArea => {
355
+ const computeThresholdArea = (0, _react.useCallback)(() => {
325
356
  'worklet';
326
357
 
358
+ const hiddenArea = computeHiddenArea();
327
359
  const offsetTop = Math.max(0, (autoscrollThresholdOffset === null || autoscrollThresholdOffset === void 0 ? void 0 : autoscrollThresholdOffset.top) || 0);
328
360
  const offsetBottom = Math.max(0, (autoscrollThresholdOffset === null || autoscrollThresholdOffset === void 0 ? void 0 : autoscrollThresholdOffset.bottom) || 0);
329
361
  const threshold = Math.max(0, Math.min(autoscrollThreshold, 0.4));
@@ -335,66 +367,81 @@ const useReorderableListCore = ({
335
367
  top,
336
368
  bottom
337
369
  };
338
- }, [autoscrollThreshold, autoscrollThresholdOffset, flatListHeightY]);
339
- const calculateThresholdAreaParent = (0, _react.useCallback)(hiddenArea => {
370
+ }, [computeHiddenArea, autoscrollThreshold, autoscrollThresholdOffset, flatListHeightY]);
371
+ const computeContainerThresholdArea = (0, _react.useCallback)(() => {
340
372
  'worklet';
341
373
 
374
+ if (!scrollViewHeightY) {
375
+ return {
376
+ top: -Infinity,
377
+ bottom: Infinity
378
+ };
379
+ }
342
380
  const offsetTop = Math.max(0, (autoscrollThresholdOffset === null || autoscrollThresholdOffset === void 0 ? void 0 : autoscrollThresholdOffset.top) || 0);
343
381
  const offsetBottom = Math.max(0, (autoscrollThresholdOffset === null || autoscrollThresholdOffset === void 0 ? void 0 : autoscrollThresholdOffset.bottom) || 0);
344
382
  const threshold = Math.max(0, Math.min(autoscrollThreshold, 0.4));
345
- const area = flatListHeightY.value * threshold;
383
+ const visibleHeight = scrollViewHeightY.value - (offsetTop + offsetBottom);
384
+ const area = visibleHeight * threshold;
346
385
  const top = area + offsetTop;
347
- const bottom = flatListHeightY.value - area - offsetBottom;
348
-
349
- // if the hidden area is 0 then we don't have a threshold area
350
- // we might have floating errors like 0.0001 which we should ignore
386
+ const bottom = visibleHeight - area - offsetBottom;
351
387
  return {
352
- top: hiddenArea.top > 0.1 ? top + hiddenArea.top : 0,
353
- bottom: hiddenArea.bottom > 0.1 ? bottom - hiddenArea.bottom : 0
388
+ top,
389
+ bottom
354
390
  };
355
- }, [autoscrollThreshold, autoscrollThresholdOffset, flatListHeightY]);
356
- const shouldScrollParent = (0, _react.useCallback)(y => {
391
+ }, [autoscrollThreshold, autoscrollThresholdOffset, scrollViewHeightY]);
392
+ const shouldScrollContainer = (0, _react.useCallback)(y => {
357
393
  'worklet';
358
394
 
359
- const hiddenArea = calculateHiddenArea();
360
- const thresholdAreaParent = calculateThresholdAreaParent(hiddenArea);
395
+ const containerThresholdArea = computeContainerThresholdArea();
396
+ const nestedListHiddenArea = computeHiddenArea();
361
397
 
362
- // we might have floating errors like 0.0001 which we should ignore
363
- return hiddenArea.top > 0.1 && y <= thresholdAreaParent.top || hiddenArea.bottom > 0.1 && y >= thresholdAreaParent.bottom;
364
- }, [calculateHiddenArea, calculateThresholdAreaParent]);
365
- const scrollDirection = (0, _react.useCallback)(y => {
398
+ // We should scroll the container if there's a hidden part of the nested list.
399
+ // We might have floating errors like 0.0001 which we should ignore.
400
+ return nestedListHiddenArea.top > 0.01 && y <= containerThresholdArea.top || nestedListHiddenArea.bottom > 0.01 && y >= containerThresholdArea.bottom;
401
+ }, [computeHiddenArea, computeContainerThresholdArea]);
402
+ const getRelativeContainerY = (0, _react.useCallback)(() => {
366
403
  'worklet';
367
404
 
368
- const hiddenArea = calculateHiddenArea();
369
- if (shouldScrollParent(y)) {
370
- const thresholdAreaParent = calculateThresholdAreaParent(hiddenArea);
371
- if (y <= thresholdAreaParent.top) {
405
+ return currentY.value + nestedFlatListPositionY.value - scrollViewDragInitialScrollOffsetY.value;
406
+ }, [currentY, nestedFlatListPositionY, scrollViewDragInitialScrollOffsetY]);
407
+ const getRelativeListY = (0, _react.useCallback)(() => {
408
+ 'worklet';
409
+
410
+ return currentY.value + scrollViewDragScrollTranslationY.value;
411
+ }, [currentY, scrollViewDragScrollTranslationY]);
412
+ const scrollDirection = (0, _react.useCallback)(() => {
413
+ 'worklet';
414
+
415
+ const relativeContainerY = getRelativeContainerY();
416
+ if (shouldScrollContainer(relativeContainerY)) {
417
+ const containerThresholdArea = computeContainerThresholdArea();
418
+ if (relativeContainerY <= containerThresholdArea.top) {
372
419
  return -1;
373
420
  }
374
- if (y >= thresholdAreaParent.bottom) {
421
+ if (relativeContainerY >= containerThresholdArea.bottom) {
375
422
  return 1;
376
423
  }
377
- return 0;
378
- } else if (nestedScrollable) {
379
- const thresholdArea = calculateThresholdArea(hiddenArea);
380
- if (y <= thresholdArea.top) {
424
+ } else if (scrollable) {
425
+ const relativeListY = getRelativeListY();
426
+ const thresholdArea = computeThresholdArea();
427
+ if (relativeListY <= thresholdArea.top) {
381
428
  return -1;
382
429
  }
383
- if (y >= thresholdArea.bottom) {
430
+ if (relativeListY >= thresholdArea.bottom) {
384
431
  return 1;
385
432
  }
386
433
  }
387
434
  return 0;
388
- }, [nestedScrollable, shouldScrollParent, calculateHiddenArea, calculateThresholdArea, calculateThresholdAreaParent]);
389
- (0, _reactNativeReanimated.useAnimatedReaction)(() => currentY.value + scrollViewDragScrollTranslationY.value, y => {
435
+ }, [shouldScrollContainer, computeThresholdArea, computeContainerThresholdArea, getRelativeContainerY, getRelativeListY, scrollable]);
436
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => currentY.value, () => {
390
437
  if (state.value === _types.ReorderableListState.DRAGGED || state.value === _types.ReorderableListState.AUTOSCROLL) {
391
- setCurrentIndex(y);
438
+ setCurrentIndex();
392
439
 
393
440
  // Trigger autoscroll when:
394
441
  // 1. Within the threshold area (top or bottom of list)
395
442
  // 2. Have dragged in the same direction as the scroll
396
443
  // 3. Not already in autoscroll mode
397
- if (dragDirection.value === scrollDirection(y)) {
444
+ if (dragDirection.value === scrollDirection()) {
398
445
  // When the first two conditions are met and it's already in autoscroll mode, we let it continue (no-op)
399
446
  if (state.value !== _types.ReorderableListState.AUTOSCROLL) {
400
447
  state.value = _types.ReorderableListState.AUTOSCROLL;
@@ -408,12 +455,15 @@ const useReorderableListCore = ({
408
455
  });
409
456
  (0, _reactNativeReanimated.useAnimatedReaction)(() => autoscrollTrigger.value, () => {
410
457
  if (autoscrollTrigger.value !== lastAutoscrollTrigger.value && state.value === _types.ReorderableListState.AUTOSCROLL) {
411
- let y = currentY.value + scrollViewDragScrollTranslationY.value;
412
- const autoscrollIncrement = scrollDirection(y) * _autoscrollConfig.AUTOSCROLL_CONFIG.increment * autoscrollSpeedScale;
458
+ const autoscrollIncrement = dragDirection.value * _autoscrollConfig.AUTOSCROLL_CONFIG.increment * autoscrollSpeedScale;
413
459
  if (autoscrollIncrement !== 0) {
414
460
  let scrollOffset = flatListScrollOffsetY.value;
415
461
  let listRef = flatListRef;
416
- if (shouldScrollParent(y) && scrollViewScrollOffsetY) {
462
+
463
+ // Checking on every autoscroll whether to scroll the container,
464
+ // this allows to smoothly pass the scroll from the container to the nested list
465
+ // without any gesture input.
466
+ if (scrollViewScrollOffsetY && shouldScrollContainer(getRelativeContainerY())) {
417
467
  scrollOffset = scrollViewScrollOffsetY.value;
418
468
  listRef = scrollViewContainerRef;
419
469
  }
@@ -422,7 +472,7 @@ const useReorderableListCore = ({
422
472
 
423
473
  // when autoscrolling user may not be moving his finger so we need
424
474
  // to update the current position of the dragged item here
425
- setCurrentIndex(y);
475
+ setCurrentIndex();
426
476
  }
427
477
  });
428
478
 
@@ -445,12 +495,11 @@ const useReorderableListCore = ({
445
495
  }
446
496
  });
447
497
 
448
- // parent scroll handler
498
+ // container scroll handler
449
499
  (0, _reactNativeReanimated.useAnimatedReaction)(() => scrollViewScrollOffsetY === null || scrollViewScrollOffsetY === void 0 ? void 0 : scrollViewScrollOffsetY.value, value => {
450
500
  if (value && scrollViewScrollEnabled) {
451
501
  // checking if the list is not scrollable instead of the scrolling state
452
- // fixes a bug on iOS where the item is shifted after autoscrolling and then
453
- // moving await from autoscroll area
502
+ // fixes a bug on iOS where the item is shifted after autoscrolling and moving away from the area
454
503
  if (!scrollViewScrollEnabled.value) {
455
504
  scrollViewDragScrollTranslationY.value = value - scrollViewDragInitialScrollOffsetY.value;
456
505
  }
@@ -475,10 +524,9 @@ const useReorderableListCore = ({
475
524
  (0, _reactNativeReanimated.runOnJS)(setActiveIndex)(index);
476
525
  }
477
526
  dragInitialScrollOffsetY.value = flatListScrollOffsetY.value;
478
- scrollViewDragInitialScrollOffsetY.value = scrollViewScrollOffsetY ? scrollViewScrollOffsetY.value : 0;
527
+ scrollViewDragInitialScrollOffsetY.value = (scrollViewScrollOffsetY === null || scrollViewScrollOffsetY === void 0 ? void 0 : scrollViewScrollOffsetY.value) || 0;
479
528
  draggedHeight.value = itemHeight.value[index];
480
529
  draggedIndex.value = index;
481
- previousIndex.value = -1;
482
530
  currentIndex.value = index;
483
531
  state.value = _types.ReorderableListState.DRAGGED;
484
532
  (0, _reactNativeReanimated.runOnJS)(setScrollEnabled)(false);
@@ -489,12 +537,25 @@ const useReorderableListCore = ({
489
537
  index
490
538
  });
491
539
  }
492
- }, [resetSharedValues, shouldUpdateActiveItem, dragInitialScrollOffsetY, scrollViewScrollOffsetY, scrollViewDragInitialScrollOffsetY, setScrollEnabled, currentIndex, previousIndex, draggedHeight, draggedIndex, state, flatListScrollOffsetY, itemHeight, onDragStart, runDefaultDragAnimations]);
540
+ }, [resetSharedValues, shouldUpdateActiveItem, dragInitialScrollOffsetY, scrollViewScrollOffsetY, scrollViewDragInitialScrollOffsetY, setScrollEnabled, currentIndex, draggedHeight, draggedIndex, state, flatListScrollOffsetY, itemHeight, onDragStart, runDefaultDragAnimations]);
493
541
  const handleFlatListLayout = (0, _react.useCallback)(e => {
494
- nestedFlatListPositionY.value = e.nativeEvent.layout.y;
495
542
  flatListHeightY.value = e.nativeEvent.layout.height;
543
+
544
+ // If nested in a scroll container.
545
+ if (scrollViewScrollOffsetY) {
546
+ // Timeout fixes a bug where measure returns height 0.
547
+ setTimeout(() => {
548
+ (0, _reactNativeReanimated.runOnUI)(() => {
549
+ const measurement = (0, _reactNativeReanimated.measure)(flatListRef);
550
+ if (!measurement) {
551
+ return;
552
+ }
553
+ flatListPageY.value = measurement.pageY;
554
+ })();
555
+ }, 100);
556
+ }
496
557
  onLayout === null || onLayout === void 0 || onLayout(e);
497
- }, [nestedFlatListPositionY, flatListHeightY, onLayout]);
558
+ }, [flatListRef, flatListPageY, flatListHeightY, scrollViewScrollOffsetY, onLayout]);
498
559
  const handleRef = value => {
499
560
  flatListRef(value);
500
561
  if (typeof ref === 'function') {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_animationDefaults","_autoscrollConfig","_types","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","version","React","split","hasAutomaticBatching","length","parseInt","useReorderableListCore","ref","autoscrollThreshold","autoscrollThresholdOffset","autoscrollSpeedScale","autoscrollDelay","autoscrollActivationDelta","animationDuration","dragReorderThreshold","onReorder","onDragStart","onDragEnd","onLayout","onIndexChange","scrollViewContainerRef","scrollViewHeightY","scrollViewScrollOffsetY","scrollViewScrollEnabled","initialScrollEnabled","initialScrollViewScrollEnabled","nestedScrollable","cellAnimations","shouldUpdateActiveItem","panActivateAfterLongPress","panEnabled","flatListRef","useAnimatedRef","activeIndex","setActiveIndex","useState","scrollEnabled","useSharedValue","gestureState","State","UNDETERMINED","currentY","currentTranslationY","flatListScrollOffsetY","flatListHeightY","nestedFlatListPositionY","dragScrollTranslationY","dragInitialScrollOffsetY","scrollViewDragScrollTranslationY","scrollViewDragInitialScrollOffsetY","draggedHeight","itemOffset","itemHeight","autoscrollTrigger","lastAutoscrollTrigger","previousY","dragY","previousDirection","previousIndex","currentIndex","draggedIndex","state","ReorderableListState","IDLE","dragEndHandlers","startY","duration","scaleDefault","opacityDefault","dragDirection","lastDragDirectionPivot","autoscrollDelta","useEffect","value","listContextValue","useMemo","transform","scale","opacity","setDragDirection","useCallback","direction","velocityY","absoluteY","Math","abs","panGestureHandler","Gesture","Pan","onBegin","y","translationY","onUpdate","DRAGGED","RELEASED","onEnd","onFinalize","panGestureHandlerWithOptions","activateAfterLongPress","enabled","gestureHandler","Simultaneous","Native","setScrollEnabled","_flatListRef$current","current","setNativeProps","_scrollViewContainerR","resetSharedValues","resetSharedValuesAfterAnimations","setTimeout","runOnUI","reorder","fromIndex","toIndex","updateState","from","to","unstable_batchedUpdates","getIndexFromY","relativeY","count","threshold","max","min","height","offset","index","setCurrentIndex","newIndex","newDirection","delta","itemDirection","index1","index2","newOffset1","newHeight1","newOffset2","newHeight2","runDefaultDragAnimations","type","scaleConfig","SCALE_ANIMATION_CONFIG_DEFAULT","withTiming","toValue","opacityConfig","OPACITY_ANIMATION_CONFIG_DEFAULT","useAnimatedReaction","ACTIVE","BEGAN","AUTOSCROLL","runOnJS","handlers","Array","isArray","forEach","fn","currentItemOffset","currentItemHeight","draggedItemOffset","draggedItemHeight","newTopPosition","easing","Easing","out","ease","calculateHiddenArea","top","bottom","calculateThresholdArea","hiddenArea","offsetTop","offsetBottom","visibleHeight","area","calculateThresholdAreaParent","shouldScrollParent","thresholdAreaParent","scrollDirection","thresholdArea","autoscrollIncrement","AUTOSCROLL_CONFIG","increment","scrollOffset","listRef","scrollTo","handleScroll","useAnimatedScrollHandler","contentOffset","withDelay","startDrag","handleFlatListLayout","nativeEvent","layout","handleRef","exports"],"sourceRoot":"../../../../src","sources":["components/ReorderableListCore/useReorderableListCore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_animationDefaults","_autoscrollConfig","_types","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","version","React","split","hasAutomaticBatching","length","parseInt","useReorderableListCore","ref","autoscrollThreshold","autoscrollThresholdOffset","autoscrollSpeedScale","autoscrollDelay","autoscrollActivationDelta","animationDuration","onReorder","onDragStart","onDragEnd","onLayout","onIndexChange","scrollViewContainerRef","scrollViewPageY","scrollViewHeightY","scrollViewScrollOffsetY","scrollViewScrollEnabled","scrollable","initialScrollEnabled","initialScrollViewScrollEnabled","cellAnimations","shouldUpdateActiveItem","panActivateAfterLongPress","panEnabled","flatListRef","useAnimatedRef","activeIndex","setActiveIndex","useState","scrollEnabled","useSharedValue","gestureState","State","UNDETERMINED","currentY","currentTranslationY","currentItemDragCenterY","startItemDragCenterY","flatListScrollOffsetY","flatListHeightY","flatListPageY","dragScrollTranslationY","dragInitialScrollOffsetY","scrollViewDragScrollTranslationY","scrollViewDragInitialScrollOffsetY","draggedHeight","itemOffset","itemHeight","autoscrollTrigger","lastAutoscrollTrigger","dragY","currentIndex","draggedIndex","state","ReorderableListState","IDLE","dragEndHandlers","startY","duration","scaleDefault","opacityDefault","dragDirection","lastDragDirectionPivot","autoscrollDelta","nestedFlatListPositionY","useDerivedValue","value","useEffect","listContextValue","useMemo","transform","scale","opacity","setDragDirection","useCallback","direction","velocityY","absoluteY","Math","abs","setCurrentItemDragCenterY","itemCenter","itemY","translationY","panGestureHandler","Gesture","Pan","onBegin","y","onUpdate","DRAGGED","RELEASED","onEnd","onFinalize","panGestureHandlerWithOptions","activateAfterLongPress","enabled","gestureHandler","Simultaneous","Native","setScrollEnabled","_flatListRef$current","current","setNativeProps","_scrollViewContainerR","resetSharedValues","resetSharedValuesAfterAnimations","setTimeout","runOnUI","reorder","fromIndex","toIndex","updateState","from","to","unstable_batchedUpdates","recomputeLayout","itemDirection","index1","index2","newOffset1","newHeight1","newOffset2","newHeight2","computeCurrentIndex","relativeDragCenterY","currentOffset","currentHeight","currentCenter","max","possibleIndex","min","possibleOffset","possibleCenter","distanceFromCurrent","distanceFromPossible","setCurrentIndex","newIndex","index","runDefaultDragAnimations","type","scaleConfig","SCALE_ANIMATION_CONFIG_DEFAULT","withTiming","toValue","opacityConfig","OPACITY_ANIMATION_CONFIG_DEFAULT","useAnimatedReaction","ACTIVE","BEGAN","AUTOSCROLL","runOnJS","handlers","Array","isArray","forEach","fn","currentItemOffset","currentItemHeight","draggedItemOffset","draggedItemHeight","newTopPosition","easing","Easing","out","ease","computeHiddenArea","top","bottom","computeThresholdArea","hiddenArea","offsetTop","offsetBottom","threshold","visibleHeight","area","computeContainerThresholdArea","Infinity","shouldScrollContainer","containerThresholdArea","nestedListHiddenArea","getRelativeContainerY","getRelativeListY","scrollDirection","relativeContainerY","relativeListY","thresholdArea","autoscrollIncrement","AUTOSCROLL_CONFIG","increment","scrollOffset","listRef","scrollTo","handleScroll","useAnimatedScrollHandler","contentOffset","withDelay","startDrag","handleFlatListLayout","nativeEvent","layout","height","measurement","measure","pageY","handleRef","exports"],"sourceRoot":"../../../../src","sources":["components/ReorderableListCore/useReorderableListCore.ts"],"mappings":"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","ignoreList":[]}
@@ -20,6 +20,7 @@ const ScrollViewContainer = ({
20
20
  const scrollViewScrollEnabled = (0, _reactNativeReanimated.useSharedValue)(scrollEnabled);
21
21
  const scrollViewContainerRef = (0, _reactNativeReanimated.useAnimatedRef)();
22
22
  const scrollViewScrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
23
+ const scrollViewPageY = (0, _reactNativeReanimated.useSharedValue)(0);
23
24
  const scrollViewHeightY = (0, _reactNativeReanimated.useSharedValue)(0);
24
25
  const outerScrollGesture = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Native(), []);
25
26
  const handleScroll = (0, _reactNativeReanimated.useAnimatedScrollHandler)(e => {
@@ -28,16 +29,26 @@ const ScrollViewContainer = ({
28
29
  const composedScrollHandler = (0, _reactNativeReanimated.useComposedEventHandler)([handleScroll, onScroll || null]);
29
30
  const contextValue = (0, _react.useMemo)(() => ({
30
31
  scrollViewContainerRef,
32
+ scrollViewPageY,
31
33
  scrollViewHeightY,
32
34
  scrollViewScrollOffsetY,
33
35
  scrollViewScrollEnabled,
34
36
  outerScrollGesture,
35
37
  initialScrollViewScrollEnabled: scrollEnabled
36
- }), [scrollViewContainerRef, scrollViewHeightY, scrollViewScrollOffsetY, scrollViewScrollEnabled, outerScrollGesture, scrollEnabled]);
37
- const handleLayout = e => {
38
+ }), [scrollViewContainerRef, scrollViewPageY, scrollViewHeightY, scrollViewScrollOffsetY, scrollViewScrollEnabled, outerScrollGesture, scrollEnabled]);
39
+ const handleLayout = (0, _react.useCallback)(e => {
38
40
  scrollViewHeightY.value = e.nativeEvent.layout.height;
41
+
42
+ // measuring pageY allows wrapping nested lists in other views
43
+ (0, _reactNativeReanimated.runOnUI)(() => {
44
+ const measurement = (0, _reactNativeReanimated.measure)(scrollViewContainerRef);
45
+ if (!measurement) {
46
+ return;
47
+ }
48
+ scrollViewPageY.value = measurement.pageY;
49
+ })();
39
50
  onLayout === null || onLayout === void 0 || onLayout(e);
40
- };
51
+ }, [onLayout, scrollViewContainerRef, scrollViewHeightY, scrollViewPageY]);
41
52
  return /*#__PURE__*/_react.default.createElement(_ScrollViewContainerContext.ScrollViewContainerContext.Provider, {
42
53
  value: contextValue
43
54
  }, /*#__PURE__*/_react.default.createElement(_reactNativeGestureHandler.GestureDetector, {