@swmansion/react-native-bottom-sheet 0.5.5 → 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.
Files changed (40) hide show
  1. package/README.md +19 -5
  2. package/lib/module/BottomSheetBase.js +10 -13
  3. package/lib/module/BottomSheetBase.js.map +1 -1
  4. package/lib/module/BottomSheetContext.js.map +1 -1
  5. package/lib/module/BottomSheetFlatList.js +3 -42
  6. package/lib/module/BottomSheetFlatList.js.map +1 -1
  7. package/lib/module/BottomSheetScrollView.js +3 -43
  8. package/lib/module/BottomSheetScrollView.js.map +1 -1
  9. package/lib/module/bottomSheetScrollable.js +35 -0
  10. package/lib/module/bottomSheetScrollable.js.map +1 -0
  11. package/lib/module/index.js +1 -1
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/useBottomSheetPanGesture.js +53 -22
  14. package/lib/module/useBottomSheetPanGesture.js.map +1 -1
  15. package/lib/module/useBottomSheetScrollable.js +14 -17
  16. package/lib/module/useBottomSheetScrollable.js.map +1 -1
  17. package/lib/typescript/src/BottomSheetBase.d.ts.map +1 -1
  18. package/lib/typescript/src/BottomSheetContext.d.ts +6 -4
  19. package/lib/typescript/src/BottomSheetContext.d.ts.map +1 -1
  20. package/lib/typescript/src/BottomSheetFlatList.d.ts +7 -12
  21. package/lib/typescript/src/BottomSheetFlatList.d.ts.map +1 -1
  22. package/lib/typescript/src/BottomSheetScrollView.d.ts +7 -14
  23. package/lib/typescript/src/BottomSheetScrollView.d.ts.map +1 -1
  24. package/lib/typescript/src/bottomSheetScrollable.d.ts +9 -0
  25. package/lib/typescript/src/bottomSheetScrollable.d.ts.map +1 -0
  26. package/lib/typescript/src/index.d.ts +3 -3
  27. package/lib/typescript/src/index.d.ts.map +1 -1
  28. package/lib/typescript/src/useBottomSheetPanGesture.d.ts +4 -6
  29. package/lib/typescript/src/useBottomSheetPanGesture.d.ts.map +1 -1
  30. package/lib/typescript/src/useBottomSheetScrollable.d.ts +1 -1
  31. package/lib/typescript/src/useBottomSheetScrollable.d.ts.map +1 -1
  32. package/package.json +2 -1
  33. package/src/BottomSheetBase.tsx +16 -14
  34. package/src/BottomSheetContext.tsx +7 -4
  35. package/src/BottomSheetFlatList.tsx +16 -58
  36. package/src/BottomSheetScrollView.tsx +17 -61
  37. package/src/bottomSheetScrollable.tsx +42 -0
  38. package/src/index.tsx +3 -9
  39. package/src/useBottomSheetPanGesture.ts +64 -52
  40. package/src/useBottomSheetScrollable.ts +16 -23
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
- Both components expose imperative methods on their refs:
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 scrollViewRef = useRef<BottomSheetScrollViewMethods>(null);
188
- const listRef = useRef<BottomSheetFlatListMethods>(null);
190
+ const BottomSheetFlashList = bottomSheetScrollable<
191
+ FlashListProps<string>,
192
+ FlashListRef<string>
193
+ >(FlashList);
189
194
  ```
190
195
 
191
196
  ```tsx
