react-native-reorderable-list 0.11.0 → 0.13.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/README.md +1 -1
- package/lib/commonjs/components/ReorderableListCell.js +2 -2
- package/lib/commonjs/components/ReorderableListCell.js.map +1 -1
- package/lib/commonjs/components/ReorderableListCore/ReorderableListCore.js +2 -2
- package/lib/commonjs/components/ReorderableListCore/ReorderableListCore.js.map +1 -1
- package/lib/commonjs/components/ReorderableListCore/useReorderableListCore.js +122 -63
- package/lib/commonjs/components/ReorderableListCore/useReorderableListCore.js.map +1 -1
- package/lib/module/components/ReorderableListCell.js +2 -2
- package/lib/module/components/ReorderableListCell.js.map +1 -1
- package/lib/module/components/ReorderableListCore/ReorderableListCore.js +2 -2
- package/lib/module/components/ReorderableListCore/ReorderableListCore.js.map +1 -1
- package/lib/module/components/ReorderableListCore/useReorderableListCore.js +122 -63
- package/lib/module/components/ReorderableListCore/useReorderableListCore.js.map +1 -1
- package/lib/typescript/components/ReorderableListCore/useReorderableListCore.d.ts +2 -2
- package/lib/typescript/components/ReorderableListCore/useReorderableListCore.d.ts.map +1 -1
- package/lib/typescript/types/props.d.ts +4 -3
- package/lib/typescript/types/props.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ReorderableListCell.tsx +3 -3
- package/src/components/ReorderableListCore/ReorderableListCore.tsx +2 -2
- package/src/components/ReorderableListCore/useReorderableListCore.ts +196 -106
- package/src/types/props.ts +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMemo","FlatList","Platform","Gesture","GestureDetector","Animated","useComposedEventHandler","AUTOSCROLL_CONFIG","useReorderableListCore","ReorderableListContext","ReorderableListCell","AnimatedFlatList","createAnimatedComponent","ReorderableListCore","autoscrollThreshold","autoscrollThresholdOffset","autoscrollSpeedScale","autoscrollDelay","delay","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","FlatList","Platform","Gesture","GestureDetector","Animated","useComposedEventHandler","AUTOSCROLL_CONFIG","useReorderableListCore","ReorderableListContext","ReorderableListCell","AnimatedFlatList","createAnimatedComponent","ReorderableListCore","autoscrollThreshold","autoscrollThresholdOffset","autoscrollSpeedScale","autoscrollDelay","delay","autoscrollActivationDelta","animationDuration","onLayout","onReorder","onScroll","onDragStart","onDragEnd","onIndexChange","scrollViewContainerRef","scrollViewHeightY","scrollViewScrollOffsetY","scrollViewScrollEnabled","initialScrollViewScrollEnabled","scrollable","outerScrollGesture","cellAnimations","shouldUpdateActiveItem","panEnabled","panActivateAfterLongPress","rest","ref","gestureHandler","handleScroll","handleFlatListLayout","handleRef","startDrag","listContextValue","itemOffset","itemHeight","dragY","draggedIndex","duration","initialScrollEnabled","scrollEnabled","nestedScrollable","combinedGesture","OS","Simultaneous","composedScrollHandler","renderAnimatedCell","cellKey","props","createElement","_extends","key","index","Provider","value","gesture","CellRendererComponent","scrollEventThrottle","horizontal","removeClippedSubviews","numColumns","MemoizedReorderableListCore","memo","forwardRef"],"sourceRoot":"../../../../src","sources":["components/ReorderableListCore/ReorderableListCore.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,8 +13,8 @@ export const useReorderableListCore = ({
|
|
|
13
13
|
autoscrollThresholdOffset,
|
|
14
14
|
autoscrollSpeedScale,
|
|
15
15
|
autoscrollDelay,
|
|
16
|
+
autoscrollActivationDelta,
|
|
16
17
|
animationDuration,
|
|
17
|
-
dragReorderThreshold,
|
|
18
18
|
onReorder,
|
|
19
19
|
onDragStart,
|
|
20
20
|
onDragEnd,
|
|
@@ -38,22 +38,25 @@ export const useReorderableListCore = ({
|
|
|
38
38
|
const gestureState = useSharedValue(State.UNDETERMINED);
|
|
39
39
|
const currentY = useSharedValue(0);
|
|
40
40
|
const currentTranslationY = useSharedValue(0);
|
|
41
|
+
const currentItemDragCenterY = useSharedValue(null);
|
|
42
|
+
const startItemDragCenterY = useSharedValue(0);
|
|
41
43
|
const flatListScrollOffsetY = useSharedValue(0);
|
|
42
44
|
const flatListHeightY = useSharedValue(0);
|
|
43
45
|
const nestedFlatListPositionY = useSharedValue(0);
|
|
46
|
+
// The scroll y translation of the list since drag start
|
|
44
47
|
const dragScrollTranslationY = useSharedValue(0);
|
|
48
|
+
// The initial scroll offset y of the list on drag start
|
|
45
49
|
const dragInitialScrollOffsetY = useSharedValue(0);
|
|
50
|
+
// The scroll y translation of the ScrollViewContainer since drag start
|
|
46
51
|
const scrollViewDragScrollTranslationY = useSharedValue(0);
|
|
52
|
+
// The initial scroll offset y of the ScrollViewContainer on drag start
|
|
47
53
|
const scrollViewDragInitialScrollOffsetY = useSharedValue(0);
|
|
48
54
|
const draggedHeight = useSharedValue(0);
|
|
49
55
|
const itemOffset = useSharedValue([]);
|
|
50
56
|
const itemHeight = useSharedValue([]);
|
|
51
57
|
const autoscrollTrigger = useSharedValue(-1);
|
|
52
58
|
const lastAutoscrollTrigger = useSharedValue(-1);
|
|
53
|
-
const previousY = useSharedValue(0);
|
|
54
59
|
const dragY = useSharedValue(0);
|
|
55
|
-
const previousDirection = useSharedValue(0);
|
|
56
|
-
const previousIndex = useSharedValue(-1);
|
|
57
60
|
const currentIndex = useSharedValue(-1);
|
|
58
61
|
const draggedIndex = useSharedValue(-1);
|
|
59
62
|
const state = useSharedValue(ReorderableListState.IDLE);
|
|
@@ -62,9 +65,13 @@ export const useReorderableListCore = ({
|
|
|
62
65
|
const duration = useSharedValue(animationDuration);
|
|
63
66
|
const scaleDefault = useSharedValue(1);
|
|
64
67
|
const opacityDefault = useSharedValue(1);
|
|
68
|
+
const dragDirection = useSharedValue(0);
|
|
69
|
+
const lastDragDirectionPivot = useSharedValue(null);
|
|
70
|
+
const autoscrollDelta = useSharedValue(autoscrollActivationDelta);
|
|
65
71
|
useEffect(() => {
|
|
66
72
|
duration.value = animationDuration;
|
|
67
|
-
|
|
73
|
+
autoscrollDelta.value = autoscrollActivationDelta;
|
|
74
|
+
}, [duration, animationDuration, autoscrollDelta, autoscrollActivationDelta]);
|
|
68
75
|
const listContextValue = useMemo(() => ({
|
|
69
76
|
draggedHeight,
|
|
70
77
|
currentIndex,
|
|
@@ -79,6 +86,43 @@ export const useReorderableListCore = ({
|
|
|
79
86
|
opacity: cellAnimations && 'opacity' in cellAnimations ? cellAnimations.opacity : opacityDefault
|
|
80
87
|
}
|
|
81
88
|
}), [draggedHeight, currentIndex, draggedIndex, dragEndHandlers, activeIndex, cellAnimations, scaleDefault, opacityDefault]);
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Decides the intended drag direction of the user.
|
|
92
|
+
* This is used to to determine if the user intends to autoscroll
|
|
93
|
+
* when within the threshold area.
|
|
94
|
+
*
|
|
95
|
+
* @param e - The payload of the pan gesture update event.
|
|
96
|
+
*/
|
|
97
|
+
const setDragDirection = useCallback(e => {
|
|
98
|
+
'worklet';
|
|
99
|
+
|
|
100
|
+
const direction = e.velocityY > 0 ? 1 : -1;
|
|
101
|
+
if (direction !== dragDirection.value) {
|
|
102
|
+
if (lastDragDirectionPivot.value === null) {
|
|
103
|
+
lastDragDirectionPivot.value = e.absoluteY;
|
|
104
|
+
} else if (Math.abs(e.absoluteY - lastDragDirectionPivot.value) >= autoscrollDelta.value) {
|
|
105
|
+
dragDirection.value = direction;
|
|
106
|
+
lastDragDirectionPivot.value = e.absoluteY;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}, [dragDirection, lastDragDirectionPivot, autoscrollDelta]);
|
|
110
|
+
const setCurrentItemDragCenterY = useCallback(e => {
|
|
111
|
+
'worklet';
|
|
112
|
+
|
|
113
|
+
if (currentItemDragCenterY.value === null) {
|
|
114
|
+
if (currentIndex.value >= 0) {
|
|
115
|
+
const itemCenter = itemHeight.value[currentIndex.value] * 0.5;
|
|
116
|
+
// the y coordinate of the item relative to the list
|
|
117
|
+
const itemY = itemOffset.value[currentIndex.value] - (flatListScrollOffsetY.value + scrollViewDragScrollTranslationY.value);
|
|
118
|
+
const value = itemY + itemCenter + e.translationY;
|
|
119
|
+
startItemDragCenterY.value = value;
|
|
120
|
+
currentItemDragCenterY.value = value;
|
|
121
|
+
}
|
|
122
|
+
} else {
|
|
123
|
+
currentItemDragCenterY.value = startItemDragCenterY.value + e.translationY;
|
|
124
|
+
}
|
|
125
|
+
}, [currentItemDragCenterY, currentIndex, startItemDragCenterY, itemOffset, itemHeight, flatListScrollOffsetY, scrollViewDragScrollTranslationY]);
|
|
82
126
|
const panGestureHandler = useMemo(() => Gesture.Pan().onBegin(e => {
|
|
83
127
|
// prevent new dragging until item is completely released
|
|
84
128
|
if (state.value === ReorderableListState.IDLE) {
|
|
@@ -89,13 +133,17 @@ export const useReorderableListCore = ({
|
|
|
89
133
|
gestureState.value = e.state;
|
|
90
134
|
}
|
|
91
135
|
}).onUpdate(e => {
|
|
136
|
+
if (state.value === ReorderableListState.DRAGGED) {
|
|
137
|
+
setDragDirection(e);
|
|
138
|
+
}
|
|
92
139
|
if (state.value !== ReorderableListState.RELEASED) {
|
|
140
|
+
setCurrentItemDragCenterY(e);
|
|
93
141
|
currentY.value = startY.value + e.translationY;
|
|
94
142
|
currentTranslationY.value = e.translationY;
|
|
95
143
|
dragY.value = e.translationY + dragScrollTranslationY.value + scrollViewDragScrollTranslationY.value;
|
|
96
144
|
gestureState.value = e.state;
|
|
97
145
|
}
|
|
98
|
-
}).onEnd(e => gestureState.value = e.state).onFinalize(e => gestureState.value = e.state), [
|
|
146
|
+
}).onEnd(e => gestureState.value = e.state).onFinalize(e => gestureState.value = e.state), [state, startY, currentY, currentTranslationY, dragY, gestureState, dragScrollTranslationY, scrollViewDragScrollTranslationY, setDragDirection, setCurrentItemDragCenterY]);
|
|
99
147
|
const panGestureHandlerWithOptions = useMemo(() => {
|
|
100
148
|
if (typeof panActivateAfterLongPress === 'number') {
|
|
101
149
|
panGestureHandler.activateAfterLongPress(panActivateAfterLongPress);
|
|
@@ -131,7 +179,10 @@ export const useReorderableListCore = ({
|
|
|
131
179
|
dragY.value = 0;
|
|
132
180
|
dragScrollTranslationY.value = 0;
|
|
133
181
|
scrollViewDragScrollTranslationY.value = 0;
|
|
134
|
-
|
|
182
|
+
dragDirection.value = 0;
|
|
183
|
+
lastDragDirectionPivot.value = null;
|
|
184
|
+
currentItemDragCenterY.value = null;
|
|
185
|
+
}, [state, draggedIndex, dragY, dragScrollTranslationY, scrollViewDragScrollTranslationY, dragDirection, lastDragDirectionPivot, currentItemDragCenterY]);
|
|
135
186
|
const resetSharedValuesAfterAnimations = useCallback(() => {
|
|
136
187
|
setTimeout(runOnUI(resetSharedValues), duration.value);
|
|
137
188
|
}, [resetSharedValues, duration]);
|
|
@@ -151,67 +202,72 @@ export const useReorderableListCore = ({
|
|
|
151
202
|
}
|
|
152
203
|
}
|
|
153
204
|
};
|
|
154
|
-
const
|
|
205
|
+
const recomputeLayout = useCallback((from, to) => {
|
|
155
206
|
'worklet';
|
|
156
207
|
|
|
157
|
-
const
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
208
|
+
const itemDirection = to > from;
|
|
209
|
+
const index1 = itemDirection ? from : to;
|
|
210
|
+
const index2 = itemDirection ? to : from;
|
|
211
|
+
const newOffset1 = itemOffset.value[index1];
|
|
212
|
+
const newHeight1 = itemHeight.value[index2];
|
|
213
|
+
const newOffset2 = itemOffset.value[index2] + itemHeight.value[index2] - itemHeight.value[index1];
|
|
214
|
+
const newHeight2 = itemHeight.value[index1];
|
|
215
|
+
itemOffset.value[index1] = newOffset1;
|
|
216
|
+
itemHeight.value[index1] = newHeight1;
|
|
217
|
+
itemOffset.value[index2] = newOffset2;
|
|
218
|
+
itemHeight.value[index2] = newHeight2;
|
|
219
|
+
}, [itemOffset, itemHeight]);
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Computes a potential new drop container for the current dragged item and evaluates
|
|
223
|
+
* whether the dragged item center is nearer to the center of the current container or the new one.
|
|
224
|
+
*
|
|
225
|
+
* @returns The new index if the center of the dragged item is closer to the center of
|
|
226
|
+
* the new drop container or the current index if closer to the current drop container.
|
|
227
|
+
*/
|
|
228
|
+
const computeCurrentIndex = useCallback(() => {
|
|
229
|
+
'worklet';
|
|
230
|
+
|
|
231
|
+
if (currentItemDragCenterY.value === null) {
|
|
232
|
+
return currentIndex.value;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// apply scroll offset and scroll container translation
|
|
236
|
+
const relativeDragCenterY = flatListScrollOffsetY.value + scrollViewDragScrollTranslationY.value + currentItemDragCenterY.value;
|
|
237
|
+
const currentOffset = itemOffset.value[currentIndex.value];
|
|
238
|
+
const currentHeight = itemHeight.value[currentIndex.value];
|
|
239
|
+
const currentCenter = currentOffset + currentHeight * 0.5;
|
|
240
|
+
const max = itemOffset.value.length;
|
|
241
|
+
const possibleIndex = relativeDragCenterY < currentCenter ? Math.max(0, currentIndex.value - 1) : Math.min(max - 1, currentIndex.value + 1);
|
|
242
|
+
if (currentIndex.value !== possibleIndex) {
|
|
243
|
+
let possibleOffset = itemOffset.value[possibleIndex];
|
|
244
|
+
if (possibleIndex > currentIndex.value) {
|
|
245
|
+
possibleOffset += itemHeight.value[possibleIndex] - currentHeight;
|
|
172
246
|
}
|
|
247
|
+
const possibleCenter = possibleOffset + currentHeight * 0.5;
|
|
248
|
+
const distanceFromCurrent = Math.abs(relativeDragCenterY - currentCenter);
|
|
249
|
+
const distanceFromPossible = Math.abs(relativeDragCenterY - possibleCenter);
|
|
250
|
+
return distanceFromCurrent <= distanceFromPossible ? currentIndex.value : possibleIndex;
|
|
173
251
|
}
|
|
174
|
-
return
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
};
|
|
178
|
-
}, [dragReorderThreshold, currentIndex, flatListScrollOffsetY, previousDirection, itemOffset, itemHeight]);
|
|
179
|
-
const setCurrentIndex = useCallback(y => {
|
|
252
|
+
return currentIndex.value;
|
|
253
|
+
}, [currentIndex, currentItemDragCenterY, itemOffset, itemHeight, flatListScrollOffsetY, scrollViewDragScrollTranslationY]);
|
|
254
|
+
const setCurrentIndex = useCallback(() => {
|
|
180
255
|
'worklet';
|
|
181
256
|
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
} = getIndexFromY(y);
|
|
186
|
-
const delta = Math.abs(previousY.value - y);
|
|
187
|
-
if (currentIndex.value !== newIndex && (
|
|
188
|
-
// if the same two items re-swap index check delta and direction to avoid swap flickering
|
|
189
|
-
previousIndex.value !== newIndex || previousDirection.value !== newDirection && delta >= 5)) {
|
|
190
|
-
const itemDirection = newIndex > currentIndex.value;
|
|
191
|
-
const index1 = itemDirection ? currentIndex.value : newIndex;
|
|
192
|
-
const index2 = itemDirection ? newIndex : currentIndex.value;
|
|
193
|
-
const newOffset1 = itemOffset.value[index1];
|
|
194
|
-
const newHeight1 = itemHeight.value[index2];
|
|
195
|
-
const newOffset2 = itemOffset.value[index2] + (itemHeight.value[index2] - itemHeight.value[index1]);
|
|
196
|
-
const newHeight2 = itemHeight.value[index1];
|
|
197
|
-
itemOffset.value[index1] = newOffset1;
|
|
198
|
-
itemHeight.value[index1] = newHeight1;
|
|
199
|
-
itemOffset.value[index2] = newOffset2;
|
|
200
|
-
itemHeight.value[index2] = newHeight2;
|
|
201
|
-
previousY.value = y;
|
|
202
|
-
previousDirection.value = newDirection;
|
|
203
|
-
previousIndex.value = currentIndex.value;
|
|
257
|
+
const newIndex = computeCurrentIndex();
|
|
258
|
+
if (currentIndex.value !== newIndex) {
|
|
259
|
+
recomputeLayout(currentIndex.value, newIndex);
|
|
204
260
|
currentIndex.value = newIndex;
|
|
205
261
|
onIndexChange === null || onIndexChange === void 0 || onIndexChange({
|
|
206
262
|
index: newIndex
|
|
207
263
|
});
|
|
208
264
|
}
|
|
209
|
-
}, [currentIndex,
|
|
265
|
+
}, [currentIndex, computeCurrentIndex, recomputeLayout, onIndexChange]);
|
|
210
266
|
const runDefaultDragAnimations = useCallback(type => {
|
|
211
267
|
'worklet';
|
|
212
268
|
|
|
213
269
|
// if no custom scale run default
|
|
214
|
-
if (!(cellAnimations && '
|
|
270
|
+
if (!(cellAnimations && 'transform' in cellAnimations)) {
|
|
215
271
|
const scaleConfig = SCALE_ANIMATION_CONFIG_DEFAULT[type];
|
|
216
272
|
scaleDefault.value = withTiming(scaleConfig.toValue, scaleConfig);
|
|
217
273
|
}
|
|
@@ -351,13 +407,18 @@ export const useReorderableListCore = ({
|
|
|
351
407
|
}, [nestedScrollable, shouldScrollParent, calculateHiddenArea, calculateThresholdArea, calculateThresholdAreaParent]);
|
|
352
408
|
useAnimatedReaction(() => currentY.value + scrollViewDragScrollTranslationY.value, y => {
|
|
353
409
|
if (state.value === ReorderableListState.DRAGGED || state.value === ReorderableListState.AUTOSCROLL) {
|
|
354
|
-
setCurrentIndex(
|
|
355
|
-
|
|
410
|
+
setCurrentIndex();
|
|
411
|
+
|
|
412
|
+
// Trigger autoscroll when:
|
|
413
|
+
// 1. Within the threshold area (top or bottom of list)
|
|
414
|
+
// 2. Have dragged in the same direction as the scroll
|
|
415
|
+
// 3. Not already in autoscroll mode
|
|
416
|
+
if (dragDirection.value === scrollDirection(y)) {
|
|
417
|
+
// When the first two conditions are met and it's already in autoscroll mode, we let it continue (no-op)
|
|
356
418
|
if (state.value !== ReorderableListState.AUTOSCROLL) {
|
|
357
|
-
|
|
419
|
+
state.value = ReorderableListState.AUTOSCROLL;
|
|
358
420
|
lastAutoscrollTrigger.value = autoscrollTrigger.value;
|
|
359
421
|
autoscrollTrigger.value *= -1;
|
|
360
|
-
state.value = ReorderableListState.AUTOSCROLL;
|
|
361
422
|
}
|
|
362
423
|
} else if (state.value === ReorderableListState.AUTOSCROLL) {
|
|
363
424
|
state.value = ReorderableListState.DRAGGED;
|
|
@@ -380,7 +441,7 @@ export const useReorderableListCore = ({
|
|
|
380
441
|
|
|
381
442
|
// when autoscrolling user may not be moving his finger so we need
|
|
382
443
|
// to update the current position of the dragged item here
|
|
383
|
-
setCurrentIndex(
|
|
444
|
+
setCurrentIndex();
|
|
384
445
|
}
|
|
385
446
|
});
|
|
386
447
|
|
|
@@ -407,8 +468,7 @@ export const useReorderableListCore = ({
|
|
|
407
468
|
useAnimatedReaction(() => scrollViewScrollOffsetY === null || scrollViewScrollOffsetY === void 0 ? void 0 : scrollViewScrollOffsetY.value, value => {
|
|
408
469
|
if (value && scrollViewScrollEnabled) {
|
|
409
470
|
// checking if the list is not scrollable instead of the scrolling state
|
|
410
|
-
// fixes a bug on iOS where the item is shifted after autoscrolling and
|
|
411
|
-
// moving await from autoscroll area
|
|
471
|
+
// fixes a bug on iOS where the item is shifted after autoscrolling and moving away from the area
|
|
412
472
|
if (!scrollViewScrollEnabled.value) {
|
|
413
473
|
scrollViewDragScrollTranslationY.value = value - scrollViewDragInitialScrollOffsetY.value;
|
|
414
474
|
}
|
|
@@ -433,10 +493,9 @@ export const useReorderableListCore = ({
|
|
|
433
493
|
runOnJS(setActiveIndex)(index);
|
|
434
494
|
}
|
|
435
495
|
dragInitialScrollOffsetY.value = flatListScrollOffsetY.value;
|
|
436
|
-
scrollViewDragInitialScrollOffsetY.value = scrollViewScrollOffsetY ? scrollViewScrollOffsetY.value
|
|
496
|
+
scrollViewDragInitialScrollOffsetY.value = (scrollViewScrollOffsetY === null || scrollViewScrollOffsetY === void 0 ? void 0 : scrollViewScrollOffsetY.value) || 0;
|
|
437
497
|
draggedHeight.value = itemHeight.value[index];
|
|
438
498
|
draggedIndex.value = index;
|
|
439
|
-
previousIndex.value = -1;
|
|
440
499
|
currentIndex.value = index;
|
|
441
500
|
state.value = ReorderableListState.DRAGGED;
|
|
442
501
|
runOnJS(setScrollEnabled)(false);
|
|
@@ -447,7 +506,7 @@ export const useReorderableListCore = ({
|
|
|
447
506
|
index
|
|
448
507
|
});
|
|
449
508
|
}
|
|
450
|
-
}, [resetSharedValues, shouldUpdateActiveItem, dragInitialScrollOffsetY, scrollViewScrollOffsetY, scrollViewDragInitialScrollOffsetY, setScrollEnabled, currentIndex,
|
|
509
|
+
}, [resetSharedValues, shouldUpdateActiveItem, dragInitialScrollOffsetY, scrollViewScrollOffsetY, scrollViewDragInitialScrollOffsetY, setScrollEnabled, currentIndex, draggedHeight, draggedIndex, state, flatListScrollOffsetY, itemHeight, onDragStart, runDefaultDragAnimations]);
|
|
451
510
|
const handleFlatListLayout = useCallback(e => {
|
|
452
511
|
nestedFlatListPositionY.value = e.nativeEvent.layout.y;
|
|
453
512
|
flatListHeightY.value = e.nativeEvent.layout.height;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","unstable_batchedUpdates","Gesture","State","Easing","runOnJS","runOnUI","scrollTo","useAnimatedReaction","useAnimatedRef","useAnimatedScrollHandler","useSharedValue","withDelay","withTiming","OPACITY_ANIMATION_CONFIG_DEFAULT","SCALE_ANIMATION_CONFIG_DEFAULT","AUTOSCROLL_CONFIG","ReorderableListState","version","split","hasAutomaticBatching","length","parseInt","useReorderableListCore","ref","autoscrollThreshold","autoscrollThresholdOffset","autoscrollSpeedScale","autoscrollDelay","animationDuration","dragReorderThreshold","onReorder","onDragStart","onDragEnd","onLayout","onIndexChange","scrollViewContainerRef","scrollViewHeightY","scrollViewScrollOffsetY","scrollViewScrollEnabled","initialScrollEnabled","initialScrollViewScrollEnabled","nestedScrollable","cellAnimations","shouldUpdateActiveItem","panActivateAfterLongPress","panEnabled","flatListRef","activeIndex","setActiveIndex","scrollEnabled","gestureState","UNDETERMINED","currentY","currentTranslationY","flatListScrollOffsetY","flatListHeightY","nestedFlatListPositionY","dragScrollTranslationY","dragInitialScrollOffsetY","scrollViewDragScrollTranslationY","scrollViewDragInitialScrollOffsetY","draggedHeight","itemOffset","itemHeight","autoscrollTrigger","lastAutoscrollTrigger","previousY","dragY","previousDirection","previousIndex","currentIndex","draggedIndex","state","IDLE","dragEndHandlers","startY","duration","scaleDefault","opacityDefault","value","listContextValue","transform","scale","opacity","panGestureHandler","Pan","onBegin","e","y","translationY","onUpdate","RELEASED","onEnd","onFinalize","panGestureHandlerWithOptions","activateAfterLongPress","enabled","gestureHandler","Simultaneous","Native","setScrollEnabled","_flatListRef$current","current","setNativeProps","_scrollViewContainerR","resetSharedValues","resetSharedValuesAfterAnimations","setTimeout","reorder","fromIndex","toIndex","updateState","from","to","getIndexFromY","relativeY","count","i","direction","threshold","Math","max","min","height","offset","index","setCurrentIndex","newIndex","newDirection","delta","abs","itemDirection","index1","index2","newOffset1","newHeight1","newOffset2","newHeight2","runDefaultDragAnimations","type","scaleConfig","toValue","opacityConfig","ACTIVE","BEGAN","DRAGGED","AUTOSCROLL","handlers","Array","isArray","forEach","fn","currentItemOffset","currentItemHeight","draggedItemOffset","draggedItemHeight","newTopPosition","easing","out","ease","calculateHiddenArea","top","bottom","calculateThresholdArea","hiddenArea","offsetTop","offsetBottom","visibleHeight","area","calculateThresholdAreaParent","shouldScrollParent","thresholdAreaParent","scrollDirection","thresholdArea","autoscrollIncrement","increment","scrollOffset","listRef","handleScroll","contentOffset","startDrag","handleFlatListLayout","nativeEvent","layout","handleRef"],"sourceRoot":"../../../../src","sources":["components/ReorderableListCore/useReorderableListCore.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","unstable_batchedUpdates","Gesture","State","Easing","runOnJS","runOnUI","scrollTo","useAnimatedReaction","useAnimatedRef","useAnimatedScrollHandler","useSharedValue","withDelay","withTiming","OPACITY_ANIMATION_CONFIG_DEFAULT","SCALE_ANIMATION_CONFIG_DEFAULT","AUTOSCROLL_CONFIG","ReorderableListState","version","split","hasAutomaticBatching","length","parseInt","useReorderableListCore","ref","autoscrollThreshold","autoscrollThresholdOffset","autoscrollSpeedScale","autoscrollDelay","autoscrollActivationDelta","animationDuration","onReorder","onDragStart","onDragEnd","onLayout","onIndexChange","scrollViewContainerRef","scrollViewHeightY","scrollViewScrollOffsetY","scrollViewScrollEnabled","initialScrollEnabled","initialScrollViewScrollEnabled","nestedScrollable","cellAnimations","shouldUpdateActiveItem","panActivateAfterLongPress","panEnabled","flatListRef","activeIndex","setActiveIndex","scrollEnabled","gestureState","UNDETERMINED","currentY","currentTranslationY","currentItemDragCenterY","startItemDragCenterY","flatListScrollOffsetY","flatListHeightY","nestedFlatListPositionY","dragScrollTranslationY","dragInitialScrollOffsetY","scrollViewDragScrollTranslationY","scrollViewDragInitialScrollOffsetY","draggedHeight","itemOffset","itemHeight","autoscrollTrigger","lastAutoscrollTrigger","dragY","currentIndex","draggedIndex","state","IDLE","dragEndHandlers","startY","duration","scaleDefault","opacityDefault","dragDirection","lastDragDirectionPivot","autoscrollDelta","value","listContextValue","transform","scale","opacity","setDragDirection","e","direction","velocityY","absoluteY","Math","abs","setCurrentItemDragCenterY","itemCenter","itemY","translationY","panGestureHandler","Pan","onBegin","y","onUpdate","DRAGGED","RELEASED","onEnd","onFinalize","panGestureHandlerWithOptions","activateAfterLongPress","enabled","gestureHandler","Simultaneous","Native","setScrollEnabled","_flatListRef$current","current","setNativeProps","_scrollViewContainerR","resetSharedValues","resetSharedValuesAfterAnimations","setTimeout","reorder","fromIndex","toIndex","updateState","from","to","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","toValue","opacityConfig","ACTIVE","BEGAN","AUTOSCROLL","handlers","Array","isArray","forEach","fn","currentItemOffset","currentItemHeight","draggedItemOffset","draggedItemHeight","newTopPosition","easing","out","ease","calculateHiddenArea","top","bottom","calculateThresholdArea","hiddenArea","offsetTop","offsetBottom","threshold","visibleHeight","area","calculateThresholdAreaParent","shouldScrollParent","thresholdAreaParent","scrollDirection","thresholdArea","autoscrollIncrement","increment","scrollOffset","listRef","handleScroll","contentOffset","startDrag","handleFlatListLayout","nativeEvent","layout","height","handleRef"],"sourceRoot":"../../../../src","sources":["components/ReorderableListCore/useReorderableListCore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,8 +12,8 @@ interface UseReorderableListCoreArgs<T> {
|
|
|
12
12
|
} | undefined;
|
|
13
13
|
autoscrollSpeedScale: number;
|
|
14
14
|
autoscrollDelay: number;
|
|
15
|
+
autoscrollActivationDelta: number;
|
|
15
16
|
animationDuration: number;
|
|
16
|
-
dragReorderThreshold: number;
|
|
17
17
|
onReorder: (event: ReorderableListReorderEvent) => void;
|
|
18
18
|
onDragStart?: (event: ReorderableListDragStartEvent) => void;
|
|
19
19
|
onDragEnd?: (event: ReorderableListDragEndEvent) => void;
|
|
@@ -31,7 +31,7 @@ interface UseReorderableListCoreArgs<T> {
|
|
|
31
31
|
panEnabled: boolean;
|
|
32
32
|
panActivateAfterLongPress: number | undefined;
|
|
33
33
|
}
|
|
34
|
-
export declare const useReorderableListCore: <T>({ ref, autoscrollThreshold, autoscrollThresholdOffset, autoscrollSpeedScale, autoscrollDelay,
|
|
34
|
+
export declare const useReorderableListCore: <T>({ ref, autoscrollThreshold, autoscrollThresholdOffset, autoscrollSpeedScale, autoscrollDelay, autoscrollActivationDelta, animationDuration, onReorder, onDragStart, onDragEnd, onLayout, onIndexChange, scrollViewContainerRef, scrollViewHeightY, scrollViewScrollOffsetY, scrollViewScrollEnabled, initialScrollEnabled, initialScrollViewScrollEnabled, nestedScrollable, cellAnimations, shouldUpdateActiveItem, panActivateAfterLongPress, panEnabled, }: UseReorderableListCoreArgs<T>) => {
|
|
35
35
|
gestureHandler: import("react-native-gesture-handler/lib/typescript/handlers/gestures/gestureComposition").SimultaneousGesture;
|
|
36
36
|
handleScroll: import("react-native-reanimated").ScrollHandlerProcessed<Record<string, unknown>>;
|
|
37
37
|
handleFlatListLayout: (e: LayoutChangeEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReorderableListCore.d.ts","sourceRoot":"","sources":["../../../../src/components/ReorderableListCore/useReorderableListCore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,UAAU,EAEX,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"useReorderableListCore.d.ts","sourceRoot":"","sources":["../../../../src/components/ReorderableListCore/useReorderableListCore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,UAAU,EAEX,MAAM,cAAc,CAAC;AAQtB,OAAiB,EAGf,WAAW,EAUZ,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,+BAA+B,EAEhC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,aAAa,CAAC;AAO7D,UAAU,0BAA0B,CAAC,CAAC;IACpC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,SAAS,CAAC;IACvE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACxD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACzD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,+BAA+B,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAChE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACnD,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACzD,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAC1D,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,8BAA8B,EAAE,OAAO,GAAG,SAAS,CAAC;IACpD,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,cAAc,EAAE,6BAA6B,GAAG,SAAS,CAAC;IAC1D,sBAAsB,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,OAAO,CAAC;IACpB,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C;AAED,eAAO,MAAM,sBAAsB;;;;;uBAisBvB,MAAM;;;;;6CA3oBN,MAAM,MAAM,MAAM,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2tBtC,CAAC"}
|
|
@@ -61,10 +61,11 @@ export interface ReorderableListProps<T> extends Omit<FlatListProps<T>, OmittedP
|
|
|
61
61
|
*/
|
|
62
62
|
autoscrollDelay?: number;
|
|
63
63
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
64
|
+
* Allows configuring the delta for autoscroll activation when dragging an item in the same direction as the autoscroll.
|
|
65
|
+
* This is particularly useful when an item is dragged within the autoscroll area to account for minor unintentional movements.
|
|
66
|
+
* Default: `5`.
|
|
66
67
|
*/
|
|
67
|
-
|
|
68
|
+
autoscrollActivationDelta?: number;
|
|
68
69
|
/**
|
|
69
70
|
* Duration of the animations in milliseconds.
|
|
70
71
|
* Be aware that users won't be able to drag a new item until the dragged item is released and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/types/props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAC,WAAW,EAAE,wBAAwB,EAAC,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AAEvD,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,YAAY,GACb,YAAY,GACZ,UAAU,GACV,qBAAqB,GACrB,uBAAuB,GACvB,uBAAuB,GACvB,YAAY,CAAC;AAEjB,MAAM,WAAW,oBAAoB,CAAC,CAAC,CACrC,SAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;IAC5C,IAAI,EAAE,CAAC,EAAE,CAAC;IACV;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,yBAAyB,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAC5D;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/types/props.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -83,13 +83,13 @@ export const ReorderableListCell = memo(
|
|
|
83
83
|
currentIndex.value >= 0 &&
|
|
84
84
|
draggedIndex.value >= 0
|
|
85
85
|
) {
|
|
86
|
-
const
|
|
86
|
+
const moveUp = currentIndex.value > draggedIndex.value;
|
|
87
87
|
const startMove = Math.min(draggedIndex.value, currentIndex.value);
|
|
88
88
|
const endMove = Math.max(draggedIndex.value, currentIndex.value);
|
|
89
|
-
let newValue = 0;
|
|
90
89
|
|
|
90
|
+
let newValue = 0;
|
|
91
91
|
if (index >= startMove && index <= endMove) {
|
|
92
|
-
newValue =
|
|
92
|
+
newValue = moveUp ? -draggedHeight.value : draggedHeight.value;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
if (newValue !== itemTranslateY.value) {
|
|
@@ -47,8 +47,8 @@ const ReorderableListCore = <T,>(
|
|
|
47
47
|
autoscrollThresholdOffset,
|
|
48
48
|
autoscrollSpeedScale = 1,
|
|
49
49
|
autoscrollDelay = AUTOSCROLL_CONFIG.delay,
|
|
50
|
+
autoscrollActivationDelta = 5,
|
|
50
51
|
animationDuration = 200,
|
|
51
|
-
dragReorderThreshold = 0.2,
|
|
52
52
|
onLayout,
|
|
53
53
|
onReorder,
|
|
54
54
|
onScroll,
|
|
@@ -88,8 +88,8 @@ const ReorderableListCore = <T,>(
|
|
|
88
88
|
autoscrollThresholdOffset,
|
|
89
89
|
autoscrollSpeedScale,
|
|
90
90
|
autoscrollDelay,
|
|
91
|
+
autoscrollActivationDelta,
|
|
91
92
|
animationDuration,
|
|
92
|
-
dragReorderThreshold,
|
|
93
93
|
onLayout,
|
|
94
94
|
onReorder,
|
|
95
95
|
onDragStart,
|