@swmansion/react-native-bottom-sheet 0.3.1 → 0.5.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 +28 -0
- package/lib/module/BottomSheetBase.js +28 -143
- package/lib/module/BottomSheetBase.js.map +1 -1
- package/lib/module/BottomSheetProvider.js.map +1 -1
- package/lib/module/bottomSheetUtils.js +55 -0
- package/lib/module/bottomSheetUtils.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/useBottomSheetPanGesture.js +149 -0
- package/lib/module/useBottomSheetPanGesture.js.map +1 -0
- package/lib/typescript/src/BottomSheetBase.d.ts +3 -1
- package/lib/typescript/src/BottomSheetBase.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetProvider.d.ts.map +1 -1
- package/lib/typescript/src/bottomSheetUtils.d.ts +16 -0
- package/lib/typescript/src/bottomSheetUtils.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetPanGesture.d.ts +20 -0
- package/lib/typescript/src/useBottomSheetPanGesture.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/BottomSheetBase.tsx +57 -181
- package/src/BottomSheetProvider.tsx +4 -0
- package/src/bottomSheetUtils.ts +82 -0
- package/src/index.tsx +3 -1
- package/src/useBottomSheetPanGesture.ts +208 -0
package/README.md
CHANGED
|
@@ -132,6 +132,22 @@ const [index, setIndex] = useState(0);
|
|
|
132
132
|
</BottomSheet>
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
+
#### Programmatic-only detents
|
|
136
|
+
|
|
137
|
+
If you want a detent to be reachable only via code (not by dragging), use the
|
|
138
|
+
object form or the `programmatic` helper. Programmatic detents are excluded from
|
|
139
|
+
drag snapping but can still be targeted via `index` updates.
|
|
140
|
+
|
|
141
|
+
```tsx
|
|
142
|
+
<BottomSheet
|
|
143
|
+
detents={[0, programmatic(300), 'max']}
|
|
144
|
+
index={index}
|
|
145
|
+
onIndexChange={setIndex}
|
|
146
|
+
>
|
|
147
|
+
{/* ... */}
|
|
148
|
+
</BottomSheet>
|
|
149
|
+
```
|
|
150
|
+
|
|
135
151
|
### Position tracking
|
|
136
152
|
|
|
137
153
|
The `position` prop accepts a `SharedValue` that the library keeps in sync with
|
|
@@ -165,6 +181,18 @@ For scrollable sheet content, use `BottomSheetScrollView` or
|
|
|
165
181
|
integrate scrolling with the sheet’s drag gesture so that dragging down while
|
|
166
182
|
scrolled to the top collapses the sheet.
|
|
167
183
|
|
|
184
|
+
Both components expose imperative methods on their refs:
|
|
185
|
+
|
|
186
|
+
```tsx
|
|
187
|
+
const scrollViewRef = useRef<BottomSheetScrollViewMethods>(null);
|
|
188
|
+
const listRef = useRef<BottomSheetFlatListMethods>(null);
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
```tsx
|
|
192
|
+
scrollViewRef.current?.scrollTo({ y: 0, animated: true });
|
|
193
|
+
listRef.current?.scrollToOffset({ offset: 0, animated: true });
|
|
194
|
+
```
|
|
195
|
+
|
|
168
196
|
## By [Software Mansion](https://swmansion.com)
|
|
169
197
|
|
|
170
198
|
Founded in 2012, [Software Mansion](https://swmansion.com) is a software agency
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useEffect, useState } from 'react';
|
|
4
4
|
import { Pressable, StyleSheet, View, useWindowDimensions } from 'react-native';
|
|
5
|
-
import Animated, {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import Animated, { useAnimatedRef, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
|
|
6
|
+
import { scheduleOnUI } from 'react-native-worklets';
|
|
7
|
+
import { GestureDetector } from 'react-native-gesture-handler';
|
|
8
8
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
9
9
|
import { Portal } from "./BottomSheetProvider.js";
|
|
10
10
|
import { BottomSheetContextProvider } from "./BottomSheetContext.js";
|
|
11
|
+
import { clampIndex, isDetentProgrammatic, resolveDetent } from "./bottomSheetUtils.js";
|
|
12
|
+
import { useBottomSheetPanGesture } from "./useBottomSheetPanGesture.js";
|
|
11
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
export { programmatic } from "./bottomSheetUtils.js";
|
|
12
15
|
const DEFAULT_OPEN_ANIMATION_CONFIG = {
|
|
13
16
|
dampingRatio: 1,
|
|
14
17
|
duration: 300,
|
|
@@ -19,18 +22,6 @@ const DEFAULT_CLOSE_ANIMATION_CONFIG = {
|
|
|
19
22
|
duration: 250,
|
|
20
23
|
overshootClamping: true
|
|
21
24
|
};
|
|
22
|
-
const VELOCITY_THRESHOLD = 800;
|
|
23
|
-
const resolveDetent = (detent, contentHeight, maxHeight) => {
|
|
24
|
-
if (typeof detent === 'number') return detent;
|
|
25
|
-
if (detent === 'max') {
|
|
26
|
-
return contentHeight > 0 ? Math.min(contentHeight, maxHeight) : maxHeight;
|
|
27
|
-
}
|
|
28
|
-
throw new Error(`Invalid detent: \`${detent}\`.`);
|
|
29
|
-
};
|
|
30
|
-
const clampIndex = (index, detentCount) => {
|
|
31
|
-
if (detentCount <= 0) return 0;
|
|
32
|
-
return Math.min(Math.max(index, 0), detentCount - 1);
|
|
33
|
-
};
|
|
34
25
|
const DefaultScrim = ({
|
|
35
26
|
progress
|
|
36
27
|
}) => {
|
|
@@ -65,10 +56,11 @@ export const BottomSheetBase = ({
|
|
|
65
56
|
if (detents.length === 0) {
|
|
66
57
|
throw new Error('detents must include at least one value.');
|
|
67
58
|
}
|
|
68
|
-
const normalizedDetents = detents.map(
|
|
69
|
-
const resolved = resolveDetent(
|
|
59
|
+
const normalizedDetents = detents.map(detent => {
|
|
60
|
+
const resolved = resolveDetent(detent, contentHeight, maxHeight);
|
|
70
61
|
return Math.max(0, Math.min(resolved, maxHeight));
|
|
71
62
|
});
|
|
63
|
+
const isDraggable = detents.map(detent => !isDetentProgrammatic(detent));
|
|
72
64
|
const initialMaxSnap = Math.max(0, ...normalizedDetents);
|
|
73
65
|
const translateY = useSharedValue(initialMaxSnap);
|
|
74
66
|
const animationTarget = useSharedValue(NaN);
|
|
@@ -78,14 +70,9 @@ export const BottomSheetBase = ({
|
|
|
78
70
|
const isScrollableGestureActive = useSharedValue(false);
|
|
79
71
|
const isScrollableLocked = useSharedValue(false);
|
|
80
72
|
const scrollableRef = useAnimatedRef();
|
|
81
|
-
const isDraggingSheet = useSharedValue(false);
|
|
82
|
-
const isDraggingFromScrollable = useSharedValue(false);
|
|
83
|
-
const panStartY = useSharedValue(0);
|
|
84
|
-
const panActivated = useSharedValue(false);
|
|
85
|
-
const dragStartTranslateY = useSharedValue(0);
|
|
86
|
-
const isTouchWithinScrollable = useSharedValue(false);
|
|
87
73
|
const detentsValue = useSharedValue(normalizedDetents);
|
|
88
|
-
const
|
|
74
|
+
const isDraggableValue = useSharedValue(isDraggable);
|
|
75
|
+
const firstNonzeroDetent = useSharedValue(normalizedDetents.find(detent => detent > 0) ?? 0);
|
|
89
76
|
const currentIndex = useSharedValue(resolvedIndex);
|
|
90
77
|
const internalPosition = useDerivedValue(() => Math.max(0, sheetHeight.value - translateY.value));
|
|
91
78
|
useAnimatedReaction(() => internalPosition.value, value => {
|
|
@@ -103,9 +90,10 @@ export const BottomSheetBase = ({
|
|
|
103
90
|
useEffect(() => {
|
|
104
91
|
const maxSnap = Math.max(0, ...normalizedDetents);
|
|
105
92
|
detentsValue.set(normalizedDetents);
|
|
93
|
+
isDraggableValue.set(isDraggable);
|
|
106
94
|
sheetHeight.set(maxSnap);
|
|
107
|
-
firstNonzeroDetent.set(normalizedDetents.find(
|
|
108
|
-
}, [normalizedDetents, sheetHeight, detentsValue, firstNonzeroDetent]);
|
|
95
|
+
firstNonzeroDetent.set(normalizedDetents.find(detent => detent > 0) ?? 0);
|
|
96
|
+
}, [normalizedDetents, isDraggable, sheetHeight, detentsValue, isDraggableValue, firstNonzeroDetent]);
|
|
109
97
|
const animateToIndex = useCallback((targetIndex, velocity) => {
|
|
110
98
|
'worklet';
|
|
111
99
|
|
|
@@ -128,123 +116,20 @@ export const BottomSheetBase = ({
|
|
|
128
116
|
useEffect(() => {
|
|
129
117
|
scheduleOnUI(animateToIndex, resolvedIndex);
|
|
130
118
|
}, [animateToIndex, resolvedIndex, normalizedDetents]);
|
|
131
|
-
const panGesture =
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const withinX = touch.absoluteX >= layout.pageX && touch.absoluteX <= layout.pageX + layout.width;
|
|
146
|
-
const withinY = touch.absoluteY >= layout.pageY && touch.absoluteY <= layout.pageY + layout.height;
|
|
147
|
-
isTouchWithinScrollable.set(withinX && withinY);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}).onTouchesMove((event, stateManager) => {
|
|
152
|
-
'worklet';
|
|
153
|
-
|
|
154
|
-
if (panActivated.value) return;
|
|
155
|
-
const touch = event.changedTouches[0] ?? event.allTouches[0];
|
|
156
|
-
if (!touch) return;
|
|
157
|
-
const deltaY = touch.absoluteY - panStartY.value;
|
|
158
|
-
if (hasScrollable.value && scrollOffset.value > 0 && isTouchWithinScrollable.value) {
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
if (deltaY > 0 || translateY.value > 0) {
|
|
162
|
-
panActivated.set(true);
|
|
163
|
-
stateManager.activate();
|
|
164
|
-
}
|
|
165
|
-
}).onBegin(() => {
|
|
166
|
-
'worklet';
|
|
167
|
-
|
|
168
|
-
animationTarget.set(NaN);
|
|
169
|
-
isDraggingSheet.set(false);
|
|
170
|
-
isDraggingFromScrollable.set(false);
|
|
171
|
-
dragStartTranslateY.set(translateY.value);
|
|
172
|
-
}).onUpdate(event => {
|
|
173
|
-
'worklet';
|
|
174
|
-
|
|
175
|
-
if (isDraggingSheet.value) {
|
|
176
|
-
if (isDraggingFromScrollable.value) {
|
|
177
|
-
scrollTo(scrollableRef, 0, 0, false);
|
|
178
|
-
}
|
|
179
|
-
} else {
|
|
180
|
-
const isDraggingDown = event.translationY > 0;
|
|
181
|
-
const canStartDrag = !hasScrollable.value || scrollOffset.value <= 0 || !isTouchWithinScrollable.value;
|
|
182
|
-
if (!canStartDrag || !isDraggingDown && translateY.value <= 0) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
const isScrollableActive = hasScrollable.value && isScrollableGestureActive.value;
|
|
186
|
-
isDraggingSheet.set(true);
|
|
187
|
-
isDraggingFromScrollable.set(isScrollableActive && isTouchWithinScrollable.value);
|
|
188
|
-
isScrollableLocked.set(hasScrollable.value);
|
|
189
|
-
if (isTouchWithinScrollable.value && hasScrollable.value) {
|
|
190
|
-
scrollTo(scrollableRef, 0, 0, false);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
const nextTranslate = Math.min(Math.max(dragStartTranslateY.value + event.translationY, 0), sheetHeight.value);
|
|
194
|
-
translateY.set(nextTranslate);
|
|
195
|
-
if (isDraggingSheet.value && nextTranslate <= 0 && isTouchWithinScrollable.value && hasScrollable.value) {
|
|
196
|
-
isDraggingSheet.set(false);
|
|
197
|
-
isScrollableLocked.set(false);
|
|
198
|
-
const resolvedDetents = detentsValue.value;
|
|
199
|
-
const maxSnap = sheetHeight.value;
|
|
200
|
-
for (let i = resolvedDetents.length - 1; i >= 0; i--) {
|
|
201
|
-
if (resolvedDetents[i] === maxSnap) {
|
|
202
|
-
if (i !== currentIndex.value) scheduleOnRN(handleIndexChange, i);
|
|
203
|
-
animateToIndex(i);
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}).onEnd(event => {
|
|
209
|
-
'worklet';
|
|
210
|
-
|
|
211
|
-
const wasDragging = isDraggingSheet.value;
|
|
212
|
-
isScrollableLocked.set(false);
|
|
213
|
-
isDraggingSheet.set(false);
|
|
214
|
-
animationTarget.set(NaN);
|
|
215
|
-
if (!wasDragging) {
|
|
216
|
-
animateToIndex(currentIndex.value);
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
const maxSnap = sheetHeight.value;
|
|
220
|
-
const allPositions = detentsValue.value.map((point, snapIndex) => ({
|
|
221
|
-
index: snapIndex,
|
|
222
|
-
translateY: maxSnap - point
|
|
223
|
-
}));
|
|
224
|
-
const currentTranslate = translateY.value;
|
|
225
|
-
const velocityY = event.velocityY;
|
|
226
|
-
let targetIndex = currentIndex.value;
|
|
227
|
-
let minDistance = Infinity;
|
|
228
|
-
for (const pos of allPositions) {
|
|
229
|
-
const distance = Math.abs(currentTranslate - pos.translateY);
|
|
230
|
-
if (distance < minDistance) {
|
|
231
|
-
minDistance = distance;
|
|
232
|
-
targetIndex = pos.index;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
if (Math.abs(velocityY) > VELOCITY_THRESHOLD) {
|
|
236
|
-
if (velocityY > 0) {
|
|
237
|
-
const lower = allPositions.filter(pos => pos.translateY > currentTranslate + 1).sort((a, b) => a.translateY - b.translateY)[0];
|
|
238
|
-
if (lower !== undefined) targetIndex = lower.index;
|
|
239
|
-
} else {
|
|
240
|
-
const upper = allPositions.filter(pos => pos.translateY < currentTranslate - 1).sort((a, b) => b.translateY - a.translateY)[0];
|
|
241
|
-
if (upper !== undefined) targetIndex = upper.index;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
const hasIndexChanged = targetIndex !== currentIndex.value;
|
|
245
|
-
if (hasIndexChanged) scheduleOnRN(handleIndexChange, targetIndex);
|
|
246
|
-
const shouldApplyVelocity = hasIndexChanged && Number.isFinite(velocityY);
|
|
247
|
-
animateToIndex(targetIndex, shouldApplyVelocity ? velocityY : undefined);
|
|
119
|
+
const panGesture = useBottomSheetPanGesture({
|
|
120
|
+
animationTarget,
|
|
121
|
+
translateY,
|
|
122
|
+
sheetHeight,
|
|
123
|
+
detentsValue,
|
|
124
|
+
isDraggableValue,
|
|
125
|
+
currentIndex,
|
|
126
|
+
scrollOffset,
|
|
127
|
+
hasScrollable,
|
|
128
|
+
isScrollableGestureActive,
|
|
129
|
+
isScrollableLocked,
|
|
130
|
+
scrollableRef,
|
|
131
|
+
handleIndexChange,
|
|
132
|
+
animateToIndex
|
|
248
133
|
});
|
|
249
134
|
const handleSentinelLayout = event => {
|
|
250
135
|
setContentHeight(event.nativeEvent.layout.y);
|
|
@@ -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","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","isDraggingDown","translationY","canStartDrag","isScrollableActive","nextTranslate","resolvedDetents","i","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","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 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","useEffect","useId","useReducer","useState","StyleSheet","View","jsx","_jsx","jsxs","_jsxs","PortalContext","PortalHost","context","forceRender","x","subscribe","Array","from","getPortals","entries","map","key","element","style","absoluteFill","pointerEvents","children","BottomSheetProvider","portals","Map","subscribers","Set","notify","forEach","subscriber","addPortal","set","removePortal","delete","callback","add","Provider","value","Portal","Error","id"],"sourceRoot":"../../src","sources":["BottomSheetProvider.tsx"],"mappings":";;AAAA,SACEA,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,KAAK,EACLC,UAAU,EACVC,QAAQ,QACH,OAAO;AAEd,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAShD,MAAMC,aAAa,gBAAGZ,aAAa,CAA2B,IAAI,CAAC;AAEnE,MAAMa,UAAU,GAAGA,CAAA,KAAM;EACvB,MAAMC,OAAO,GAAGb,UAAU,CAACW,aAAa,CAAE;EAC1C,MAAM,GAAGG,WAAW,CAAC,GAAGX,UAAU,CAAEY,CAAS,IAAKA,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;EAC3Dd,SAAS,CAAC,MAAM;IACd,OAAOY,OAAO,CAACG,SAAS,CAACF,WAAW,CAAC;EACvC,CAAC,EAAE,CAACD,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useEffect","useId","useReducer","useState","StyleSheet","View","jsx","_jsx","jsxs","_jsxs","PortalContext","PortalHost","context","forceRender","x","subscribe","Array","from","getPortals","entries","map","key","element","style","absoluteFill","pointerEvents","children","BottomSheetProvider","portals","Map","subscribers","Set","notify","forEach","subscriber","addPortal","set","removePortal","delete","callback","add","Provider","value","Portal","Error","id"],"sourceRoot":"../../src","sources":["BottomSheetProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const programmatic = value => ({
|
|
4
|
+
value,
|
|
5
|
+
programmatic: true
|
|
6
|
+
});
|
|
7
|
+
export const detentValue = detent => {
|
|
8
|
+
if (typeof detent === 'object' && detent !== null) return detent.value;
|
|
9
|
+
return detent;
|
|
10
|
+
};
|
|
11
|
+
export const isDetentProgrammatic = detent => {
|
|
12
|
+
if (typeof detent === 'object' && detent !== null) {
|
|
13
|
+
return detent.programmatic === true;
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
};
|
|
17
|
+
const VELOCITY_THRESHOLD = 800;
|
|
18
|
+
export const findSnapTarget = (currentTranslate, velocityY, currentIndex, allPositions) => {
|
|
19
|
+
'worklet';
|
|
20
|
+
|
|
21
|
+
const draggablePositions = allPositions.filter(position => position.isDraggable);
|
|
22
|
+
const effectivePositions = draggablePositions.length > 0 ? draggablePositions : allPositions;
|
|
23
|
+
let targetIndex = currentIndex;
|
|
24
|
+
let minDistance = Infinity;
|
|
25
|
+
for (const position of effectivePositions) {
|
|
26
|
+
const distance = Math.abs(currentTranslate - position.translateY);
|
|
27
|
+
if (distance < minDistance) {
|
|
28
|
+
minDistance = distance;
|
|
29
|
+
targetIndex = position.index;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (Math.abs(velocityY) > VELOCITY_THRESHOLD) {
|
|
33
|
+
if (velocityY > 0) {
|
|
34
|
+
const lowerPosition = effectivePositions.filter(position => position.translateY > currentTranslate + 1).sort((a, b) => a.translateY - b.translateY)[0];
|
|
35
|
+
if (lowerPosition !== undefined) targetIndex = lowerPosition.index;
|
|
36
|
+
} else {
|
|
37
|
+
const upperPosition = effectivePositions.filter(position => position.translateY < currentTranslate - 1).sort((a, b) => b.translateY - a.translateY)[0];
|
|
38
|
+
if (upperPosition !== undefined) targetIndex = upperPosition.index;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return targetIndex;
|
|
42
|
+
};
|
|
43
|
+
export const resolveDetent = (detent, contentHeight, maxHeight) => {
|
|
44
|
+
const detentValueInput = detentValue(detent);
|
|
45
|
+
if (typeof detentValueInput === 'number') return detentValueInput;
|
|
46
|
+
if (detentValueInput === 'max') {
|
|
47
|
+
return contentHeight > 0 ? Math.min(contentHeight, maxHeight) : maxHeight;
|
|
48
|
+
}
|
|
49
|
+
throw new Error(`Invalid detent: \`${detentValueInput}\`.`);
|
|
50
|
+
};
|
|
51
|
+
export const clampIndex = (index, detentCount) => {
|
|
52
|
+
if (detentCount <= 0) return 0;
|
|
53
|
+
return Math.min(Math.max(index, 0), detentCount - 1);
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=bottomSheetUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["programmatic","value","detentValue","detent","isDetentProgrammatic","VELOCITY_THRESHOLD","findSnapTarget","currentTranslate","velocityY","currentIndex","allPositions","draggablePositions","filter","position","isDraggable","effectivePositions","length","targetIndex","minDistance","Infinity","distance","Math","abs","translateY","index","lowerPosition","sort","a","b","undefined","upperPosition","resolveDetent","contentHeight","maxHeight","detentValueInput","min","Error","clampIndex","detentCount","max"],"sourceRoot":"../../src","sources":["bottomSheetUtils.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -5,4 +5,6 @@ export { ModalBottomSheet } from "./ModalBottomSheet.js";
|
|
|
5
5
|
export { BottomSheetProvider } from "./BottomSheetProvider.js";
|
|
6
6
|
export { BottomSheetFlatList } from "./BottomSheetFlatList.js";
|
|
7
7
|
export { BottomSheetScrollView } from "./BottomSheetScrollView.js";
|
|
8
|
+
export { programmatic } from "./BottomSheetBase.js";
|
|
9
|
+
export { useBottomSheetScrollable } from "./useBottomSheetScrollable.js";
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
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;AAK3D,SAASC,qBAAqB,QAAQ,4BAAyB","ignoreList":[]}
|
|
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":[]}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Gesture } from 'react-native-gesture-handler';
|
|
4
|
+
import { scheduleOnRN } from 'react-native-worklets';
|
|
5
|
+
import { measure, scrollTo, useSharedValue } from 'react-native-reanimated';
|
|
6
|
+
import { findSnapTarget } from "./bottomSheetUtils.js";
|
|
7
|
+
export const useBottomSheetPanGesture = ({
|
|
8
|
+
animationTarget,
|
|
9
|
+
translateY,
|
|
10
|
+
sheetHeight,
|
|
11
|
+
detentsValue,
|
|
12
|
+
isDraggableValue,
|
|
13
|
+
currentIndex,
|
|
14
|
+
scrollOffset,
|
|
15
|
+
hasScrollable,
|
|
16
|
+
isScrollableGestureActive,
|
|
17
|
+
isScrollableLocked,
|
|
18
|
+
scrollableRef,
|
|
19
|
+
handleIndexChange,
|
|
20
|
+
animateToIndex
|
|
21
|
+
}) => {
|
|
22
|
+
const isDraggingSheet = useSharedValue(false);
|
|
23
|
+
const isDraggingFromScrollable = useSharedValue(false);
|
|
24
|
+
const panStartY = useSharedValue(0);
|
|
25
|
+
const panActivated = useSharedValue(false);
|
|
26
|
+
const dragStartTranslateY = useSharedValue(0);
|
|
27
|
+
const isTouchWithinScrollable = useSharedValue(false);
|
|
28
|
+
return Gesture.Pan().manualActivation(true).onTouchesDown(event => {
|
|
29
|
+
'worklet';
|
|
30
|
+
|
|
31
|
+
panActivated.set(false);
|
|
32
|
+
isDraggingSheet.set(false);
|
|
33
|
+
isDraggingFromScrollable.set(false);
|
|
34
|
+
isScrollableLocked.set(false);
|
|
35
|
+
isTouchWithinScrollable.set(false);
|
|
36
|
+
const touch = event.changedTouches[0] ?? event.allTouches[0];
|
|
37
|
+
if (touch !== undefined) {
|
|
38
|
+
panStartY.set(touch.absoluteY);
|
|
39
|
+
if (hasScrollable.value) {
|
|
40
|
+
const layout = measure(scrollableRef);
|
|
41
|
+
if (layout !== null) {
|
|
42
|
+
const withinX = touch.absoluteX >= layout.pageX && touch.absoluteX <= layout.pageX + layout.width;
|
|
43
|
+
const withinY = touch.absoluteY >= layout.pageY && touch.absoluteY <= layout.pageY + layout.height;
|
|
44
|
+
isTouchWithinScrollable.set(withinX && withinY);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}).onTouchesMove((event, stateManager) => {
|
|
49
|
+
'worklet';
|
|
50
|
+
|
|
51
|
+
if (panActivated.value) return;
|
|
52
|
+
const touch = event.changedTouches[0] ?? event.allTouches[0];
|
|
53
|
+
if (!touch) return;
|
|
54
|
+
const deltaY = touch.absoluteY - panStartY.value;
|
|
55
|
+
if (hasScrollable.value && scrollOffset.value > 0 && isTouchWithinScrollable.value) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (deltaY > 0 || translateY.value > 0) {
|
|
59
|
+
panActivated.set(true);
|
|
60
|
+
stateManager.activate();
|
|
61
|
+
}
|
|
62
|
+
}).onBegin(() => {
|
|
63
|
+
'worklet';
|
|
64
|
+
|
|
65
|
+
animationTarget.set(NaN);
|
|
66
|
+
isDraggingSheet.set(false);
|
|
67
|
+
isDraggingFromScrollable.set(false);
|
|
68
|
+
dragStartTranslateY.set(translateY.value);
|
|
69
|
+
}).onUpdate(event => {
|
|
70
|
+
'worklet';
|
|
71
|
+
|
|
72
|
+
if (isDraggingSheet.value) {
|
|
73
|
+
if (isDraggingFromScrollable.value) {
|
|
74
|
+
scrollTo(scrollableRef, 0, 0, false);
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
const isDraggingDown = event.translationY > 0;
|
|
78
|
+
const canStartDrag = !hasScrollable.value || scrollOffset.value <= 0 || !isTouchWithinScrollable.value;
|
|
79
|
+
if (!canStartDrag || !isDraggingDown && translateY.value <= 0) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const isScrollableActive = hasScrollable.value && isScrollableGestureActive.value;
|
|
83
|
+
isDraggingSheet.set(true);
|
|
84
|
+
isDraggingFromScrollable.set(isScrollableActive && isTouchWithinScrollable.value);
|
|
85
|
+
dragStartTranslateY.set(translateY.value - event.translationY);
|
|
86
|
+
isScrollableLocked.set(hasScrollable.value);
|
|
87
|
+
if (isTouchWithinScrollable.value && hasScrollable.value) {
|
|
88
|
+
scrollTo(scrollableRef, 0, 0, false);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const rawTranslate = dragStartTranslateY.value + event.translationY;
|
|
92
|
+
const nextTranslate = Math.min(Math.max(rawTranslate, 0), sheetHeight.value);
|
|
93
|
+
translateY.set(nextTranslate);
|
|
94
|
+
if (isDraggingSheet.value && rawTranslate < 0 && isTouchWithinScrollable.value && hasScrollable.value) {
|
|
95
|
+
isDraggingSheet.set(false);
|
|
96
|
+
isScrollableLocked.set(false);
|
|
97
|
+
const resolvedDetentValues = detentsValue.value;
|
|
98
|
+
const draggable = isDraggableValue.value;
|
|
99
|
+
let targetSnapIndex = -1;
|
|
100
|
+
let targetSnapValue = -1;
|
|
101
|
+
for (let i = resolvedDetentValues.length - 1; i >= 0; i--) {
|
|
102
|
+
const detentValue = resolvedDetentValues[i];
|
|
103
|
+
if (detentValue !== undefined && (draggable[i] ?? true) && detentValue > targetSnapValue) {
|
|
104
|
+
targetSnapValue = detentValue;
|
|
105
|
+
targetSnapIndex = i;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (targetSnapIndex === -1) {
|
|
109
|
+
const maxSnap = sheetHeight.value;
|
|
110
|
+
for (let i = resolvedDetentValues.length - 1; i >= 0; i--) {
|
|
111
|
+
if (resolvedDetentValues[i] === maxSnap) {
|
|
112
|
+
targetSnapIndex = i;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (targetSnapIndex !== -1) {
|
|
118
|
+
if (targetSnapIndex !== currentIndex.value) {
|
|
119
|
+
scheduleOnRN(handleIndexChange, targetSnapIndex);
|
|
120
|
+
}
|
|
121
|
+
animateToIndex(targetSnapIndex);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}).onEnd(event => {
|
|
125
|
+
'worklet';
|
|
126
|
+
|
|
127
|
+
const wasDragging = isDraggingSheet.value;
|
|
128
|
+
isScrollableLocked.set(false);
|
|
129
|
+
isDraggingSheet.set(false);
|
|
130
|
+
animationTarget.set(NaN);
|
|
131
|
+
if (!wasDragging) {
|
|
132
|
+
animateToIndex(currentIndex.value);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const maxSnap = sheetHeight.value;
|
|
136
|
+
const draggable = isDraggableValue.value;
|
|
137
|
+
const allPositions = detentsValue.value.map((detentValue, snapIndex) => ({
|
|
138
|
+
index: snapIndex,
|
|
139
|
+
translateY: maxSnap - detentValue,
|
|
140
|
+
isDraggable: draggable[snapIndex] ?? true
|
|
141
|
+
}));
|
|
142
|
+
const targetIndex = findSnapTarget(translateY.value, event.velocityY, currentIndex.value, allPositions);
|
|
143
|
+
const hasIndexChanged = targetIndex !== currentIndex.value;
|
|
144
|
+
if (hasIndexChanged) scheduleOnRN(handleIndexChange, targetIndex);
|
|
145
|
+
const shouldApplyVelocity = hasIndexChanged && Number.isFinite(event.velocityY);
|
|
146
|
+
animateToIndex(targetIndex, shouldApplyVelocity ? event.velocityY : undefined);
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=useBottomSheetPanGesture.js.map
|
|
@@ -0,0 +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","panStartY","panActivated","dragStartTranslateY","isTouchWithinScrollable","Pan","manualActivation","onTouchesDown","event","set","touch","changedTouches","allTouches","undefined","absoluteY","value","layout","withinX","absoluteX","pageX","width","withinY","pageY","height","onTouchesMove","stateManager","deltaY","activate","onBegin","NaN","onUpdate","isDraggingDown","translationY","canStartDrag","isScrollableActive","rawTranslate","nextTranslate","Math","min","max","resolvedDetentValues","draggable","targetSnapIndex","targetSnapValue","i","length","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,6 +1,8 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { SharedValue, WithSpringConfig } from 'react-native-reanimated';
|
|
3
|
-
|
|
3
|
+
import type { Detent } from './bottomSheetUtils';
|
|
4
|
+
export type { Detent, DetentValue } from './bottomSheetUtils';
|
|
5
|
+
export { programmatic } from './bottomSheetUtils';
|
|
4
6
|
export interface BottomSheetCommonProps {
|
|
5
7
|
children: ReactNode;
|
|
6
8
|
detents?: Detent[];
|
|
@@ -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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetProvider.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomSheetProvider.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA0BvC,eAAO,MAAM,mBAAmB,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAgCxE,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,SAkB3D,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type DetentValue = number | 'max';
|
|
2
|
+
export type Detent = DetentValue | {
|
|
3
|
+
value: DetentValue;
|
|
4
|
+
programmatic?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const programmatic: (value: DetentValue) => Detent;
|
|
7
|
+
export declare const detentValue: (detent: Detent) => DetentValue;
|
|
8
|
+
export declare const isDetentProgrammatic: (detent: Detent) => boolean;
|
|
9
|
+
export declare const findSnapTarget: (currentTranslate: number, velocityY: number, currentIndex: number, allPositions: {
|
|
10
|
+
index: number;
|
|
11
|
+
translateY: number;
|
|
12
|
+
isDraggable: boolean;
|
|
13
|
+
}[]) => number;
|
|
14
|
+
export declare const resolveDetent: (detent: Detent, contentHeight: number, maxHeight: number) => number;
|
|
15
|
+
export declare const clampIndex: (index: number, detentCount: number) => number;
|
|
16
|
+
//# sourceMappingURL=bottomSheetUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottomSheetUtils.d.ts","sourceRoot":"","sources":["../../../src/bottomSheetUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzC,MAAM,MAAM,MAAM,GACd,WAAW,GACX;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,MAGhD,CAAC;AAEH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,WAG5C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,OAKrD,CAAC;AAIF,eAAO,MAAM,cAAc,GACzB,kBAAkB,MAAM,EACxB,WAAW,MAAM,EACjB,cAAc,MAAM,EACpB,cAAc;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAAE,WAkC5E,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,WAAW,MAAM,WAQlB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,aAAa,MAAM,WAG5D,CAAC"}
|
|
@@ -7,5 +7,7 @@ export { BottomSheetFlatList } from './BottomSheetFlatList';
|
|
|
7
7
|
export type { BottomSheetFlatListMethods, BottomSheetFlatListProps, } from './BottomSheetFlatList';
|
|
8
8
|
export { BottomSheetScrollView } from './BottomSheetScrollView';
|
|
9
9
|
export type { BottomSheetScrollViewMethods, BottomSheetScrollViewProps, } from './BottomSheetScrollView';
|
|
10
|
-
export type { Detent } from './BottomSheetBase';
|
|
10
|
+
export type { Detent, DetentValue } from './BottomSheetBase';
|
|
11
|
+
export { programmatic } from './BottomSheetBase';
|
|
12
|
+
export { useBottomSheetScrollable } from './useBottomSheetScrollable';
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|