@swmansion/react-native-bottom-sheet 0.6.0 → 0.6.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.
package/README.md
CHANGED
|
@@ -181,16 +181,24 @@ For scrollable sheet content, use `BottomSheetScrollView` or
|
|
|
181
181
|
integrate scrolling with the sheet’s drag gesture so that dragging down while
|
|
182
182
|
scrolled to the top collapses the sheet.
|
|
183
183
|
|
|
184
|
-
|
|
184
|
+
If you need a custom scrollable (for example, a `FlashList`), wrap it with
|
|
185
|
+
`bottomSheetScrollable`. The returned component forwards the underlying
|
|
186
|
+
scrollable ref, so you can call any imperative methods supported by the
|
|
187
|
+
wrapped component.
|
|
185
188
|
|
|
186
189
|
```tsx
|
|
187
|
-
const
|
|
188
|
-
|
|
190
|
+
const BottomSheetFlashList = bottomSheetScrollable<
|
|
191
|
+
FlashListProps<string>,
|
|
192
|
+
FlashListRef<string>
|
|
193
|
+
>(FlashList);
|
|
189
194
|
```
|
|
190
195
|
|
|
191
196
|
```tsx
|
|
192
|
-
|
|
193
|
-
|
|
197
|
+
const listRef = useRef<FlashListRef<string>>(null);
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
```tsx
|
|
201
|
+
<BottomSheetFlashList ref={listRef} /* ... */ />
|
|
194
202
|
```
|
|
195
203
|
|
|
196
204
|
## By [Software Mansion](https://swmansion.com)
|
|
@@ -204,3 +212,9 @@ product‍—‍[hire us](https://swmansion.com/contact/projects?utm_so
|
|
|
204
212
|
[](https://swmansion.com)
|
|
205
213
|
|
|
206
214
|
[](https://github.com/software-mansion-labs/react-native-bottom-sheet/graphs/contributors)
|
|
215
|
+
|
|
216
|
+
## Sponsored by [Gobi Maps](https://www.gobimaps.com)
|
|
217
|
+
|
|
218
|
+
A social map for exploring your city.
|
|
219
|
+
|
|
220
|
+
[<img src="gobi.png" height="80" />](https://www.gobimaps.com)
|
|
@@ -57,6 +57,27 @@ export const useBottomSheetPanGesture = ({
|
|
|
57
57
|
if (!touch) return;
|
|
58
58
|
const deltaX = touch.absoluteX - panStartX.value;
|
|
59
59
|
const deltaY = touch.absoluteY - panStartY.value;
|
|
60
|
+
// When multiple scrollables overlap (e.g. stacked views), the hit-test
|
|
61
|
+
// in onTouchesDown may pick the wrong one. Prefer the scrollable whose
|
|
62
|
+
// native gesture is already active — that is definitively the one
|
|
63
|
+
// receiving touches (respects pointerEvents, z-order, etc.).
|
|
64
|
+
// If multiple scrollables are registered but none has confirmed via
|
|
65
|
+
// isGestureActive yet, defer the decision to avoid acting on a
|
|
66
|
+
// potentially incorrect hit-test result.
|
|
67
|
+
const entries = scrollableEntries;
|
|
68
|
+
let gestureActiveIdx = -1;
|
|
69
|
+
for (let i = 0; i < entries.length; i++) {
|
|
70
|
+
const entry = entries[i];
|
|
71
|
+
if (entry !== undefined && entry.isGestureActive.value) {
|
|
72
|
+
gestureActiveIdx = i;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (gestureActiveIdx !== -1) {
|
|
77
|
+
activeScrollableIndex.set(gestureActiveIdx);
|
|
78
|
+
} else if (entries.length > 1) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
60
81
|
const activeIdx = activeScrollableIndex.value;
|
|
61
82
|
if (activeIdx !== -1) {
|
|
62
83
|
const active = scrollableEntries[activeIdx];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Gesture","scheduleOnRN","measure","scrollTo","useSharedValue","findSnapTarget","useBottomSheetPanGesture","animationTarget","translateY","sheetHeight","detentsValue","isDraggableValue","currentIndex","scrollableEntries","isScrollableLocked","handleIndexChange","animateToIndex","isDraggingSheet","isDraggingFromScrollable","panStartX","panStartY","panActivated","dragStartTranslateY","activeScrollableIndex","Pan","manualActivation","onTouchesDown","event","set","touch","changedTouches","allTouches","undefined","absoluteX","absoluteY","entries","i","length","entry","layout","ref","withinX","pageX","width","withinY","pageY","height","onTouchesMove","stateManager","value","deltaX","deltaY","activeIdx","active","scrollOffset","Math","abs","fail","activate","onBegin","NaN","onUpdate","hasActive","activeOffset","isDraggingDown","translationY","canStartDrag","isScrollableActive","
|
|
1
|
+
{"version":3,"names":["Gesture","scheduleOnRN","measure","scrollTo","useSharedValue","findSnapTarget","useBottomSheetPanGesture","animationTarget","translateY","sheetHeight","detentsValue","isDraggableValue","currentIndex","scrollableEntries","isScrollableLocked","handleIndexChange","animateToIndex","isDraggingSheet","isDraggingFromScrollable","panStartX","panStartY","panActivated","dragStartTranslateY","activeScrollableIndex","Pan","manualActivation","onTouchesDown","event","set","touch","changedTouches","allTouches","undefined","absoluteX","absoluteY","entries","i","length","entry","layout","ref","withinX","pageX","width","withinY","pageY","height","onTouchesMove","stateManager","value","deltaX","deltaY","gestureActiveIdx","isGestureActive","activeIdx","active","scrollOffset","Math","abs","fail","activate","onBegin","NaN","onUpdate","hasActive","activeOffset","isDraggingDown","translationY","canStartDrag","isScrollableActive","rawTranslate","resolvedDetents","draggable","maxDraggableTranslateY","foundDraggable","t","nextTranslate","min","max","targetSnapIndex","targetSnapValue","detentValue","maxSnap","onEnd","wasDragging","allPositions","map","snapIndex","index","isDraggable","targetIndex","velocityY","hasIndexChanged","shouldApplyVelocity","Number","isFinite"],"sourceRoot":"../../src","sources":["useBottomSheetPanGesture.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBottomSheetPanGesture.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetPanGesture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,UAAU,2BAA2B;IACnC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,eAAO,MAAM,wBAAwB,GAAI,uKAWtC,2BAA2B,KAAG,
|
|
1
|
+
{"version":3,"file":"useBottomSheetPanGesture.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetPanGesture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,UAAU,2BAA2B;IACnC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,eAAO,MAAM,wBAAwB,GAAI,uKAWtC,2BAA2B,KAAG,UAkNhC,CAAC"}
|
package/package.json
CHANGED
|
@@ -83,6 +83,27 @@ export const useBottomSheetPanGesture = ({
|
|
|
83
83
|
if (!touch) return;
|
|
84
84
|
const deltaX = touch.absoluteX - panStartX.value;
|
|
85
85
|
const deltaY = touch.absoluteY - panStartY.value;
|
|
86
|
+
// When multiple scrollables overlap (e.g. stacked views), the hit-test
|
|
87
|
+
// in onTouchesDown may pick the wrong one. Prefer the scrollable whose
|
|
88
|
+
// native gesture is already active — that is definitively the one
|
|
89
|
+
// receiving touches (respects pointerEvents, z-order, etc.).
|
|
90
|
+
// If multiple scrollables are registered but none has confirmed via
|
|
91
|
+
// isGestureActive yet, defer the decision to avoid acting on a
|
|
92
|
+
// potentially incorrect hit-test result.
|
|
93
|
+
const entries = scrollableEntries;
|
|
94
|
+
let gestureActiveIdx = -1;
|
|
95
|
+
for (let i = 0; i < entries.length; i++) {
|
|
96
|
+
const entry = entries[i];
|
|
97
|
+
if (entry !== undefined && entry.isGestureActive.value) {
|
|
98
|
+
gestureActiveIdx = i;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (gestureActiveIdx !== -1) {
|
|
103
|
+
activeScrollableIndex.set(gestureActiveIdx);
|
|
104
|
+
} else if (entries.length > 1) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
86
107
|
const activeIdx = activeScrollableIndex.value;
|
|
87
108
|
if (activeIdx !== -1) {
|
|
88
109
|
const active = scrollableEntries[activeIdx];
|