@swmansion/react-native-bottom-sheet 0.1.0 → 0.2.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 +175 -0
- package/lib/module/BottomSheetBase.js +6 -4
- package/lib/module/BottomSheetBase.js.map +1 -1
- package/lib/module/BottomSheetFlatList.js +6 -6
- package/lib/module/BottomSheetFlatList.js.map +1 -1
- package/lib/module/BottomSheetScrollView.js +6 -6
- package/lib/module/BottomSheetScrollView.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/useBottomSheetScrollable.js +9 -1
- package/lib/module/useBottomSheetScrollable.js.map +1 -1
- package/lib/typescript/src/BottomSheetBase.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetFlatList.d.ts +5 -1
- package/lib/typescript/src/BottomSheetFlatList.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetScrollView.d.ts +5 -2
- package/lib/typescript/src/BottomSheetScrollView.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetScrollable.d.ts +4 -1
- package/lib/typescript/src/useBottomSheetScrollable.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/BottomSheetBase.tsx +8 -4
- package/src/BottomSheetFlatList.tsx +12 -5
- package/src/BottomSheetScrollView.tsx +12 -6
- package/src/index.tsx +2 -0
- package/src/useBottomSheetScrollable.ts +14 -1
package/README.md
CHANGED
|
@@ -1,3 +1,178 @@
|
|
|
1
1
|
# React Native Bottom Sheet
|
|
2
2
|
|
|
3
3
|