192
- scrollViewRef.current?.scrollTo({ y: 0, animated: true });
193
- listRef.current?.scrollToOffset({ offset: 0, animated: true });
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&zwj;—&zwj;[hire&nbsp;us](https://swmansion.com/contact/projects?utm_so
204
212
  [![](https://logo.swmansion.com/logo?color=white&variant=desktop&width=152&tag=react-native-bottom-sheet-github)](https://swmansion.com)
205
213
 
206
214
  [![](https://contrib.rocks/image?repo=software-mansion-labs/react-native-bottom-sheet)](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&nbsp;city.
219
+
220
+ [<img src="gobi.png" height="80" />](https://www.gobimaps.com)
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useCallback, useEffect, useState } from 'react';
4
4
  import { Pressable, StyleSheet, View, useWindowDimensions } from 'react-native';
5
- import Animated, { useAnimatedRef, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
5
+ import Animated, { useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
6
6
  import { scheduleOnUI } from 'react-native-worklets';
7
7
  import { GestureDetector } from 'react-native-gesture-handler';
8
8
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
@@ -65,11 +65,14 @@ export const BottomSheetBase = ({
65
65
  const translateY = useSharedValue(initialMaxSnap);
66
66
  const animationTarget = useSharedValue(NaN);
67
67
  const sheetHeight = useSharedValue(initialMaxSnap);
68
- const scrollOffset = useSharedValue(0);
69
- const hasScrollable = useSharedValue(false);
70
- const isScrollableGestureActive = useSharedValue(false);
68
+ const [scrollableEntries, setScrollableEntries] = useState([]);
71
69
  const isScrollableLocked = useSharedValue(false);
72
- const scrollableRef = useAnimatedRef();
70
+ const registerScrollable = useCallback(entry => {
71
+ setScrollableEntries(prev => [...prev, entry]);
72
+ return () => {
73
+ setScrollableEntries(prev => prev.filter(e => e !== entry));
74
+ };
75
+ }, []);
73
76
  const detentsValue = useSharedValue(normalizedDetents);
74
77
  const isDraggableValue = useSharedValue(isDraggable);
75
78
  const firstNonzeroDetent = useSharedValue(normalizedDetents.find(detent => detent > 0) ?? 0);
@@ -123,11 +126,8 @@ export const BottomSheetBase = ({
123
126
  detentsValue,
124
127
  isDraggableValue,
125
128
  currentIndex,
126
- scrollOffset,
127
- hasScrollable,
128
- isScrollableGestureActive,
129
+ scrollableEntries,
129
130
  isScrollableLocked,
130
- scrollableRef,
131
131
  handleIndexChange,
132
132
  animateToIndex
133
133
  });
@@ -163,11 +163,8 @@ export const BottomSheetBase = ({
163
163
  position: internalPosition,
164
164
  index: currentIndex,
165
165
  sheetHeight,
166
- scrollOffset,
167
- scrollableRef,
168
- hasScrollable,
169
- isScrollableGestureActive,
170
166
  isScrollableLocked,
167
+ registerScrollable,
171
168
  panGesture
172
169
  },
173
170
  children: /*#__PURE__*/_jsx(Animated.View, {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","Pressable","StyleSheet","View","useWindowDimensions","Animated","useAnimatedRef","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","scheduleOnUI","GestureDetector","useSafeAreaInsets","Portal","BottomSheetContextProvider","clampIndex","isDetentProgrammatic","resolveDetent","useBottomSheetPanGesture","jsx","_jsx","jsxs","_jsxs","programmatic","DEFAULT_OPEN_ANIMATION_CONFIG","dampingRatio","duration","overshootClamping","DEFAULT_CLOSE_ANIMATION_CONFIG","DefaultScrim","progress","style","opacity","value","absoluteFill","flex","backgroundColor","BottomSheetBase","children","detents","index","onIndexChange","position","externalPosition","openAnimationConfig","closeAnimationConfig","modal","renderScrim","height","screenHeight","insets","maxHeight","top","resolvedIndex","length","contentHeight","setContentHeight","Error","normalizedDetents","map","detent","resolved","Math","max","min","isDraggable","initialMaxSnap","translateY","animationTarget","NaN","sheetHeight","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","detentsValue","isDraggableValue","firstNonzeroDetent","find","currentIndex","internalPosition","undefined","set","scrimProgress","target","handleIndexChange","nextIndex","maxSnap","animateToIndex","targetIndex","velocity","targetTranslate","isOpening","baseConfig","springConfig","panGesture","handleSentinelLayout","event","nativeEvent","layout","y","closedIndex","indexOf","handleScrimPress","wrapperStyle","transform","isCollapsed","pointerEvents","scrimElement","sheetContent","bottom","left","right","gesture","onLayout","sheetContainer","onPress"],"sourceRoot":"../../src","sources":["BottomSheetBase.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useState","Pressable","StyleSheet","View","useWindowDimensions","Animated","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","scheduleOnUI","GestureDetector","useSafeAreaInsets","Portal","BottomSheetContextProvider","clampIndex","isDetentProgrammatic","resolveDetent","useBottomSheetPanGesture","jsx","_jsx","jsxs","_jsxs","programmatic","DEFAULT_OPEN_ANIMATION_CONFIG","dampingRatio","duration","overshootClamping","DEFAULT_CLOSE_ANIMATION_CONFIG","DefaultScrim","progress","style","opacity","value","absoluteFill","flex","backgroundColor","BottomSheetBase","children","detents","index","onIndexChange","position","externalPosition","openAnimationConfig","closeAnimationConfig","modal","renderScrim","height","screenHeight","insets","maxHeight","top","resolvedIndex","length","contentHeight","setContentHeight","Error","normalizedDetents","map","detent","resolved","Math","max","min","isDraggable","initialMaxSnap","translateY","animationTarget","NaN","sheetHeight","scrollableEntries","setScrollableEntries","isScrollableLocked","registerScrollable","entry","prev","filter","e","detentsValue","isDraggableValue","firstNonzeroDetent","find","currentIndex","internalPosition","undefined","set","scrimProgress","target","handleIndexChange","nextIndex","maxSnap","animateToIndex","targetIndex","velocity","targetTranslate","isOpening","baseConfig","springConfig","panGesture","handleSentinelLayout","event","nativeEvent","layout","y","closedIndex","indexOf","handleScrimPress","wrapperStyle","transform","isCollapsed","pointerEvents","scrimElement","sheetContent","bottom","left","right","gesture","onLayout","sheetContainer","onPress"],"sourceRoot":"../../src","sources":["BottomSheetBase.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","BottomSheetContext","BottomSheetContextProvider","Provider","useBottomSheetContext","context","Error"],"sourceRoot":"../../src","sources":["BottomSheetContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAiBjD,MAAMC,kBAAkB,gBAAGF,aAAa,CAAgC,IAAI,CAAC;AAE7E,OAAO,MAAMG,0BAA0B,GAAGD,kBAAkB,CAACE,QAAQ;AAErE,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACzC,MAAMC,OAAO,GAAGL,UAAU,CAACC,kBAAkB,CAAC;EAC9C,IAAII,OAAO,KAAK,IAAI,EAAE;IACpB,MAAM,IAAIC,KAAK,CACb,4DACF,CAAC;EACH;EACA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","BottomSheetContext","BottomSheetContextProvider","Provider","useBottomSheetContext","context","Error"],"sourceRoot":"../../src","sources":["BottomSheetContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAoBjD,MAAMC,kBAAkB,gBAAGF,aAAa,CAAgC,IAAI,CAAC;AAE7E,OAAO,MAAMG,0BAA0B,GAAGD,kBAAkB,CAACE,QAAQ;AAErE,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACzC,MAAMC,OAAO,GAAGL,UAAU,CAACC,kBAAkB,CAAC;EAC9C,IAAII,OAAO,KAAK,IAAI,EAAE;IACpB,MAAM,IAAIC,KAAK,CACb,4DACF,CAAC;EACH;EACA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -1,45 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { useImperativeHandle } from 'react';
4
- import { GestureDetector } from 'react-native-gesture-handler';
5
- import Animated, { scrollTo } from 'react-native-reanimated';
6
- import { scheduleOnUI } from 'react-native-worklets';
7
- import { useBottomSheetScrollable } from "./useBottomSheetScrollable.js";
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- export const BottomSheetFlatList = ({
10
- scrollEnabled,
11
- onScroll,
12
- ref,
13
- ...rest
14
- }) => {
15
- const {
16
- scrollHandler,
17
- scrollableRef,
18
- nativeGesture,
19
- animatedProps
20
- } = useBottomSheetScrollable(scrollEnabled, onScroll);
21
- useImperativeHandle(ref, () => ({
22
- scrollToOffset: ({
23
- offset,
24
- animated
25
- }) => {
26
- const resolvedAnimated = animated ?? true;
27
- scheduleOnUI((animatedRef, y, shouldAnimate) => {
28
- 'worklet';
29
-
30
- scrollTo(animatedRef, 0, y, shouldAnimate);
31
- }, scrollableRef, offset, resolvedAnimated);
32
- }
33
- }), [scrollableRef]);
34
- return /*#__PURE__*/_jsx(GestureDetector, {
35
- gesture: nativeGesture,
36
- children: /*#__PURE__*/_jsx(Animated.FlatList, {
37
- ...rest,
38
- animatedProps: animatedProps,
39
- ref: scrollableRef,
40
- onScroll: scrollHandler,
41
- scrollEventThrottle: 16
42
- })
43
- });
44
- };
3
+ import { FlatList } from 'react-native';
4
+ import { bottomSheetScrollable } from "./bottomSheetScrollable.js";
5
+ export const BottomSheetFlatList = bottomSheetScrollable(FlatList);
45
6
  //# sourceMappingURL=BottomSheetFlatList.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useImperativeHandle","GestureDetector","Animated","scrollTo","scheduleOnUI","useBottomSheetScrollable","jsx","_jsx","BottomSheetFlatList","scrollEnabled","onScroll","ref","rest","scrollHandler","scrollableRef","nativeGesture","animatedProps","scrollToOffset","offset","animated","resolvedAnimated","animatedRef","y","shouldAnimate","gesture","children","FlatList","scrollEventThrottle"],"sourceRoot":"../../src","sources":["BottomSheetFlatList.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,QAAkB,OAAO;AAErD,SAASC,eAAe,QAAQ,8BAA8B;AAE9D,OAAOC,QAAQ,IAAIC,QAAQ,QAAQ,yBAAyB;AAC5D,SAASC,YAAY,QAAQ,uBAAuB;AAEpD,SAASC,wBAAwB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQtE,OAAO,MAAMC,mBAAmB,GAAGA,CAAK;EACtCC,aAAa;EACbC,QAAQ;EACRC,GAAG;EACH,GAAGC;AACwB,CAAC,KAAK;EACjC,MAAM;IAAEC,aAAa;IAAEC,aAAa;IAAEC,aAAa;IAAEC;EAAc,CAAC,GAClEX,wBAAwB,CAACI,aAAa,EAAEC,QAAQ,CAAC;EAEnDV,mBAAmB,CACjBW,GAAG,EACH,OAAO;IACLM,cAAc,EAAEA,CAAC;MAAEC,MAAM;MAAEC;IAAS,CAAC,KAAK;MACxC,MAAMC,gBAAgB,GAAGD,QAAQ,IAAI,IAAI;MACzCf,YAAY,CACV,CACEiB,WAA2C,EAC3CC,CAAS,EACTC,aAAsB,KACnB;QACH,SAAS;;QACTpB,QAAQ,CAACkB,WAAW,EAAE,CAAC,EAAEC,CAAC,EAAEC,aAAa,CAAC;MAC5C,CAAC,EACDT,aAAa,EACbI,MAAM,EACNE,gBACF,CAAC;IACH;EACF,CAAC,CAAC,EACF,CAACN,aAAa,CAChB,CAAC;EAED,oBACEP,IAAA,CAACN,eAAe;IAACuB,OAAO,EAAET,aAAc;IAAAU,QAAA,eACtClB,IAAA,CAACL,QAAQ,CAACwB,QAAQ;MAAA,GACZd,IAAI;MACRI,aAAa,EAAEA,aAAc;MAC7BL,GAAG,EAAEG,aAAc;MACnBJ,QAAQ,EAAEG,aAAc;MACxBc,mBAAmB,EAAE;IAAG,CACzB;EAAC,CACa,CAAC;AAEtB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["FlatList","bottomSheetScrollable","BottomSheetFlatList"],"sourceRoot":"../../src","sources":["BottomSheetFlatList.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAgC,cAAc;AAO/D,SAASC,qBAAqB,QAAQ,4BAAyB;AAW/D,OAAO,MAAMC,mBAAmB,GAAGD,qBAAqB,CAACD,QAAQ,CAEhD","ignoreList":[]}
@@ -1,46 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { useImperativeHandle } from 'react';
4
- import { GestureDetector } from 'react-native-gesture-handler';
5
- import Animated, { scrollTo } from 'react-native-reanimated';
6
- import { scheduleOnUI } from 'react-native-worklets';
7
- import { useBottomSheetScrollable } from "./useBottomSheetScrollable.js";
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- export const BottomSheetScrollView = ({
10
- scrollEnabled,
11
- onScroll,
12
- ref,
13
- ...rest
14
- }) => {
15
- const {
16
- scrollHandler,
17
- scrollableRef,
18
- nativeGesture,
19
- animatedProps
20
- } = useBottomSheetScrollable(scrollEnabled, onScroll);
21
- useImperativeHandle(ref, () => ({
22
- scrollTo: ({
23
- x = 0,
24
- y = 0,
25
- animated
26
- }) => {
27
- const resolvedAnimated = animated ?? true;
28
- scheduleOnUI((animatedRef, xValue, yValue, shouldAnimate) => {
29
- 'worklet';
30
-
31
- scrollTo(animatedRef, xValue, yValue, shouldAnimate);
32
- }, scrollableRef, x, y, resolvedAnimated);
33
- }
34
- }), [scrollableRef]);
35
- return /*#__PURE__*/_jsx(GestureDetector, {
36
- gesture: nativeGesture,
37
- children: /*#__PURE__*/_jsx(Animated.ScrollView, {
38
- ...rest,
39
- animatedProps: animatedProps,
40
- ref: scrollableRef,
41
- onScroll: scrollHandler,
42
- scrollEventThrottle: 16
43
- })
44
- });
45
- };
3
+ import { ScrollView } from 'react-native';
4
+ import { bottomSheetScrollable } from "./bottomSheetScrollable.js";
5
+ export const BottomSheetScrollView = bottomSheetScrollable(ScrollView);
46
6
  //# sourceMappingURL=BottomSheetScrollView.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useImperativeHandle","GestureDetector","Animated","scrollTo","scheduleOnUI","useBottomSheetScrollable","jsx","_jsx","BottomSheetScrollView","scrollEnabled","onScroll","ref","rest","scrollHandler","scrollableRef","nativeGesture","animatedProps","x","y","animated","resolvedAnimated","animatedRef","xValue","yValue","shouldAnimate","gesture","children","ScrollView","scrollEventThrottle"],"sourceRoot":"../../src","sources":["BottomSheetScrollView.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,QAAkB,OAAO;AAErD,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,OAAOC,QAAQ,IAAIC,QAAQ,QAAQ,yBAAyB;AAC5D,SAASC,YAAY,QAAQ,uBAAuB;AAEpD,SAASC,wBAAwB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUtE,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC,aAAa;EACbC,QAAQ;EACRC,GAAG;EACH,GAAGC;AACuB,CAAC,KAAK;EAChC,MAAM;IAAEC,aAAa;IAAEC,aAAa;IAAEC,aAAa;IAAEC;EAAc,CAAC,GAClEX,wBAAwB,CAACI,aAAa,EAAEC,QAAQ,CAAC;EAEnDV,mBAAmB,CACjBW,GAAG,EACH,OAAO;IACLR,QAAQ,EAAEA,CAAC;MAAEc,CAAC,GAAG,CAAC;MAAEC,CAAC,GAAG,CAAC;MAAEC;IAAS,CAAC,KAAK;MACxC,MAAMC,gBAAgB,GAAGD,QAAQ,IAAI,IAAI;MACzCf,YAAY,CACV,CACEiB,WAA2C,EAC3CC,MAAc,EACdC,MAAc,EACdC,aAAsB,KACnB;QACH,SAAS;;QACTrB,QAAQ,CAACkB,WAAW,EAAEC,MAAM,EAAEC,MAAM,EAAEC,aAAa,CAAC;MACtD,CAAC,EACDV,aAAa,EACbG,CAAC,EACDC,CAAC,EACDE,gBACF,CAAC;IACH;EACF,CAAC,CAAC,EACF,CAACN,aAAa,CAChB,CAAC;EAED,oBACEP,IAAA,CAACN,eAAe;IAACwB,OAAO,EAAEV,aAAc;IAAAW,QAAA,eACtCnB,IAAA,CAACL,QAAQ,CAACyB,UAAU;MAAA,GACdf,IAAI;MACRI,aAAa,EAAEA,aAAc;MAC7BL,GAAG,EAAEG,aAAc;MACnBJ,QAAQ,EAAEG,aAAc;MACxBe,mBAAmB,EAAE;IAAG,CACzB;EAAC,CACa,CAAC;AAEtB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ScrollView","bottomSheetScrollable","BottomSheetScrollView"],"sourceRoot":"../../src","sources":["BottomSheetScrollView.tsx"],"mappings":";;AACA,SACEA,UAAU,QAGL,cAAc;AAGrB,SAASC,qBAAqB,QAAQ,4BAAyB;AAW/D,OAAO,MAAMC,qBAAqB,GAAGD,qBAAqB,CAACD,UAAU,CAEpD","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ import { useImperativeHandle } from 'react';
4
+ import { GestureDetector } from 'react-native-gesture-handler';
5
+ import Animated from 'react-native-reanimated';
6
+ import { useBottomSheetScrollable } from "./useBottomSheetScrollable.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export function bottomSheetScrollable(ScrollableComponent) {
9
+ const AnimatedComponent = Animated.createAnimatedComponent(ScrollableComponent);
10
+ return ({
11
+ scrollEnabled,
12
+ onScroll,
13
+ ref,
14
+ ...rest
15
+ }) => {
16
+ const {
17
+ scrollHandler,
18
+ scrollableRef,
19
+ nativeGesture,
20
+ animatedProps
21
+ } = useBottomSheetScrollable(scrollEnabled, onScroll);
22
+ useImperativeHandle(ref, () => scrollableRef.current, [scrollableRef]);
23
+ return /*#__PURE__*/_jsx(GestureDetector, {
24
+ gesture: nativeGesture,
25
+ children: /*#__PURE__*/_jsx(AnimatedComponent, {
26
+ ...rest,
27
+ animatedProps: animatedProps,
28
+ ref: scrollableRef,
29
+ onScroll: scrollHandler,
30
+ scrollEventThrottle: 16
31
+ })
32
+ });
33
+ };
34
+ }
35
+ //# sourceMappingURL=bottomSheetScrollable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useImperativeHandle","GestureDetector","Animated","useBottomSheetScrollable","jsx","_jsx","bottomSheetScrollable","ScrollableComponent","AnimatedComponent","createAnimatedComponent","scrollEnabled","onScroll","ref","rest","scrollHandler","scrollableRef","nativeGesture","animatedProps","current","gesture","children","scrollEventThrottle"],"sourceRoot":"../../src","sources":["bottomSheetScrollable.tsx"],"mappings":";;AAAA,SAAuCA,mBAAmB,QAAQ,OAAO;AAEzE,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,OAAOC,QAAQ,MAA4B,yBAAyB;AAEpE,SAASC,wBAAwB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtE,OAAO,SAASC,qBAAqBA,CAGnCC,mBAAqC,EAAE;EACvC,MAAMC,iBAAiB,GACrBN,QAAQ,CAACO,uBAAuB,CAACF,mBAAmB,CAAC;EAEvD,OAAO,CAAC;IACNG,aAAa;IACbC,QAAQ;IACRC,GAAG;IACH,GAAGC;EAKL,CAAC,KAAK;IACJ,MAAM;MAAEC,aAAa;MAAEC,aAAa;MAAEC,aAAa;MAAEC;IAAc,CAAC,GAClEd,wBAAwB,CAACO,aAAa,EAAEC,QAAQ,CAAC;IAEnDX,mBAAmB,CAACY,GAAG,EAAE,MAAMG,aAAa,CAACG,OAAY,EAAE,CAACH,aAAa,CAAC,CAAC;IAE3E,oBACEV,IAAA,CAACJ,eAAe;MAACkB,OAAO,EAAEH,aAAc;MAAAI,QAAA,eACtCf,IAAA,CAACG,iBAAiB;QAAA,GACXK,IAAI;QACTI,aAAa,EAAEA,aAAc;QAC7BL,GAAG,EAAEG,aAAc;QACnBJ,QAAQ,EAAEG,aAAc;QACxBO,mBAAmB,EAAE;MAAG,CACzB;IAAC,CACa,CAAC;EAEtB,CAAC;AACH","ignoreList":[]}
@@ -6,5 +6,5 @@ export { BottomSheetProvider } from "./BottomSheetProvider.js";
6
6
  export { BottomSheetFlatList } from "./BottomSheetFlatList.js";
7
7
  export { BottomSheetScrollView } from "./BottomSheetScrollView.js";
8
8
  export { programmatic } from "./BottomSheetBase.js";
9
- export { useBottomSheetScrollable } from "./useBottomSheetScrollable.js";
9
+ export { bottomSheetScrollable } from "./bottomSheetScrollable.js";
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BottomSheet","ModalBottomSheet","BottomSheetProvider","BottomSheetFlatList","BottomSheetScrollView","programmatic","useBottomSheetScrollable"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,kBAAe;AAE3C,SAASC,gBAAgB,QAAQ,uBAAoB;AAErD,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,mBAAmB,QAAQ,0BAAuB;AAK3D,SAASC,qBAAqB,QAAQ,4BAAyB;AAM/D,SAASC,YAAY,QAAQ,sBAAmB;AAChD,SAASC,wBAAwB,QAAQ,+BAA4B","ignoreList":[]}
1
+ {"version":3,"names":["BottomSheet","ModalBottomSheet","BottomSheetProvider","BottomSheetFlatList","BottomSheetScrollView","programmatic","bottomSheetScrollable"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,kBAAe;AAE3C,SAASC,gBAAgB,QAAQ,uBAAoB;AAErD,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,mBAAmB,QAAQ,0BAAuB;AAE3D,SAASC,qBAAqB,QAAQ,4BAAyB;AAG/D,SAASC,YAAY,QAAQ,sBAAmB;AAChD,SAASC,qBAAqB,QAAQ,4BAAyB","ignoreList":[]}
@@ -11,11 +11,8 @@ export const useBottomSheetPanGesture = ({
11
11
  detentsValue,
12
12
  isDraggableValue,
13
13
  currentIndex,
14
- scrollOffset,
15
- hasScrollable,
16
- isScrollableGestureActive,
14
+ scrollableEntries,
17
15
  isScrollableLocked,
18
- scrollableRef,
19
16
  handleIndexChange,
20
17
  animateToIndex
21
18
  }) => {
@@ -25,7 +22,7 @@ export const useBottomSheetPanGesture = ({
25
22
  const panStartY = useSharedValue(0);
26
23
  const panActivated = useSharedValue(false);
27
24
  const dragStartTranslateY = useSharedValue(0);
28
- const isTouchWithinScrollable = useSharedValue(false);
25
+ const activeScrollableIndex = useSharedValue(-1);
29
26
  return Gesture.Pan().manualActivation(true).onTouchesDown(event => {
30
27
  'worklet';
31
28
 
@@ -33,17 +30,22 @@ export const useBottomSheetPanGesture = ({
33
30
  isDraggingSheet.set(false);
34
31
  isDraggingFromScrollable.set(false);
35
32
  isScrollableLocked.set(false);
36
- isTouchWithinScrollable.set(false);
33
+ activeScrollableIndex.set(-1);
37
34
  const touch = event.changedTouches[0] ?? event.allTouches[0];
38
35
  if (touch !== undefined) {
39
36
  panStartX.set(touch.absoluteX);
40
37
  panStartY.set(touch.absoluteY);
41
- if (hasScrollable.value) {
42
- const layout = measure(scrollableRef);
43
- if (layout !== null) {
44
- const withinX = touch.absoluteX >= layout.pageX && touch.absoluteX <= layout.pageX + layout.width;
45
- const withinY = touch.absoluteY >= layout.pageY && touch.absoluteY <= layout.pageY + layout.height;
46
- isTouchWithinScrollable.set(withinX && withinY);
38
+ const entries = scrollableEntries;
39
+ for (let i = 0; i < entries.length; i++) {
40
+ const entry = entries[i];
41
+ if (entry === undefined) continue;
42
+ const layout = measure(entry.ref);
43
+ if (layout === null) continue;
44
+ const withinX = touch.absoluteX >= layout.pageX && touch.absoluteX <= layout.pageX + layout.width;
45
+ const withinY = touch.absoluteY >= layout.pageY && touch.absoluteY <= layout.pageY + layout.height;
46
+ if (withinX && withinY) {
47
+ activeScrollableIndex.set(i);
48
+ break;
47
49
  }
48
50
  }
49
51
  }
@@ -55,9 +57,34 @@ export const useBottomSheetPanGesture = ({
55
57
  if (!touch) return;
56
58
  const deltaX = touch.absoluteX - panStartX.value;
57
59
  const deltaY = touch.absoluteY - panStartY.value;
58
- if (hasScrollable.value && scrollOffset.value > 0 && isTouchWithinScrollable.value && translateY.value <= 0) {
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) {
59
79
  return;
60
80
  }
81
+ const activeIdx = activeScrollableIndex.value;
82
+ if (activeIdx !== -1) {
83
+ const active = scrollableEntries[activeIdx];
84
+ if (active !== undefined && active.scrollOffset.value > 0 && translateY.value <= 0) {
85
+ return;
86
+ }
87
+ }
61
88
  if (Math.abs(deltaX) > Math.abs(deltaY)) {
62
89
  stateManager.fail();
63
90
  return;
@@ -76,23 +103,27 @@ export const useBottomSheetPanGesture = ({
76
103
  }).onUpdate(event => {
77
104
  'worklet';
78
105
 
106
+ const activeIdx = activeScrollableIndex.value;
107
+ const hasActive = activeIdx !== -1;
108
+ const active = hasActive ? scrollableEntries[activeIdx] : undefined;
109
+ const activeOffset = active !== undefined ? active.scrollOffset.value : 0;
79
110
  if (isDraggingSheet.value) {
80
- if (isDraggingFromScrollable.value) {
81
- scrollTo(scrollableRef, 0, 0, false);
111
+ if (isDraggingFromScrollable.value && active !== undefined) {
112
+ scrollTo(active.ref, 0, 0, false);
82
113
  }
83
114
  } else {
84
115
  const isDraggingDown = event.translationY > 0;
85
- const canStartDrag = !hasScrollable.value || scrollOffset.value <= 0 || translateY.value > 0 || !isTouchWithinScrollable.value;
116
+ const canStartDrag = !hasActive || activeOffset <= 0 || translateY.value > 0;
86
117
  if (!canStartDrag || !isDraggingDown && translateY.value <= 0) {
87
118
  return;
88
119
  }
89
- const isScrollableActive = hasScrollable.value && isScrollableGestureActive.value;
120
+ const isScrollableActive = hasActive && active !== undefined && active.isGestureActive.value;
90
121
  isDraggingSheet.set(true);
91
- isDraggingFromScrollable.set(isScrollableActive && isTouchWithinScrollable.value && scrollOffset.value <= 0);
122
+ isDraggingFromScrollable.set(isScrollableActive && activeOffset <= 0);
92
123
  dragStartTranslateY.set(translateY.value - event.translationY);
93
- isScrollableLocked.set(hasScrollable.value);
94
- if (isTouchWithinScrollable.value && hasScrollable.value && scrollOffset.value <= 0) {
95
- scrollTo(scrollableRef, 0, 0, false);
124
+ isScrollableLocked.set(hasActive);
125
+ if (hasActive && active !== undefined && activeOffset <= 0) {
126
+ scrollTo(active.ref, 0, 0, false);
96
127
  }
97
128
  }
98
129
  const rawTranslate = dragStartTranslateY.value + event.translationY;
@@ -110,7 +141,7 @@ export const useBottomSheetPanGesture = ({
110
141
  }
111
142
  const nextTranslate = Math.min(Math.max(rawTranslate, 0), maxDraggableTranslateY);
112
143
  translateY.set(nextTranslate);
113
- if (isDraggingSheet.value && rawTranslate < 0 && isTouchWithinScrollable.value && hasScrollable.value) {
144
+ if (isDraggingSheet.value && rawTranslate < 0 && hasActive) {
114
145
  isDraggingSheet.set(false);
115
146
  isScrollableLocked.set(false);
116
147
  let targetSnapIndex = -1;
@@ -1 +1 @@
1
- {"version":3,"names":["Gesture","scheduleOnRN","measure","scrollTo","useSharedValue","findSnapTarget","useBottomSheetPanGesture","animationTarget","translateY","sheetHeight","detentsValue","isDraggableValue","currentIndex","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","handleIndexChange","animateToIndex","isDraggingSheet","isDraggingFromScrollable","panStartX","panStartY","panActivated","dragStartTranslateY","isTouchWithinScrollable","Pan","manualActivation","onTouchesDown","event","set","touch","changedTouches","allTouches","undefined","absoluteX","absoluteY","value","layout","withinX","pageX","width","withinY","pageY","height","onTouchesMove","stateManager","deltaX","deltaY","Math","abs","fail","activate","onBegin","NaN","onUpdate","isDraggingDown","translationY","canStartDrag","isScrollableActive","rawTranslate","resolvedDetents","draggable","maxDraggableTranslateY","foundDraggable","i","length","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
+ {"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":[]}
@@ -3,17 +3,17 @@
3
3
  import { useEffect } from 'react';
4
4
  import { Gesture } from 'react-native-gesture-handler';
5
5
  import { isWorkletFunction, scheduleOnRN } from 'react-native-worklets';
6
- import { useAnimatedProps, useAnimatedScrollHandler } from 'react-native-reanimated';
6
+ import { useAnimatedProps, useAnimatedRef, useAnimatedScrollHandler, useSharedValue } from 'react-native-reanimated';
7
7
  import { useBottomSheetContext } from "./BottomSheetContext.js";
8
8
  export const useBottomSheetScrollable = (baseScrollEnabled = true, onScroll) => {
9
9
  const {
10
- scrollOffset,
11
- scrollableRef,
12
- hasScrollable,
13
- isScrollableGestureActive,
14
10
  isScrollableLocked,
11
+ registerScrollable,
15
12
  panGesture
16
13
  } = useBottomSheetContext();
14
+ const scrollableRef = useAnimatedRef();
15
+ const scrollOffset = useSharedValue(0);
16
+ const isGestureActive = useSharedValue(false);
17
17
  const isWorkletScrollHandler = onScroll !== undefined ? isWorkletFunction(onScroll) : false;
18
18
  const scrollHandler = useAnimatedScrollHandler({
19
19
  onScroll: event => {
@@ -31,11 +31,11 @@ export const useBottomSheetScrollable = (baseScrollEnabled = true, onScroll) =>
31
31
  const nativeGesture = Gesture.Native().simultaneousWithExternalGesture(panGesture).onStart(() => {
32
32
  'worklet';
33
33
 
34
- isScrollableGestureActive.set(true);
34
+ isGestureActive.set(true);
35
35
  }).onFinalize(() => {
36
36
  'worklet';
37
37
 
38
- isScrollableGestureActive.set(false);
38
+ isGestureActive.set(false);
39
39
  });
40
40
  const animatedProps = useAnimatedProps(() => {
41
41
  const resolvedScrollEnabled = (typeof baseScrollEnabled === 'object' && baseScrollEnabled !== null ? baseScrollEnabled.value : baseScrollEnabled) ?? true;
@@ -44,16 +44,13 @@ export const useBottomSheetScrollable = (baseScrollEnabled = true, onScroll) =>
44
44
  };
45
45
  });
46
46
  useEffect(() => {
47
- if (__DEV__ && hasScrollable.value) {
48
- console.warn('Multiple scrollables within a single bottom sheet. Only one `BottomSheetScrollView` ' + 'or `BottomSheetFlatList` is supported per bottom sheet.');
49
- }
50
- hasScrollable.set(true);
51
- return () => {
52
- hasScrollable.set(false);
53
- isScrollableGestureActive.set(false);
54
- isScrollableLocked.set(false);
55
- };
56
- }, [hasScrollable, isScrollableGestureActive, isScrollableLocked]);
47
+ const unregister = registerScrollable({
48
+ ref: scrollableRef,
49
+ scrollOffset,
50
+ isGestureActive
51
+ });
52
+ return unregister;
53
+ }, [registerScrollable, scrollableRef, scrollOffset, isGestureActive]);
57
54
  return {
58
55
  scrollHandler,
59
56
  scrollableRef,
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","Gesture","isWorkletFunction","scheduleOnRN","useAnimatedProps","useAnimatedScrollHandler","useBottomSheetContext","useBottomSheetScrollable","baseScrollEnabled","onScroll","scrollOffset","scrollableRef","hasScrollable","isScrollableGestureActive","isScrollableLocked","panGesture","isWorkletScrollHandler","undefined","scrollHandler","event","set","Math","max","contentOffset","y","nativeGesture","Native","simultaneousWithExternalGesture","onStart","onFinalize","animatedProps","resolvedScrollEnabled","value","scrollEnabled","__DEV__","console","warn"],"sourceRoot":"../../src","sources":["useBottomSheetScrollable.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,OAAO,QAAQ,8BAA8B;AAEtD,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,uBAAuB;AACvE,SAEEC,gBAAgB,EAChBC,wBAAwB,QACnB,yBAAyB;AAEhC,SAASC,qBAAqB,QAAQ,yBAAsB;AAI5D,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,iBAA6D,GAAG,IAAI,EACpEC,QAAwB,KACrB;EACH,MAAM;IACJC,YAAY;IACZC,aAAa;IACbC,aAAa;IACbC,yBAAyB;IACzBC,kBAAkB;IAClBC;EACF,CAAC,GAAGT,qBAAqB,CAAC,CAAC;EAC3B,MAAMU,sBAAsB,GAC1BP,QAAQ,KAAKQ,SAAS,GAAGf,iBAAiB,CAACO,QAAQ,CAAC,GAAG,KAAK;EAC9D,MAAMS,aAAa,GAAGb,wBAAwB,CAAC;IAC7CI,QAAQ,EAAGU,KAAK,IAAK;MACnB,SAAS;;MACTT,YAAY,CAACU,GAAG,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,KAAK,CAACI,aAAa,CAACC,CAAC,CAAC,CAAC;MACpD,IAAIf,QAAQ,KAAKQ,SAAS,EAAE;MAC5B,IAAID,sBAAsB,EAAE;QAC1BP,QAAQ,CAACU,KAAK,CAAC;QACf;MACF;MACAhB,YAAY,CAACM,QAAQ,EAAEU,KAAK,CAAC;IAC/B;EACF,CAAC,CAAC;EACF,MAAMM,aAAa,GAAGxB,OAAO,CAACyB,MAAM,CAAC,CAAC,CACnCC,+BAA+B,CAACZ,UAAU,CAAC,CAC3Ca,OAAO,CAAC,MAAM;IACb,SAAS;;IACTf,yBAAyB,CAACO,GAAG,CAAC,IAAI,CAAC;EACrC,CAAC,CAAC,CACDS,UAAU,CAAC,MAAM;IAChB,SAAS;;IACThB,yBAAyB,CAACO,GAAG,CAAC,KAAK,CAAC;EACtC,CAAC,CAAC;EACJ,MAAMU,aAAa,GAAG1B,gBAAgB,CAAC,MAAM;IAC3C,MAAM2B,qBAAqB,GACzB,CAAC,OAAOvB,iBAAiB,KAAK,QAAQ,IAAIA,iBAAiB,KAAK,IAAI,GAChEA,iBAAiB,CAACwB,KAAK,GACvBxB,iBAAiB,KAAK,IAAI;IAChC,OAAO;MACLyB,aAAa,EAAEF,qBAAqB,IAAI,CAACjB,kBAAkB,CAACkB;IAC9D,CAAC;EACH,CAAC,CAAC;EACFhC,SAAS,CAAC,MAAM;IACd,IAAIkC,OAAO,IAAItB,aAAa,CAACoB,KAAK,EAAE;MAClCG,OAAO,CAACC,IAAI,CACV,sFAAsF,GACpF,yDACJ,CAAC;IACH;IACAxB,aAAa,CAACQ,GAAG,CAAC,IAAI,CAAC;IACvB,OAAO,MAAM;MACXR,aAAa,CAACQ,GAAG,CAAC,KAAK,CAAC;MACxBP,yBAAyB,CAACO,GAAG,CAAC,KAAK,CAAC;MACpCN,kBAAkB,CAACM,GAAG,CAAC,KAAK,CAAC;IAC/B,CAAC;EACH,CAAC,EAAE,CAACR,aAAa,EAAEC,yBAAyB,EAAEC,kBAAkB,CAAC,CAAC;EAClE,OAAO;IAAEI,aAAa;IAAEP,aAAa;IAAEc,aAAa;IAAEK;EAAc,CAAC;AACvE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","Gesture","isWorkletFunction","scheduleOnRN","useAnimatedProps","useAnimatedRef","useAnimatedScrollHandler","useSharedValue","useBottomSheetContext","useBottomSheetScrollable","baseScrollEnabled","onScroll","isScrollableLocked","registerScrollable","panGesture","scrollableRef","scrollOffset","isGestureActive","isWorkletScrollHandler","undefined","scrollHandler","event","set","Math","max","contentOffset","y","nativeGesture","Native","simultaneousWithExternalGesture","onStart","onFinalize","animatedProps","resolvedScrollEnabled","value","scrollEnabled","unregister","ref"],"sourceRoot":"../../src","sources":["useBottomSheetScrollable.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,OAAO,QAAQ,8BAA8B;AAEtD,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,uBAAuB;AACvE,SAEEC,gBAAgB,EAChBC,cAAc,EACdC,wBAAwB,EACxBC,cAAc,QACT,yBAAyB;AAEhC,SAASC,qBAAqB,QAAQ,yBAAsB;AAI5D,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,iBAA6D,GAAG,IAAI,EACpEC,QAAwB,KACrB;EACH,MAAM;IAAEC,kBAAkB;IAAEC,kBAAkB;IAAEC;EAAW,CAAC,GAC1DN,qBAAqB,CAAC,CAAC;EACzB,MAAMO,aAAa,GAAGV,cAAc,CAAC,CAAC;EACtC,MAAMW,YAAY,GAAGT,cAAc,CAAC,CAAC,CAAC;EACtC,MAAMU,eAAe,GAAGV,cAAc,CAAC,KAAK,CAAC;EAC7C,MAAMW,sBAAsB,GAC1BP,QAAQ,KAAKQ,SAAS,GAAGjB,iBAAiB,CAACS,QAAQ,CAAC,GAAG,KAAK;EAC9D,MAAMS,aAAa,GAAGd,wBAAwB,CAAC;IAC7CK,QAAQ,EAAGU,KAAK,IAAK;MACnB,SAAS;;MACTL,YAAY,CAACM,GAAG,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,KAAK,CAACI,aAAa,CAACC,CAAC,CAAC,CAAC;MACpD,IAAIf,QAAQ,KAAKQ,SAAS,EAAE;MAC5B,IAAID,sBAAsB,EAAE;QAC1BP,QAAQ,CAACU,KAAK,CAAC;QACf;MACF;MACAlB,YAAY,CAACQ,QAAQ,EAAEU,KAAK,CAAC;IAC/B;EACF,CAAC,CAAC;EACF,MAAMM,aAAa,GAAG1B,OAAO,CAAC2B,MAAM,CAAC,CAAC,CACnCC,+BAA+B,CAACf,UAAU,CAAC,CAC3CgB,OAAO,CAAC,MAAM;IACb,SAAS;;IACTb,eAAe,CAACK,GAAG,CAAC,IAAI,CAAC;EAC3B,CAAC,CAAC,CACDS,UAAU,CAAC,MAAM;IAChB,SAAS;;IACTd,eAAe,CAACK,GAAG,CAAC,KAAK,CAAC;EAC5B,CAAC,CAAC;EACJ,MAAMU,aAAa,GAAG5B,gBAAgB,CAAC,MAAM;IAC3C,MAAM6B,qBAAqB,GACzB,CAAC,OAAOvB,iBAAiB,KAAK,QAAQ,IAAIA,iBAAiB,KAAK,IAAI,GAChEA,iBAAiB,CAACwB,KAAK,GACvBxB,iBAAiB,KAAK,IAAI;IAChC,OAAO;MACLyB,aAAa,EAAEF,qBAAqB,IAAI,CAACrB,kBAAkB,CAACsB;IAC9D,CAAC;EACH,CAAC,CAAC;EACFlC,SAAS,CAAC,MAAM;IACd,MAAMoC,UAAU,GAAGvB,kBAAkB,CAAC;MACpCwB,GAAG,EAAEtB,aAAa;MAClBC,YAAY;MACZC;IACF,CAAC,CAAC;IACF,OAAOmB,UAAU;EACnB,CAAC,EAAE,CAACvB,kBAAkB,EAAEE,aAAa,EAAEC,YAAY,EAAEC,eAAe,CAAC,CAAC;EACtE,OAAO;IAAEG,aAAa;IAAEL,aAAa;IAAEY,aAAa;IAAEK;EAAc,CAAC;AACvE,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetBase.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAmB7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;CAC5D;AA2BD,eAAO,MAAM,eAAe,GAAI,yIAU7B,oBAAoB,4CAmMtB,CAAC"}
1
+ {"version":3,"file":"BottomSheetBase.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAqB7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;CAC5D;AA2BD,eAAO,MAAM,eAAe,GAAI,yIAU7B,oBAAoB,4CAmMtB,CAAC"}