|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
React Native Bottom Sheet provides bottom‍-‍sheet components for
|
|
8
|
+
React Native.
|
|
9
|
+
|
|
10
|
+
## Getting started
|
|
11
|
+
|
|
12
|
+
1. Install React Native Bottom Sheet:
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
npm i @swmansion/react-native-bottom-sheet
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
2. Ensure the peer dependencies are installed:
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
npm i react-native-gesture-handler@^2.14.0 react-native-reanimated@^3.16.0 react-native-safe-area-context@^4.0.0 react-native-worklets@^0.4.0
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
3. Wrap your app with `GestureHandlerRootView` and `BottomSheetProvider`:
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
const App = () => (
|
|
28
|
+
<GestureHandlerRootView>
|
|
29
|
+
<BottomSheetProvider>{/* ... */}</BottomSheetProvider>
|
|
30
|
+
</GestureHandlerRootView>
|
|
31
|
+
);
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
The library provides two components: `BottomSheet` (inline) and
|
|
37
|
+
`ModalBottomSheet` (modal). Both render their children as the sheet content
|
|
38
|
+
(including any background) and are controlled via `detents`, `index`,
|
|
39
|
+
and `onIndexChange`.
|
|
40
|
+
|
|
41
|
+
### Inline
|
|
42
|
+
|
|
43
|
+
`BottomSheet` renders within your screen layout.
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
const [index, setIndex] = useState(0);
|
|
47
|
+
const insets = useSafeAreaInsets();
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```tsx
|
|
51
|
+
<BottomSheet index={index} onIndexChange={setIndex}>
|
|
52
|
+
<View
|
|
53
|
+
style={{
|
|
54
|
+
backgroundColor: 'white',
|
|
55
|
+
padding: 16,
|
|
56
|
+
paddingBottom: insets.bottom + 16,
|
|
57
|
+
}}
|
|
58
|
+
>
|
|
59
|
+
<Text>Sheet content</Text>
|
|
60
|
+
</View>
|
|
61
|
+
</BottomSheet>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Modal
|
|
65
|
+
|
|
66
|
+
`ModalBottomSheet` renders above other content with a scrim.
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
const [index, setIndex] = useState(0);
|
|
70
|
+
const insets = useSafeAreaInsets();
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
<ModalBottomSheet index={index} onIndexChange={setIndex}>
|
|
75
|
+
<View
|
|
76
|
+
style={{
|
|
77
|
+
backgroundColor: 'white',
|
|
78
|
+
padding: 16,
|
|
79
|
+
paddingBottom: insets.bottom + 16,
|
|
80
|
+
}}
|
|
81
|
+
>
|
|
82
|
+
<Text>Sheet content</Text>
|
|
83
|
+
</View>
|
|
84
|
+
</ModalBottomSheet>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### Scrim
|
|
88
|
+
|
|
89
|
+
Tapping the scrim collapses the sheet. You can provide a custom scrim via the
|
|
90
|
+
`scrim` prop, which receives a `SharedValue` that goes from 0 when collapsed to
|
|
91
|
+
1 when the first nonzero detent is reached:
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
<ModalBottomSheet
|
|
95
|
+
index={index}
|
|
96
|
+
onIndexChange={setIndex}
|
|
97
|
+
scrim={(progress) => (
|
|
98
|
+
<Animated.View
|
|
99
|
+
style={useAnimatedStyle(() => ({
|
|
100
|
+
backgroundColor: `rgba(0, 0, 255, ${0.3 * progress.value})`,
|
|
101
|
+
flex: 1,
|
|
102
|
+
}))}
|
|
103
|
+
/>
|
|
104
|
+
)}
|
|
105
|
+
>
|
|
106
|
+
{/* ... */}
|
|
107
|
+
</ModalBottomSheet>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Detents and index
|
|
111
|
+
|
|
112
|
+
Detents are the points to which the sheet snaps. Each detent is either a number
|
|
113
|
+
(a fixed height in pixels) or `'max'` (the sheet’s content height, capped by the
|
|
114
|
+
available screen height). The default detents are `[0, 'max']`.
|
|
115
|
+
|
|
116
|
+
The `index` prop is a zero‍-‍based index into the `detents` array.
|
|
117
|
+
`onIndexChange` is called when the sheet snaps to a different detent after
|
|
118
|
+
a drag. You can also control the sheet externally by updating the index
|
|
119
|
+
state.
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
const [index, setIndex] = useState(0);
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
<BottomSheet // Or `ModalBottomSheet`.
|
|
127
|
+
detents={[0, 300, 'max']} // Collapsed, 300 px, content height.
|
|
128
|
+
index={index}
|
|
129
|
+
onIndexChange={setIndex}
|
|
130
|
+
>
|
|
131
|
+
{/* ... */}
|
|
132
|
+
</BottomSheet>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Position tracking
|
|
136
|
+
|
|
137
|
+
The `position` prop accepts a `SharedValue` that the library keeps in sync with
|
|
138
|
+
the sheet’s current position (the distance in pixels from the bottom of the
|
|
139
|
+
screen to the top of the sheet). Use it to drive animations tied to the
|
|
140
|
+
sheet position.
|
|
141
|
+
|
|
142
|
+
```tsx
|
|
143
|
+
const position = useSharedValue(0);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
```tsx
|
|
147
|
+
<BottomSheet // Or `ModalBottomSheet`.
|
|
148
|
+
index={index}
|
|
149
|
+
onIndexChange={setIndex}
|
|
150
|
+
position={position}
|
|
151
|
+
>
|
|
152
|
+
{/* ... */}
|
|
153
|
+
</BottomSheet>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Customizing animations
|
|
157
|
+
|
|
158
|
+
Use the `openAnimationConfig` and `closeAnimationConfig` props to tweak the
|
|
159
|
+
spring parameters for opening and closing.
|
|
160
|
+
|
|
161
|
+
### Scrollable content
|
|
162
|
+
|
|
163
|
+
For scrollable sheet content, use `BottomSheetScrollView` or
|
|
164
|
+
`BottomSheetFlatList` instead of the standard React Native components. These
|
|
165
|
+
integrate scrolling with the sheet’s drag gesture so that dragging down while
|
|
166
|
+
scrolled to the top collapses the sheet.
|
|
167
|
+
|
|
168
|
+
## By [Software Mansion](https://swmansion.com)
|
|
169
|
+
|
|
170
|
+
Founded in 2012, [Software Mansion](https://swmansion.com) is a software agency
|
|
171
|
+
with experience in building web and mobile apps. We are core React Native
|
|
172
|
+
contributors and experts in dealing with all kinds of React Native issues. We
|
|
173
|
+
can help you build your next dream
|
|
174
|
+
product‍—‍[hire us](https://swmansion.com/contact/projects?utm_source=react-native-bottom-sheet&utm_medium=readme).
|
|
175
|
+
|
|
176
|
+
[](https://swmansion.com)
|
|
177
|
+
|
|
178
|
+
[](https://github.com/software-mansion-labs/react-native-bottom-sheet/graphs/contributors)
|
|
@@ -85,15 +85,16 @@ export const BottomSheetBase = ({
|
|
|
85
85
|
const dragStartTranslateY = useSharedValue(0);
|
|
86
86
|
const isTouchWithinScrollable = useSharedValue(false);
|
|
87
87
|
const detentsValue = useSharedValue(normalizedDetents);
|
|
88
|
+
const firstNonzeroDetent = useSharedValue(normalizedDetents.find(d => d > 0) ?? 0);
|
|
88
89
|
const currentIndex = useSharedValue(resolvedIndex);
|
|
89
90
|
const internalPosition = useDerivedValue(() => Math.max(0, sheetHeight.value - translateY.value));
|
|
90
91
|
useAnimatedReaction(() => internalPosition.value, value => {
|
|
91
92
|
if (externalPosition !== undefined) externalPosition.set(value);
|
|
92
93
|
});
|
|
93
94
|
const scrimProgress = useDerivedValue(() => {
|
|
94
|
-
const
|
|
95
|
-
if (
|
|
96
|
-
const progress = internalPosition.value /
|
|
95
|
+
const target = firstNonzeroDetent.value;
|
|
96
|
+
if (target <= 0) return 0;
|
|
97
|
+
const progress = internalPosition.value / target;
|
|
97
98
|
return Math.min(1, Math.max(0, progress));
|
|
98
99
|
});
|
|
99
100
|
const handleIndexChange = nextIndex => {
|
|
@@ -103,7 +104,8 @@ export const BottomSheetBase = ({
|
|
|
103
104
|
const maxSnap = Math.max(0, ...normalizedDetents);
|
|
104
105
|
detentsValue.set(normalizedDetents);
|
|
105
106
|
sheetHeight.set(maxSnap);
|
|
106
|
-
|
|
107
|
+
firstNonzeroDetent.set(normalizedDetents.find(d => d > 0) ?? 0);
|
|
108
|
+
}, [normalizedDetents, sheetHeight, detentsValue, firstNonzeroDetent]);
|
|
107
109
|
const animateToIndex = useCallback((targetIndex, velocity) => {
|
|
108
110
|
'worklet';
|
|
109
111
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","Pressable","StyleSheet","View","useWindowDimensions","Animated","measure","scrollTo","useAnimatedRef","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","scheduleOnRN","scheduleOnUI","Gesture","GestureDetector","useSafeAreaInsets","Portal","BottomSheetContextProvider","jsx","_jsx","jsxs","_jsxs","DEFAULT_OPEN_ANIMATION_CONFIG","dampingRatio","duration","overshootClamping","DEFAULT_CLOSE_ANIMATION_CONFIG","VELOCITY_THRESHOLD","resolveDetent","detent","contentHeight","maxHeight","Math","min","Error","clampIndex","index","detentCount","max","DefaultScrim","progress","style","opacity","value","absoluteFill","flex","backgroundColor","BottomSheetBase","children","detents","onIndexChange","position","externalPosition","openAnimationConfig","closeAnimationConfig","modal","renderScrim","height","screenHeight","insets","top","resolvedIndex","length","setContentHeight","normalizedDetents","map","point","resolved","initialMaxSnap","translateY","animationTarget","NaN","sheetHeight","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","isDraggingSheet","isDraggingFromScrollable","panStartY","panActivated","dragStartTranslateY","isTouchWithinScrollable","detentsValue","currentIndex","internalPosition","undefined","set","scrimProgress","maxSnap","handleIndexChange","nextIndex","animateToIndex","targetIndex","velocity","targetTranslate","isOpening","baseConfig","springConfig","panGesture","Pan","manualActivation","onTouchesDown","event","touch","changedTouches","allTouches","absoluteY","layout","withinX","absoluteX","pageX","width","withinY","pageY","onTouchesMove","stateManager","deltaY","activate","onBegin","onUpdate","nextTranslate","translationY","isDraggingDown","canStartDrag","isScrollableActive","onEnd","wasDragging","allPositions","snapIndex","currentTranslate","velocityY","minDistance","Infinity","pos","distance","abs","lower","filter","sort","a","b","upper","hasIndexChanged","shouldApplyVelocity","Number","isFinite","handleSentinelLayout","nativeEvent","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","measure","scrollTo","useAnimatedRef","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","scheduleOnRN","scheduleOnUI","Gesture","GestureDetector","useSafeAreaInsets","Portal","BottomSheetContextProvider","jsx","_jsx","jsxs","_jsxs","DEFAULT_OPEN_ANIMATION_CONFIG","dampingRatio","duration","overshootClamping","DEFAULT_CLOSE_ANIMATION_CONFIG","VELOCITY_THRESHOLD","resolveDetent","detent","contentHeight","maxHeight","Math","min","Error","clampIndex","index","detentCount","max","DefaultScrim","progress","style","opacity","value","absoluteFill","flex","backgroundColor","BottomSheetBase","children","detents","onIndexChange","position","externalPosition","openAnimationConfig","closeAnimationConfig","modal","renderScrim","height","screenHeight","insets","top","resolvedIndex","length","setContentHeight","normalizedDetents","map","point","resolved","initialMaxSnap","translateY","animationTarget","NaN","sheetHeight","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","isDraggingSheet","isDraggingFromScrollable","panStartY","panActivated","dragStartTranslateY","isTouchWithinScrollable","detentsValue","firstNonzeroDetent","find","d","currentIndex","internalPosition","undefined","set","scrimProgress","target","handleIndexChange","nextIndex","maxSnap","animateToIndex","targetIndex","velocity","targetTranslate","isOpening","baseConfig","springConfig","panGesture","Pan","manualActivation","onTouchesDown","event","touch","changedTouches","allTouches","absoluteY","layout","withinX","absoluteX","pageX","width","withinY","pageY","onTouchesMove","stateManager","deltaY","activate","onBegin","onUpdate","nextTranslate","translationY","isDraggingDown","canStartDrag","isScrollableActive","onEnd","wasDragging","allPositions","snapIndex","currentTranslate","velocityY","minDistance","Infinity","pos","distance","abs","lower","filter","sort","a","b","upper","hasIndexChanged","shouldApplyVelocity","Number","isFinite","handleSentinelLayout","nativeEvent","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":[]}
|
|
@@ -4,17 +4,17 @@ import { GestureDetector } from 'react-native-gesture-handler';
|
|
|
4
4
|
import Animated from 'react-native-reanimated';
|
|
5
5
|
import { useBottomSheetScrollable } from "./useBottomSheetScrollable.js";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
export const BottomSheetFlatList =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
export const BottomSheetFlatList = ({
|
|
8
|
+
scrollEnabled,
|
|
9
|
+
onScroll,
|
|
10
|
+
...rest
|
|
11
|
+
}) => {
|
|
12
12
|
const {
|
|
13
13
|
scrollHandler,
|
|
14
14
|
scrollableRef,
|
|
15
15
|
nativeGesture,
|
|
16
16
|
animatedProps
|
|
17
|
-
} = useBottomSheetScrollable(scrollEnabled);
|
|
17
|
+
} = useBottomSheetScrollable(scrollEnabled, onScroll);
|
|
18
18
|
return /*#__PURE__*/_jsx(GestureDetector, {
|
|
19
19
|
gesture: nativeGesture,
|
|
20
20
|
children: /*#__PURE__*/_jsx(Animated.FlatList, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GestureDetector","Animated","useBottomSheetScrollable","jsx","_jsx","BottomSheetFlatList","
|
|
1
|
+
{"version":3,"names":["GestureDetector","Animated","useBottomSheetScrollable","jsx","_jsx","BottomSheetFlatList","scrollEnabled","onScroll","rest","scrollHandler","scrollableRef","nativeGesture","animatedProps","gesture","children","FlatList","ref","scrollEventThrottle"],"sourceRoot":"../../src","sources":["BottomSheetFlatList.tsx"],"mappings":";;AACA,SAASA,eAAe,QAAQ,8BAA8B;AAE9D,OAAOC,QAAQ,MAAM,yBAAyB;AAE9C,SAASC,wBAAwB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOtE,OAAO,MAAMC,mBAAmB,GAAGA,CAAK;EACtCC,aAAa;EACbC,QAAQ;EACR,GAAGC;AACwB,CAAC,KAAK;EACjC,MAAM;IAAEC,aAAa;IAAEC,aAAa;IAAEC,aAAa;IAAEC;EAAc,CAAC,GAClEV,wBAAwB,CAACI,aAAa,EAAEC,QAAQ,CAAC;EACnD,oBACEH,IAAA,CAACJ,eAAe;IAACa,OAAO,EAAEF,aAAc;IAAAG,QAAA,eACtCV,IAAA,CAACH,QAAQ,CAACc,QAAQ;MAAA,GACZP,IAAI;MACRI,aAAa,EAAEA,aAAc;MAC7BI,GAAG,EAAEN,aAAc;MACnBH,QAAQ,EAAEE,aAAc;MACxBQ,mBAAmB,EAAE;IAAG,CACzB;EAAC,CACa,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -4,17 +4,17 @@ import { GestureDetector } from 'react-native-gesture-handler';
|
|
|
4
4
|
import Animated from 'react-native-reanimated';
|
|
5
5
|
import { useBottomSheetScrollable } from "./useBottomSheetScrollable.js";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
export const BottomSheetScrollView =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
export const BottomSheetScrollView = ({
|
|
8
|
+
scrollEnabled,
|
|
9
|
+
onScroll,
|
|
10
|
+
...rest
|
|
11
|
+
}) => {
|
|
12
12
|
const {
|
|
13
13
|
scrollHandler,
|
|
14
14
|
scrollableRef,
|
|
15
15
|
nativeGesture,
|
|
16
16
|
animatedProps
|
|
17
|
-
} = useBottomSheetScrollable(scrollEnabled);
|
|
17
|
+
} = useBottomSheetScrollable(scrollEnabled, onScroll);
|
|
18
18
|
return /*#__PURE__*/_jsx(GestureDetector, {
|
|
19
19
|
gesture: nativeGesture,
|
|
20
20
|
children: /*#__PURE__*/_jsx(Animated.ScrollView, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GestureDetector","Animated","useBottomSheetScrollable","jsx","_jsx","BottomSheetScrollView","
|
|
1
|
+
{"version":3,"names":["GestureDetector","Animated","useBottomSheetScrollable","jsx","_jsx","BottomSheetScrollView","scrollEnabled","onScroll","rest","scrollHandler","scrollableRef","nativeGesture","animatedProps","gesture","children","ScrollView","ref","scrollEventThrottle"],"sourceRoot":"../../src","sources":["BottomSheetScrollView.tsx"],"mappings":";;AACA,SAASA,eAAe,QAAQ,8BAA8B;AAC9D,OAAOC,QAAQ,MAAM,yBAAyB;AAE9C,SAASC,wBAAwB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOtE,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC,aAAa;EACbC,QAAQ;EACR,GAAGC;AACuB,CAAC,KAAK;EAChC,MAAM;IAAEC,aAAa;IAAEC,aAAa;IAAEC,aAAa;IAAEC;EAAc,CAAC,GAClEV,wBAAwB,CAACI,aAAa,EAAEC,QAAQ,CAAC;EACnD,oBACEH,IAAA,CAACJ,eAAe;IAACa,OAAO,EAAEF,aAAc;IAAAG,QAAA,eACtCV,IAAA,CAACH,QAAQ,CAACc,UAAU;MAAA,GACdP,IAAI;MACRI,aAAa,EAAEA,aAAc;MAC7BI,GAAG,EAAEN,aAAc;MACnBH,QAAQ,EAAEE,aAAc;MACxBQ,mBAAmB,EAAE;IAAG,CACzB;EAAC,CACa,CAAC;AAEtB,CAAC","ignoreList":[]}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BottomSheet","ModalBottomSheet","BottomSheetProvider","BottomSheetFlatList","BottomSheetScrollView"],"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;
|
|
1
|
+
{"version":3,"names":["BottomSheet","ModalBottomSheet","BottomSheetProvider","BottomSheetFlatList","BottomSheetScrollView"],"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","ignoreList":[]}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { useEffect } from 'react';
|
|
4
4
|
import { Gesture } from 'react-native-gesture-handler';
|
|
5
|
+
import { isWorkletFunction, scheduleOnRN } from 'react-native-worklets';
|
|
5
6
|
import { useAnimatedProps, useAnimatedScrollHandler } from 'react-native-reanimated';
|
|
6
7
|
import { useBottomSheetContext } from "./BottomSheetContext.js";
|
|
7
|
-
export const useBottomSheetScrollable = (baseScrollEnabled = true) => {
|
|
8
|
+
export const useBottomSheetScrollable = (baseScrollEnabled = true, onScroll) => {
|
|
8
9
|
const {
|
|
9
10
|
scrollOffset,
|
|
10
11
|
scrollableRef,
|
|
@@ -13,11 +14,18 @@ export const useBottomSheetScrollable = (baseScrollEnabled = true) => {
|
|
|
13
14
|
isScrollableLocked,
|
|
14
15
|
panGesture
|
|
15
16
|
} = useBottomSheetContext();
|
|
17
|
+
const isWorkletScrollHandler = onScroll !== undefined ? isWorkletFunction(onScroll) : false;
|
|
16
18
|
const scrollHandler = useAnimatedScrollHandler({
|
|
17
19
|
onScroll: event => {
|
|
18
20
|
'worklet';
|
|
19
21
|
|
|
20
22
|
scrollOffset.set(Math.max(0, event.contentOffset.y));
|
|
23
|
+
if (onScroll === undefined) return;
|
|
24
|
+
if (isWorkletScrollHandler) {
|
|
25
|
+
onScroll(event);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
scheduleOnRN(onScroll, event);
|
|
21
29
|
}
|
|
22
30
|
});
|
|
23
31
|
const nativeGesture = Gesture.Native().simultaneousWithExternalGesture(panGesture).onStart(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","Gesture","useAnimatedProps","useAnimatedScrollHandler","useBottomSheetContext","useBottomSheetScrollable","baseScrollEnabled","scrollOffset","scrollableRef","hasScrollable","isScrollableGestureActive","isScrollableLocked","panGesture","
|
|
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,OAAOvB,iBAAiB,KAAK,QAAQ,IAAIA,iBAAiB,KAAK,IAAI,GAC/DA,iBAAiB,CAACwB,KAAK,IAAI,IAAI,GAC/BxB,iBAAiB,IAAI,IAAI;IAC/B,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 +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;AAiB7E,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpC,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;AA8CD,eAAO,MAAM,eAAe,GAAI,yIAU7B,oBAAoB,
|
|
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;AAiB7E,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpC,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;AA8CD,eAAO,MAAM,eAAe,GAAI,yIAU7B,oBAAoB,4CAiStB,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { NativeScrollEvent } from 'react-native';
|
|
1
2
|
import type { FlatListPropsWithLayout } from 'react-native-reanimated';
|
|
2
|
-
export
|
|
3
|
+
export interface BottomSheetFlatListProps<T> extends Omit<FlatListPropsWithLayout<T>, 'onScroll'> {
|
|
4
|
+
onScroll?: (event: NativeScrollEvent) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const BottomSheetFlatList: <T>({ scrollEnabled, onScroll, ...rest }: BottomSheetFlatListProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
3
7
|
//# sourceMappingURL=BottomSheetFlatList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetFlatList.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetFlatList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BottomSheetFlatList.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetFlatList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAKvE,MAAM,WAAW,wBAAwB,CAAC,CAAC,CACzC,SAAQ,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IACpD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAG,sCAIrC,wBAAwB,CAAC,CAAC,CAAC,4CAc7B,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import type { ScrollViewProps } from 'react-native';
|
|
2
|
-
export
|
|
1
|
+
import type { NativeScrollEvent, ScrollViewProps } from 'react-native';
|
|
2
|
+
export interface BottomSheetScrollViewProps extends Omit<ScrollViewProps, 'onScroll'> {
|
|
3
|
+
onScroll?: (event: NativeScrollEvent) => void;
|
|
4
|
+
}
|
|
5
|
+
export declare const BottomSheetScrollView: ({ scrollEnabled, onScroll, ...rest }: BottomSheetScrollViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
6
|
//# sourceMappingURL=BottomSheetScrollView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetScrollView.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomSheetScrollView.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAMvE,MAAM,WAAW,0BACf,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,qBAAqB,GAAI,sCAInC,0BAA0B,4CAc5B,CAAC"}
|
|
@@ -4,6 +4,8 @@ export { ModalBottomSheet } from './ModalBottomSheet';
|
|
|
4
4
|
export type { ModalBottomSheetProps } from './ModalBottomSheet';
|
|
5
5
|
export { BottomSheetProvider } from './BottomSheetProvider';
|
|
6
6
|
export { BottomSheetFlatList } from './BottomSheetFlatList';
|
|
7
|
+
export type { BottomSheetFlatListProps } from './BottomSheetFlatList';
|
|
7
8
|
export { BottomSheetScrollView } from './BottomSheetScrollView';
|
|
9
|
+
export type { BottomSheetScrollViewProps } from './BottomSheetScrollView';
|
|
8
10
|
export type { Detent } from './BottomSheetBase';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type { NativeScrollEvent } from 'react-native';
|
|
1
2
|
import { type SharedValue } from 'react-native-reanimated';
|
|
2
|
-
|
|
3
|
+
type ScrollHandler = (event: NativeScrollEvent) => void;
|
|
4
|
+
export declare const useBottomSheetScrollable: (baseScrollEnabled?: boolean | SharedValue<boolean | undefined>, onScroll?: ScrollHandler) => {
|
|
3
5
|
scrollHandler: import("react-native-reanimated").ScrollHandlerProcessed<Record<string, unknown>>;
|
|
4
6
|
scrollableRef: import("react-native-reanimated").AnimatedRef<any>;
|
|
5
7
|
nativeGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/nativeGesture").NativeGesture;
|
|
@@ -7,4 +9,5 @@ export declare const useBottomSheetScrollable: (baseScrollEnabled?: boolean | Sh
|
|
|
7
9
|
scrollEnabled: boolean;
|
|
8
10
|
}>;
|
|
9
11
|
};
|
|
12
|
+
export {};
|
|
10
13
|
//# sourceMappingURL=useBottomSheetScrollable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBottomSheetScrollable.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetScrollable.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AAIjC,eAAO,MAAM,wBAAwB,GACnC,oBAAmB,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS,CAAQ;;;;;;;
|
|
1
|
+
{"version":3,"file":"useBottomSheetScrollable.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetScrollable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AAIjC,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAExD,eAAO,MAAM,wBAAwB,GACnC,oBAAmB,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS,CAAQ,EACpE,WAAW,aAAa;;;;;;;CA0DzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@swmansion/react-native-bottom-sheet",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Provides bottom-sheet components for React Native.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -114,4 +114,4 @@
|
|
|
114
114
|
"trailingComma": "es5",
|
|
115
115
|
"useTabs": false
|
|
116
116
|
}
|
|
117
|
-
}
|
|
117
|
+
}
|
package/src/BottomSheetBase.tsx
CHANGED
|
@@ -119,6 +119,9 @@ export const BottomSheetBase = ({
|
|
|
119
119
|
const dragStartTranslateY = useSharedValue(0);
|
|
120
120
|
const isTouchWithinScrollable = useSharedValue(false);
|
|
121
121
|
const detentsValue = useSharedValue(normalizedDetents);
|
|
122
|
+
const firstNonzeroDetent = useSharedValue(
|
|
123
|
+
normalizedDetents.find((d) => d > 0) ?? 0
|
|
124
|
+
);
|
|
122
125
|
const currentIndex = useSharedValue(resolvedIndex);
|
|
123
126
|
const internalPosition = useDerivedValue(() =>
|
|
124
127
|
Math.max(0, sheetHeight.value - translateY.value)
|
|
@@ -130,9 +133,9 @@ export const BottomSheetBase = ({
|
|
|
130
133
|
}
|
|
131
134
|
);
|
|
132
135
|
const scrimProgress = useDerivedValue(() => {
|
|
133
|
-
const
|
|
134
|
-
if (
|
|
135
|
-
const progress = internalPosition.value /
|
|
136
|
+
const target = firstNonzeroDetent.value;
|
|
137
|
+
if (target <= 0) return 0;
|
|
138
|
+
const progress = internalPosition.value / target;
|
|
136
139
|
return Math.min(1, Math.max(0, progress));
|
|
137
140
|
});
|
|
138
141
|
const handleIndexChange = (nextIndex: number) => {
|
|
@@ -142,7 +145,8 @@ export const BottomSheetBase = ({
|
|
|
142
145
|
const maxSnap = Math.max(0, ...normalizedDetents);
|
|
143
146
|
detentsValue.set(normalizedDetents);
|
|
144
147
|
sheetHeight.set(maxSnap);
|
|
145
|
-
|
|
148
|
+
firstNonzeroDetent.set(normalizedDetents.find((d) => d > 0) ?? 0);
|
|
149
|
+
}, [normalizedDetents, sheetHeight, detentsValue, firstNonzeroDetent]);
|
|
146
150
|
const animateToIndex = useCallback(
|
|
147
151
|
(targetIndex: number, velocity?: number) => {
|
|
148
152
|
'worklet';
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
+
import type { NativeScrollEvent } from 'react-native';
|
|
1
2
|
import { GestureDetector } from 'react-native-gesture-handler';
|
|
2
3
|
import type { FlatListPropsWithLayout } from 'react-native-reanimated';
|
|
3
4
|
import Animated from 'react-native-reanimated';
|
|
4
5
|
|
|
5
6
|
import { useBottomSheetScrollable } from './useBottomSheetScrollable';
|
|
6
7
|
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
) =>
|
|
10
|
-
|
|
8
|
+
export interface BottomSheetFlatListProps<T>
|
|
9
|
+
extends Omit<FlatListPropsWithLayout<T>, 'onScroll'> {
|
|
10
|
+
onScroll?: (event: NativeScrollEvent) => void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const BottomSheetFlatList = <T,>({
|
|
14
|
+
scrollEnabled,
|
|
15
|
+
onScroll,
|
|
16
|
+
...rest
|
|
17
|
+
}: BottomSheetFlatListProps<T>) => {
|
|
11
18
|
const { scrollHandler, scrollableRef, nativeGesture, animatedProps } =
|
|
12
|
-
useBottomSheetScrollable(scrollEnabled);
|
|
19
|
+
useBottomSheetScrollable(scrollEnabled, onScroll);
|
|
13
20
|
return (
|
|
14
21
|
<GestureDetector gesture={nativeGesture}>
|
|
15
22
|
<Animated.FlatList
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import type { ScrollViewProps } from 'react-native';
|
|
1
|
+
import type { NativeScrollEvent, ScrollViewProps } from 'react-native';
|
|
2
2
|
import { GestureDetector } from 'react-native-gesture-handler';
|
|
3
3
|
import Animated from 'react-native-reanimated';
|
|
4
4
|
|
|
5
5
|
import { useBottomSheetScrollable } from './useBottomSheetScrollable';
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
) =>
|
|
10
|
-
|
|
7
|
+
export interface BottomSheetScrollViewProps
|
|
8
|
+
extends Omit<ScrollViewProps, 'onScroll'> {
|
|
9
|
+
onScroll?: (event: NativeScrollEvent) => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const BottomSheetScrollView = ({
|
|
13
|
+
scrollEnabled,
|
|
14
|
+
onScroll,
|
|
15
|
+
...rest
|
|
16
|
+
}: BottomSheetScrollViewProps) => {
|
|
11
17
|
const { scrollHandler, scrollableRef, nativeGesture, animatedProps } =
|
|
12
|
-
useBottomSheetScrollable(scrollEnabled);
|
|
18
|
+
useBottomSheetScrollable(scrollEnabled, onScroll);
|
|
13
19
|
return (
|
|
14
20
|
<GestureDetector gesture={nativeGesture}>
|
|
15
21
|
<Animated.ScrollView
|
package/src/index.tsx
CHANGED
|
@@ -4,5 +4,7 @@ export { ModalBottomSheet } from './ModalBottomSheet';
|
|
|
4
4
|
export type { ModalBottomSheetProps } from './ModalBottomSheet';
|
|
5
5
|
export { BottomSheetProvider } from './BottomSheetProvider';
|
|
6
6
|
export { BottomSheetFlatList } from './BottomSheetFlatList';
|
|
7
|
+
export type { BottomSheetFlatListProps } from './BottomSheetFlatList';
|
|
7
8
|
export { BottomSheetScrollView } from './BottomSheetScrollView';
|
|
9
|
+
export type { BottomSheetScrollViewProps } from './BottomSheetScrollView';
|
|
8
10
|
export type { Detent } from './BottomSheetBase';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
2
|
import { Gesture } from 'react-native-gesture-handler';
|
|
3
|
+
import type { NativeScrollEvent } from 'react-native';
|
|
4
|
+
import { isWorkletFunction, scheduleOnRN } from 'react-native-worklets';
|
|
3
5
|
import {
|
|
4
6
|
type SharedValue,
|
|
5
7
|
useAnimatedProps,
|
|
@@ -8,8 +10,11 @@ import {
|
|
|
8
10
|
|
|
9
11
|
import { useBottomSheetContext } from './BottomSheetContext';
|
|
10
12
|
|
|
13
|
+
type ScrollHandler = (event: NativeScrollEvent) => void;
|
|
14
|
+
|
|
11
15
|
export const useBottomSheetScrollable = (
|
|
12
|
-
baseScrollEnabled: boolean | SharedValue<boolean | undefined> = true
|
|
16
|
+
baseScrollEnabled: boolean | SharedValue<boolean | undefined> = true,
|
|
17
|
+
onScroll?: ScrollHandler
|
|
13
18
|
) => {
|
|
14
19
|
const {
|
|
15
20
|
scrollOffset,
|
|
@@ -19,10 +24,18 @@ export const useBottomSheetScrollable = (
|
|
|
19
24
|
isScrollableLocked,
|
|
20
25
|
panGesture,
|
|
21
26
|
} = useBottomSheetContext();
|
|
27
|
+
const isWorkletScrollHandler =
|
|
28
|
+
onScroll !== undefined ? isWorkletFunction(onScroll) : false;
|
|
22
29
|
const scrollHandler = useAnimatedScrollHandler({
|
|
23
30
|
onScroll: (event) => {
|
|
24
31
|
'worklet';
|
|
25
32
|
scrollOffset.set(Math.max(0, event.contentOffset.y));
|
|
33
|
+
if (onScroll === undefined) return;
|
|
34
|
+
if (isWorkletScrollHandler) {
|
|
35
|
+
onScroll(event);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
scheduleOnRN(onScroll, event);
|
|
26
39
|
},
|
|
27
40
|
});
|
|
28
41
|
const nativeGesture = Gesture.Native()
|