@oxyhq/bloom 0.3.12 → 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 +133 -90
- package/lib/commonjs/bottom-sheet/index.js +341 -98
- package/lib/commonjs/bottom-sheet/index.js.map +1 -1
- package/lib/commonjs/context-menu/index.js +18 -19
- package/lib/commonjs/context-menu/index.js.map +1 -1
- package/lib/commonjs/dialog/BloomDialogProvider.js +61 -0
- package/lib/commonjs/dialog/BloomDialogProvider.js.map +1 -0
- package/lib/commonjs/dialog/BloomDialogProvider.web.js +45 -0
- package/lib/commonjs/dialog/BloomDialogProvider.web.js.map +1 -0
- package/lib/commonjs/dialog/Dialog.js +197 -100
- package/lib/commonjs/dialog/Dialog.js.map +1 -1
- package/lib/commonjs/dialog/Dialog.web.js +194 -84
- package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
- package/lib/commonjs/dialog/SheetShell.js +149 -0
- package/lib/commonjs/dialog/SheetShell.js.map +1 -0
- package/lib/commonjs/dialog/alert-store.js +116 -0
- package/lib/commonjs/dialog/alert-store.js.map +1 -0
- package/lib/commonjs/dialog/alert.js +38 -0
- package/lib/commonjs/dialog/alert.js.map +1 -0
- package/lib/commonjs/dialog/context.js +10 -2
- package/lib/commonjs/dialog/context.js.map +1 -1
- package/lib/commonjs/dialog/index.js +8 -24
- package/lib/commonjs/dialog/index.js.map +1 -1
- package/lib/commonjs/dialog/index.web.js +10 -20
- package/lib/commonjs/dialog/index.web.js.map +1 -1
- package/lib/commonjs/index.js +101 -66
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +101 -66
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/menu/index.js +21 -23
- package/lib/commonjs/menu/index.js.map +1 -1
- package/lib/commonjs/select/index.js +26 -27
- package/lib/commonjs/select/index.js.map +1 -1
- package/lib/commonjs/toast/index.js +42 -13
- package/lib/commonjs/toast/index.js.map +1 -1
- package/lib/commonjs/toast/index.web.js +19 -15
- package/lib/commonjs/toast/index.web.js.map +1 -1
- package/lib/module/bottom-sheet/index.js +341 -98
- package/lib/module/bottom-sheet/index.js.map +1 -1
- package/lib/module/context-menu/index.js +15 -16
- package/lib/module/context-menu/index.js.map +1 -1
- package/lib/module/dialog/BloomDialogProvider.js +57 -0
- package/lib/module/dialog/BloomDialogProvider.js.map +1 -0
- package/lib/module/dialog/BloomDialogProvider.web.js +41 -0
- package/lib/module/dialog/BloomDialogProvider.web.js.map +1 -0
- package/lib/module/dialog/Dialog.js +199 -87
- package/lib/module/dialog/Dialog.js.map +1 -1
- package/lib/module/dialog/Dialog.web.js +195 -70
- package/lib/module/dialog/Dialog.web.js.map +1 -1
- package/lib/module/dialog/SheetShell.js +143 -0
- package/lib/module/dialog/SheetShell.js.map +1 -0
- package/lib/module/dialog/alert-store.js +107 -0
- package/lib/module/dialog/alert-store.js.map +1 -0
- package/lib/module/dialog/alert.js +35 -0
- package/lib/module/dialog/alert.js.map +1 -0
- package/lib/module/dialog/context.js +10 -2
- package/lib/module/dialog/context.js.map +1 -1
- package/lib/module/dialog/index.js +3 -1
- package/lib/module/dialog/index.js.map +1 -1
- package/lib/module/dialog/index.web.js +9 -7
- package/lib/module/dialog/index.web.js.map +1 -1
- package/lib/module/index.js +2 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +2 -3
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/menu/index.js +11 -13
- package/lib/module/menu/index.js.map +1 -1
- package/lib/module/select/index.js +27 -28
- package/lib/module/select/index.js.map +1 -1
- package/lib/module/toast/index.js +41 -11
- package/lib/module/toast/index.js.map +1 -1
- package/lib/module/toast/index.web.js +18 -13
- package/lib/module/toast/index.web.js.map +1 -1
- package/lib/typescript/commonjs/__tests__/Dialog.test.d.ts +2 -0
- package/lib/typescript/commonjs/__tests__/Dialog.test.d.ts.map +1 -0
- package/lib/typescript/commonjs/bottom-sheet/index.d.ts +47 -1
- package/lib/typescript/commonjs/bottom-sheet/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/context-menu/index.d.ts +4 -3
- package/lib/typescript/commonjs/context-menu/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/BloomDialogProvider.d.ts +27 -0
- package/lib/typescript/commonjs/dialog/BloomDialogProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/dialog/BloomDialogProvider.web.d.ts +15 -0
- package/lib/typescript/commonjs/dialog/BloomDialogProvider.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/dialog/Dialog.d.ts +37 -10
- package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/Dialog.web.d.ts +26 -10
- package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/SheetShell.d.ts +31 -0
- package/lib/typescript/commonjs/dialog/SheetShell.d.ts.map +1 -0
- package/lib/typescript/commonjs/dialog/alert-store.d.ts +70 -0
- package/lib/typescript/commonjs/dialog/alert-store.d.ts.map +1 -0
- package/lib/typescript/commonjs/dialog/alert.d.ts +27 -0
- package/lib/typescript/commonjs/dialog/alert.d.ts.map +1 -0
- package/lib/typescript/commonjs/dialog/context.d.ts +7 -0
- package/lib/typescript/commonjs/dialog/context.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/index.d.ts +5 -2
- package/lib/typescript/commonjs/dialog/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/index.web.d.ts +5 -2
- package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/types.d.ts +70 -15
- package/lib/typescript/commonjs/dialog/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +3 -3
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +3 -3
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/menu/index.d.ts +4 -4
- package/lib/typescript/commonjs/menu/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/select/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/toast/index.d.ts +32 -3
- package/lib/typescript/commonjs/toast/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/toast/index.web.d.ts +14 -7
- package/lib/typescript/commonjs/toast/index.web.d.ts.map +1 -1
- package/lib/typescript/module/__tests__/Dialog.test.d.ts +2 -0
- package/lib/typescript/module/__tests__/Dialog.test.d.ts.map +1 -0
- package/lib/typescript/module/bottom-sheet/index.d.ts +47 -1
- package/lib/typescript/module/bottom-sheet/index.d.ts.map +1 -1
- package/lib/typescript/module/context-menu/index.d.ts +4 -3
- package/lib/typescript/module/context-menu/index.d.ts.map +1 -1
- package/lib/typescript/module/dialog/BloomDialogProvider.d.ts +27 -0
- package/lib/typescript/module/dialog/BloomDialogProvider.d.ts.map +1 -0
- package/lib/typescript/module/dialog/BloomDialogProvider.web.d.ts +15 -0
- package/lib/typescript/module/dialog/BloomDialogProvider.web.d.ts.map +1 -0
- package/lib/typescript/module/dialog/Dialog.d.ts +37 -10
- package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
- package/lib/typescript/module/dialog/Dialog.web.d.ts +26 -10
- package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
- package/lib/typescript/module/dialog/SheetShell.d.ts +31 -0
- package/lib/typescript/module/dialog/SheetShell.d.ts.map +1 -0
- package/lib/typescript/module/dialog/alert-store.d.ts +70 -0
- package/lib/typescript/module/dialog/alert-store.d.ts.map +1 -0
- package/lib/typescript/module/dialog/alert.d.ts +27 -0
- package/lib/typescript/module/dialog/alert.d.ts.map +1 -0
- package/lib/typescript/module/dialog/context.d.ts +7 -0
- package/lib/typescript/module/dialog/context.d.ts.map +1 -1
- package/lib/typescript/module/dialog/index.d.ts +5 -2
- package/lib/typescript/module/dialog/index.d.ts.map +1 -1
- package/lib/typescript/module/dialog/index.web.d.ts +5 -2
- package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
- package/lib/typescript/module/dialog/types.d.ts +70 -15
- package/lib/typescript/module/dialog/types.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +3 -3
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +3 -3
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/menu/index.d.ts +4 -4
- package/lib/typescript/module/menu/index.d.ts.map +1 -1
- package/lib/typescript/module/select/index.d.ts.map +1 -1
- package/lib/typescript/module/toast/index.d.ts +32 -3
- package/lib/typescript/module/toast/index.d.ts.map +1 -1
- package/lib/typescript/module/toast/index.web.d.ts +14 -7
- package/lib/typescript/module/toast/index.web.d.ts.map +1 -1
- package/package.json +3 -14
- package/src/__tests__/BottomSheet.test.tsx +149 -2
- package/src/__tests__/Dialog.test.tsx +177 -0
- package/src/bottom-sheet/index.tsx +367 -83
- package/src/context-menu/index.tsx +12 -12
- package/src/dialog/BloomDialogProvider.tsx +61 -0
- package/src/dialog/BloomDialogProvider.web.tsx +46 -0
- package/src/dialog/Dialog.tsx +217 -64
- package/src/dialog/Dialog.web.tsx +240 -75
- package/src/dialog/SheetShell.tsx +154 -0
- package/src/dialog/alert-store.ts +126 -0
- package/src/dialog/alert.ts +42 -0
- package/src/dialog/context.ts +14 -3
- package/src/dialog/index.ts +14 -2
- package/src/dialog/index.web.ts +20 -8
- package/src/dialog/types.ts +73 -16
- package/src/index.ts +17 -3
- package/src/index.web.ts +17 -3
- package/src/menu/index.tsx +13 -17
- package/src/select/index.tsx +30 -30
- package/src/toast/index.tsx +55 -11
- package/src/toast/index.web.tsx +33 -13
- package/lib/commonjs/prompt/Prompt.js +0 -267
- package/lib/commonjs/prompt/Prompt.js.map +0 -1
- package/lib/commonjs/prompt/index.js +0 -61
- package/lib/commonjs/prompt/index.js.map +0 -1
- package/lib/module/prompt/Prompt.js +0 -250
- package/lib/module/prompt/Prompt.js.map +0 -1
- package/lib/module/prompt/index.js +0 -4
- package/lib/module/prompt/index.js.map +0 -1
- package/lib/typescript/commonjs/prompt/Prompt.d.ts +0 -42
- package/lib/typescript/commonjs/prompt/Prompt.d.ts.map +0 -1
- package/lib/typescript/commonjs/prompt/index.d.ts +0 -3
- package/lib/typescript/commonjs/prompt/index.d.ts.map +0 -1
- package/lib/typescript/module/prompt/Prompt.d.ts +0 -42
- package/lib/typescript/module/prompt/Prompt.d.ts.map +0 -1
- package/lib/typescript/module/prompt/index.d.ts +0 -3
- package/lib/typescript/module/prompt/index.d.ts.map +0 -1
- package/src/prompt/Prompt.tsx +0 -247
- package/src/prompt/index.ts +0 -13
|
@@ -50,7 +50,11 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
50
50
|
onDismissAttempt,
|
|
51
51
|
detached = false,
|
|
52
52
|
showHandle = true,
|
|
53
|
-
backdropOpacity = 0.5
|
|
53
|
+
backdropOpacity = 0.5,
|
|
54
|
+
scrollable = true,
|
|
55
|
+
manualActivation = false,
|
|
56
|
+
dynamicBackdrop = false,
|
|
57
|
+
handleComponent
|
|
54
58
|
} = props;
|
|
55
59
|
const insets = useSafeAreaInsets();
|
|
56
60
|
const theme = useTheme();
|
|
@@ -65,6 +69,16 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
65
69
|
const closeTimeoutRef = useRef(null);
|
|
66
70
|
const hasClosedRef = useRef(false);
|
|
67
71
|
const scrollViewRef = useRef(null);
|
|
72
|
+
/**
|
|
73
|
+
* Monotonically increasing counter that identifies "the current close
|
|
74
|
+
* attempt". Bumped every time the sheet re-opens (`present()`), so any
|
|
75
|
+
* in-flight `withTiming` completion callback or fallback timer from a
|
|
76
|
+
* PREVIOUS close cycle becomes a no-op. Without this guard, a stale
|
|
77
|
+
* `runOnJS(finishClose)` from an aborted close would fire `onDismiss`
|
|
78
|
+
* and unmount the sheet immediately after the user opens it again,
|
|
79
|
+
* causing "tap to open does nothing" reports in production.
|
|
80
|
+
*/
|
|
81
|
+
const closeGenerationRef = useRef(0);
|
|
68
82
|
const screenHeightSV = useSharedValue(screenHeight);
|
|
69
83
|
// Keep shared value in sync when screen dimensions change (rotation/resize)
|
|
70
84
|
useEffect(() => {
|
|
@@ -79,6 +93,21 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
79
93
|
const context = useSharedValue({
|
|
80
94
|
y: 0
|
|
81
95
|
});
|
|
96
|
+
// Mirror of `closeGenerationRef` for worklet access. Bumped from the JS
|
|
97
|
+
// thread in lockstep with the ref so gesture worklets always see the
|
|
98
|
+
// current generation when they snapshot it on `onEnd`.
|
|
99
|
+
const closeGeneration = useSharedValue(0);
|
|
100
|
+
// Used by `manualActivation` body pan to track the touch's initial Y so
|
|
101
|
+
// it can compute downward distance for the activation decision.
|
|
102
|
+
const touchStartY = useSharedValue(0);
|
|
103
|
+
|
|
104
|
+
// Refs used to mark the handle pan and the body pan as mutually
|
|
105
|
+
// simultaneous (manualActivation mode only). Without this RNGH treats them
|
|
106
|
+
// as racing gestures and a touch that begins in the handle area could be
|
|
107
|
+
// claimed by whichever recognizer activates first — leading to
|
|
108
|
+
// inconsistent drag start.
|
|
109
|
+
const bodyPanRef = useRef(undefined);
|
|
110
|
+
const handlePanRef = useRef(undefined);
|
|
82
111
|
useKeyboardHandler({
|
|
83
112
|
onMove: e => {
|
|
84
113
|
'worklet';
|
|
@@ -112,7 +141,20 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
112
141
|
useEffect(() => {
|
|
113
142
|
renderedRef.current = rendered;
|
|
114
143
|
}, [rendered]);
|
|
115
|
-
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Commit a close. Two guards prevent stale callbacks from firing:
|
|
147
|
+
* 1. `hasClosedRef` — protects against the fallback timer AND the
|
|
148
|
+
* animation callback both racing to call us within a single close
|
|
149
|
+
* cycle.
|
|
150
|
+
* 2. `generation` — protects against a callback from a PREVIOUS close
|
|
151
|
+
* cycle firing AFTER the user reopened. If the live generation has
|
|
152
|
+
* advanced past the one captured when the close started, this
|
|
153
|
+
* callback is from a cycle that the user has implicitly cancelled
|
|
154
|
+
* by reopening — silently drop it.
|
|
155
|
+
*/
|
|
156
|
+
const finishClose = useCallback(generation => {
|
|
157
|
+
if (closeGenerationRef.current !== generation) return;
|
|
116
158
|
if (hasClosedRef.current) return;
|
|
117
159
|
hasClosedRef.current = true;
|
|
118
160
|
safeClose();
|
|
@@ -125,16 +167,25 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
125
167
|
closeTimeoutRef.current = null;
|
|
126
168
|
}
|
|
127
169
|
hasClosedRef.current = false;
|
|
170
|
+
// Bump generation: any pending close-completion callback from a
|
|
171
|
+
// prior cycle (animation or fallback timer) will now no-op when
|
|
172
|
+
// it eventually fires, because its captured generation is stale.
|
|
173
|
+
closeGenerationRef.current += 1;
|
|
174
|
+
closeGeneration.value = closeGenerationRef.current;
|
|
128
175
|
opacity.value = withTiming(1, {
|
|
129
176
|
duration: 250
|
|
130
177
|
});
|
|
131
178
|
translateY.value = withSpring(0, SPRING_CONFIG);
|
|
132
179
|
} else if (rendered) {
|
|
180
|
+
// Capture the generation for THIS close cycle so the animation
|
|
181
|
+
// callback (running on the UI thread, scheduled back to JS) and
|
|
182
|
+
// the fallback timer agree on which cycle they belong to.
|
|
183
|
+
const generation = closeGenerationRef.current;
|
|
133
184
|
opacity.value = withTiming(0, {
|
|
134
185
|
duration: 250
|
|
135
186
|
}, finished => {
|
|
136
187
|
if (finished) {
|
|
137
|
-
runOnJS(finishClose)();
|
|
188
|
+
runOnJS(finishClose)(generation);
|
|
138
189
|
}
|
|
139
190
|
});
|
|
140
191
|
translateY.value = withSpring(screenHeight, {
|
|
@@ -142,21 +193,22 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
142
193
|
stiffness: 250
|
|
143
194
|
});
|
|
144
195
|
|
|
145
|
-
// Fallback timer to ensure close completes (especially on web
|
|
196
|
+
// Fallback timer to ensure close completes (especially on web
|
|
197
|
+
// where reanimated callbacks occasionally drop on tab blur).
|
|
146
198
|
if (closeTimeoutRef.current) {
|
|
147
199
|
clearTimeout(closeTimeoutRef.current);
|
|
148
200
|
}
|
|
149
201
|
closeTimeoutRef.current = setTimeout(() => {
|
|
150
|
-
finishClose();
|
|
202
|
+
finishClose(generation);
|
|
151
203
|
closeTimeoutRef.current = null;
|
|
152
204
|
}, 300);
|
|
153
205
|
}
|
|
154
|
-
}, [visible, rendered, finishClose]);
|
|
206
|
+
}, [visible, rendered, finishClose, screenHeight, closeGeneration, opacity, translateY]);
|
|
155
207
|
|
|
156
208
|
// On unmount: ensure pending close callbacks (e.g. consumer's `onDismiss`)
|
|
157
209
|
// still fire if the BS is yanked mid-animation by a parent re-render.
|
|
158
|
-
// Without this, `Dialog
|
|
159
|
-
// callbacks
|
|
210
|
+
// Without this, `Dialog`'s `handleDismiss` never runs and queued
|
|
211
|
+
// callbacks (post-close handlers) are silently lost.
|
|
160
212
|
// Only fires when the sheet was actually rendered (open or closing) to
|
|
161
213
|
// avoid spuriously calling onDismiss on bare unmount of a never-opened
|
|
162
214
|
// sheet. Refs are read inside the cleanup, so latest values are captured.
|
|
@@ -203,79 +255,216 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
203
255
|
}), [present, dismiss, scrollTo]);
|
|
204
256
|
const nativeGesture = useMemo(() => Gesture.Native(), []);
|
|
205
257
|
|
|
206
|
-
//
|
|
207
|
-
//
|
|
208
|
-
|
|
209
|
-
|
|
258
|
+
// Body pan — two strategies, switched by `manualActivation`.
|
|
259
|
+
//
|
|
260
|
+
// (1) Legacy mode (`manualActivation: false`, the bloom 0.3.x default):
|
|
261
|
+
// Pan is always active. We snapshot the scroll offset at `onStart`
|
|
262
|
+
// and gate movement on `scrollOffsetY <= 8` during the gesture.
|
|
263
|
+
// This is what current bloom consumers expect.
|
|
264
|
+
//
|
|
265
|
+
// (2) gorhom-style mode (`manualActivation: true`):
|
|
266
|
+
// Pan uses `manualActivation(true)` and only flips to active when
|
|
267
|
+
// the inner ScrollView is at the top AND the user has moved their
|
|
268
|
+
// finger downward > 8dp. In every other case it fails, so the
|
|
269
|
+
// ScrollView keeps full ownership of the touch. This is the only
|
|
270
|
+
// RNGH 2.x pattern that does not steal vertical events from the
|
|
271
|
+
// inner scroller on Android. Required for FileManagement /
|
|
272
|
+
// PhotoPicker style sheets.
|
|
273
|
+
const panGesture = useMemo(() => {
|
|
274
|
+
if (manualActivation) {
|
|
275
|
+
return Gesture.Pan().enabled(enablePanDownToClose).withRef(bodyPanRef).manualActivation(true).simultaneousWithExternalGesture(scrollViewRef, handlePanRef).onTouchesDown(e => {
|
|
276
|
+
'worklet';
|
|
210
277
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
278
|
+
const t = e.changedTouches[0];
|
|
279
|
+
if (t) touchStartY.value = t.absoluteY;
|
|
280
|
+
context.value = {
|
|
281
|
+
y: translateY.value
|
|
282
|
+
};
|
|
283
|
+
}).onTouchesMove((e, state) => {
|
|
284
|
+
'worklet';
|
|
217
285
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
} else {
|
|
233
|
-
// In normal mode, prevent overdrag - clamp to 0
|
|
234
|
-
translateY.value = 0;
|
|
235
|
-
}
|
|
236
|
-
}).onEnd(event => {
|
|
237
|
-
'worklet';
|
|
286
|
+
const t = e.changedTouches[0];
|
|
287
|
+
if (!t) return;
|
|
288
|
+
const dy = t.absoluteY - touchStartY.value;
|
|
289
|
+
const atTop = scrollOffsetY.value <= 4;
|
|
290
|
+
// Activate only when (at scroll top) AND (finger has moved
|
|
291
|
+
// downward by > 8dp). Any other motion: fail so the
|
|
292
|
+
// ScrollView claims the gesture.
|
|
293
|
+
if (atTop && dy > 8) {
|
|
294
|
+
state.activate();
|
|
295
|
+
} else if (dy < -4 || !atTop) {
|
|
296
|
+
state.fail();
|
|
297
|
+
}
|
|
298
|
+
}).onUpdate(event => {
|
|
299
|
+
'worklet';
|
|
238
300
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
velocity
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
301
|
+
if (event.translationY < 0) return;
|
|
302
|
+
const newTranslateY = context.value.y + event.translationY;
|
|
303
|
+
if (newTranslateY >= 0) {
|
|
304
|
+
translateY.value = newTranslateY;
|
|
305
|
+
}
|
|
306
|
+
}).onEnd(event => {
|
|
307
|
+
'worklet';
|
|
308
|
+
|
|
309
|
+
const velocity = event.velocityY;
|
|
310
|
+
const distance = translateY.value;
|
|
311
|
+
const closeThreshold = Math.max(140, screenHeightSV.value * 0.25);
|
|
312
|
+
const fastSwipeThreshold = 900;
|
|
313
|
+
const shouldClose = velocity > fastSwipeThreshold || distance > closeThreshold && velocity > -300;
|
|
314
|
+
if (shouldClose) {
|
|
315
|
+
// Snapshot the generation on the UI thread at the
|
|
316
|
+
// moment the close gesture commits. The completion
|
|
317
|
+
// callback only fires `finishClose` if no reopen
|
|
318
|
+
// bumped the generation in between.
|
|
319
|
+
const generation = closeGeneration.value;
|
|
320
|
+
translateY.value = withSpring(screenHeightSV.value, {
|
|
321
|
+
...SPRING_CONFIG,
|
|
322
|
+
velocity
|
|
323
|
+
});
|
|
324
|
+
opacity.value = withTiming(0, {
|
|
325
|
+
duration: 250
|
|
326
|
+
}, finished => {
|
|
327
|
+
if (finished) runOnJS(finishClose)(generation);
|
|
328
|
+
});
|
|
329
|
+
} else {
|
|
330
|
+
translateY.value = withSpring(0, {
|
|
331
|
+
...SPRING_CONFIG,
|
|
332
|
+
velocity
|
|
333
|
+
});
|
|
258
334
|
}
|
|
259
|
-
});
|
|
260
|
-
} else {
|
|
261
|
-
translateY.value = withSpring(0, {
|
|
262
|
-
...SPRING_CONFIG,
|
|
263
|
-
velocity: velocity
|
|
264
335
|
});
|
|
265
336
|
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
337
|
+
|
|
338
|
+
// Legacy always-active pan (bloom 0.3.x behaviour).
|
|
339
|
+
return Gesture.Pan().enabled(enablePanDownToClose).simultaneousWithExternalGesture(nativeGesture).onStart(() => {
|
|
340
|
+
'worklet';
|
|
341
|
+
|
|
342
|
+
context.value = {
|
|
343
|
+
y: translateY.value
|
|
344
|
+
};
|
|
345
|
+
allowPanClose.value = scrollOffsetY.value <= 8;
|
|
346
|
+
}).onUpdate(event => {
|
|
347
|
+
'worklet';
|
|
348
|
+
|
|
349
|
+
if (!allowPanClose.value) {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
const newTranslateY = context.value.y + event.translationY;
|
|
353
|
+
// If user is scrolling down while content isn't at (or near) the top, let ScrollView handle it
|
|
354
|
+
const atTopOrNearTop = scrollOffsetY.value <= 8; // slightly larger tolerance for smoother handoff
|
|
355
|
+
if (event.translationY > 0 && !atTopOrNearTop) {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
if (newTranslateY >= 0) {
|
|
359
|
+
translateY.value = newTranslateY;
|
|
360
|
+
} else if (detached) {
|
|
361
|
+
// Only allow overdrag (pulling up beyond top) when detached
|
|
362
|
+
translateY.value = newTranslateY * 0.3;
|
|
363
|
+
} else {
|
|
364
|
+
// In normal mode, prevent overdrag - clamp to 0
|
|
365
|
+
translateY.value = 0;
|
|
366
|
+
}
|
|
367
|
+
}).onEnd(event => {
|
|
368
|
+
'worklet';
|
|
369
|
+
|
|
370
|
+
if (!allowPanClose.value) {
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
const velocity = event.velocityY;
|
|
374
|
+
const distance = translateY.value;
|
|
375
|
+
// Require a deeper pull to close (more like native bottom sheets)
|
|
376
|
+
const closeThreshold = Math.max(140, screenHeightSV.value * 0.25);
|
|
377
|
+
const fastSwipeThreshold = 900;
|
|
378
|
+
const shouldClose = velocity > fastSwipeThreshold || distance > closeThreshold && velocity > -300;
|
|
379
|
+
if (shouldClose) {
|
|
380
|
+
const generation = closeGeneration.value;
|
|
381
|
+
translateY.value = withSpring(screenHeightSV.value, {
|
|
382
|
+
...SPRING_CONFIG,
|
|
383
|
+
velocity: velocity
|
|
384
|
+
});
|
|
385
|
+
opacity.value = withTiming(0, {
|
|
386
|
+
duration: 250
|
|
387
|
+
}, finished => {
|
|
388
|
+
if (finished) {
|
|
389
|
+
runOnJS(finishClose)(generation);
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
} else {
|
|
393
|
+
translateY.value = withSpring(0, {
|
|
394
|
+
...SPRING_CONFIG,
|
|
395
|
+
velocity: velocity
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
});
|
|
399
|
+
// Shared values are stable refs; the listed deps are the only JS-side
|
|
400
|
+
// values that change the gesture's behavior. `finishClose` is stable
|
|
401
|
+
// (useCallback with stable deps).
|
|
402
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
403
|
+
}, [enablePanDownToClose, detached, manualActivation, nativeGesture, finishClose]);
|
|
404
|
+
|
|
405
|
+
// Dedicated handle pan — only built in `manualActivation` mode. Always
|
|
406
|
+
// active so users can drag the handle even while content is mid-scroll.
|
|
407
|
+
// In legacy mode the body pan already wraps the whole sheet (handle
|
|
408
|
+
// included), so no separate gesture is needed.
|
|
409
|
+
const handlePanGesture = useMemo(() => {
|
|
410
|
+
if (!manualActivation) return undefined;
|
|
411
|
+
return Gesture.Pan().enabled(enablePanDownToClose && enableHandlePanningGesture).withRef(handlePanRef).simultaneousWithExternalGesture(bodyPanRef).activeOffsetY([-8, 8]).onStart(() => {
|
|
412
|
+
'worklet';
|
|
413
|
+
|
|
414
|
+
context.value = {
|
|
415
|
+
y: translateY.value
|
|
416
|
+
};
|
|
417
|
+
}).onUpdate(event => {
|
|
418
|
+
'worklet';
|
|
419
|
+
|
|
420
|
+
const newTranslateY = context.value.y + event.translationY;
|
|
421
|
+
if (newTranslateY >= 0) {
|
|
422
|
+
translateY.value = newTranslateY;
|
|
423
|
+
} else if (detached) {
|
|
424
|
+
translateY.value = newTranslateY * 0.3;
|
|
425
|
+
} else {
|
|
426
|
+
translateY.value = 0;
|
|
427
|
+
}
|
|
428
|
+
}).onEnd(event => {
|
|
429
|
+
'worklet';
|
|
430
|
+
|
|
431
|
+
const velocity = event.velocityY;
|
|
432
|
+
const distance = translateY.value;
|
|
433
|
+
const closeThreshold = Math.max(140, screenHeightSV.value * 0.25);
|
|
434
|
+
const fastSwipeThreshold = 900;
|
|
435
|
+
const shouldClose = velocity > fastSwipeThreshold || distance > closeThreshold && velocity > -300;
|
|
436
|
+
if (shouldClose) {
|
|
437
|
+
const generation = closeGeneration.value;
|
|
438
|
+
translateY.value = withSpring(screenHeightSV.value, {
|
|
439
|
+
...SPRING_CONFIG,
|
|
440
|
+
velocity
|
|
441
|
+
});
|
|
442
|
+
opacity.value = withTiming(0, {
|
|
443
|
+
duration: 250
|
|
444
|
+
}, finished => {
|
|
445
|
+
if (finished) runOnJS(finishClose)(generation);
|
|
446
|
+
});
|
|
447
|
+
} else {
|
|
448
|
+
translateY.value = withSpring(0, {
|
|
449
|
+
...SPRING_CONFIG,
|
|
450
|
+
velocity
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
455
|
+
}, [manualActivation, enablePanDownToClose, enableHandlePanningGesture, detached, finishClose]);
|
|
272
456
|
|
|
273
457
|
// `opacity.value` drives the fade in/out (0 -> 1). `backdropOpacity` is the
|
|
274
458
|
// final dim level once fully visible. We multiply so the consumer-provided
|
|
275
|
-
// dim opacity applies smoothly across the animation.
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
459
|
+
// dim opacity applies smoothly across the animation. When
|
|
460
|
+
// `dynamicBackdrop` is enabled, the dim also fades proportionally with
|
|
461
|
+
// drag distance (iOS Photos style).
|
|
462
|
+
const backdropStyle = useAnimatedStyle(() => {
|
|
463
|
+
const dragFactor = dynamicBackdrop ? interpolate(translateY.value, [0, screenHeightSV.value * 0.4], [1, 0.3], 'clamp') : 1;
|
|
464
|
+
return {
|
|
465
|
+
opacity: opacity.value * backdropOpacity * dragFactor
|
|
466
|
+
};
|
|
467
|
+
}, [backdropOpacity, dynamicBackdrop]);
|
|
279
468
|
const sheetStyle = useAnimatedStyle(() => {
|
|
280
469
|
const scale = interpolate(translateY.value, [0, screenHeightSV.value], [1, 0.95]);
|
|
281
470
|
return {
|
|
@@ -332,6 +521,64 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
332
521
|
});
|
|
333
522
|
}, [colors.background, theme.isDark, detached]);
|
|
334
523
|
if (!rendered) return null;
|
|
524
|
+
|
|
525
|
+
// Default handle render — used when `handleComponent` is not provided.
|
|
526
|
+
const renderDefaultHandle = () => /*#__PURE__*/_jsx(View, {
|
|
527
|
+
style: dynamicStyles.handle
|
|
528
|
+
});
|
|
529
|
+
const handleNode = showHandle ? handleComponent ? handleComponent() : renderDefaultHandle() : null;
|
|
530
|
+
|
|
531
|
+
// In `manualActivation` mode the handle gets its own gesture detector
|
|
532
|
+
// sitting in a dedicated absolutely-positioned hit area at the top of the
|
|
533
|
+
// sheet. In legacy mode the handle is rendered inline as a decorative
|
|
534
|
+
// overlay (the body pan covers the entire sheet, handle included).
|
|
535
|
+
const handleSlot = handleNode && manualActivation && handlePanGesture ? /*#__PURE__*/_jsx(GestureDetector, {
|
|
536
|
+
gesture: handlePanGesture,
|
|
537
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
538
|
+
style: styles.handleHitArea,
|
|
539
|
+
accessible: true,
|
|
540
|
+
accessibilityRole: "adjustable",
|
|
541
|
+
children: handleNode
|
|
542
|
+
})
|
|
543
|
+
}) : handleNode;
|
|
544
|
+
|
|
545
|
+
// Inner content: scrollable wraps in Animated.ScrollView, non-scrollable
|
|
546
|
+
// renders children directly. In legacy mode the scrollview is also
|
|
547
|
+
// wrapped in the `nativeGesture` detector for scroll/pan coordination.
|
|
548
|
+
const scrollViewNode = /*#__PURE__*/_jsx(Animated.ScrollView, {
|
|
549
|
+
ref: scrollViewRef,
|
|
550
|
+
style: [styles.scrollView, Platform.OS === 'web' && {
|
|
551
|
+
scrollbarWidth: 'thin',
|
|
552
|
+
scrollbarColor: `${colors.border} transparent`
|
|
553
|
+
}],
|
|
554
|
+
contentContainerStyle: dynamicStyles.scrollContent,
|
|
555
|
+
showsVerticalScrollIndicator: false,
|
|
556
|
+
keyboardShouldPersistTaps: "handled",
|
|
557
|
+
onScroll: scrollHandler,
|
|
558
|
+
scrollEventThrottle: 16,
|
|
559
|
+
...(Platform.OS === 'web' ? {
|
|
560
|
+
className: 'bottom-sheet-scrollview'
|
|
561
|
+
} : undefined),
|
|
562
|
+
onLayout: () => {
|
|
563
|
+
if (Platform.OS === 'web') {
|
|
564
|
+
createWebScrollbarStyle(colors.border);
|
|
565
|
+
}
|
|
566
|
+
},
|
|
567
|
+
children: children
|
|
568
|
+
});
|
|
569
|
+
const bodyContent = scrollable ? manualActivation
|
|
570
|
+
// In manualActivation mode the scroll view is referenced by the
|
|
571
|
+
// pan's simultaneous list directly; no wrapping native gesture.
|
|
572
|
+
? scrollViewNode
|
|
573
|
+
// Legacy mode: native gesture wraps the scroll view to coordinate
|
|
574
|
+
// with the always-active body pan.
|
|
575
|
+
: /*#__PURE__*/_jsx(GestureDetector, {
|
|
576
|
+
gesture: nativeGesture,
|
|
577
|
+
children: scrollViewNode
|
|
578
|
+
}) : /*#__PURE__*/_jsx(View, {
|
|
579
|
+
style: styles.nonScrollableContent,
|
|
580
|
+
children: children
|
|
581
|
+
});
|
|
335
582
|
return /*#__PURE__*/_jsx(Modal, {
|
|
336
583
|
visible: rendered,
|
|
337
584
|
transparent: true,
|
|
@@ -359,32 +606,7 @@ const BottomSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
359
606
|
style: [dynamicStyles.sheet, sheetMarginStyle, sheetStyle, sheetHeightStyle, style],
|
|
360
607
|
children: [backgroundComponent?.({
|
|
361
608
|
style: styles.background
|
|
362
|
-
}),
|
|
363
|
-
style: dynamicStyles.handle
|
|
364
|
-
}), /*#__PURE__*/_jsx(GestureDetector, {
|
|
365
|
-
gesture: nativeGesture,
|
|
366
|
-
children: /*#__PURE__*/_jsx(Animated.ScrollView, {
|
|
367
|
-
ref: scrollViewRef,
|
|
368
|
-
style: [styles.scrollView, Platform.OS === 'web' && {
|
|
369
|
-
scrollbarWidth: 'thin',
|
|
370
|
-
scrollbarColor: `${colors.border} transparent`
|
|
371
|
-
}],
|
|
372
|
-
contentContainerStyle: dynamicStyles.scrollContent,
|
|
373
|
-
showsVerticalScrollIndicator: false,
|
|
374
|
-
keyboardShouldPersistTaps: "handled",
|
|
375
|
-
onScroll: scrollHandler,
|
|
376
|
-
scrollEventThrottle: 16,
|
|
377
|
-
...(Platform.OS === 'web' ? {
|
|
378
|
-
className: 'bottom-sheet-scrollview'
|
|
379
|
-
} : undefined),
|
|
380
|
-
onLayout: () => {
|
|
381
|
-
if (Platform.OS === 'web') {
|
|
382
|
-
createWebScrollbarStyle(colors.border);
|
|
383
|
-
}
|
|
384
|
-
},
|
|
385
|
-
children: children
|
|
386
|
-
})
|
|
387
|
-
})]
|
|
609
|
+
}), handleSlot, bodyContent]
|
|
388
610
|
})
|
|
389
611
|
})]
|
|
390
612
|
})
|
|
@@ -424,6 +646,7 @@ const styles = StyleSheet.create({
|
|
|
424
646
|
borderTopLeftRadius: 24,
|
|
425
647
|
borderTopRightRadius: 24
|
|
426
648
|
},
|
|
649
|
+
/** Legacy (non-manualActivation) handle: decorative overlay only. */
|
|
427
650
|
handle: {
|
|
428
651
|
position: 'absolute',
|
|
429
652
|
top: 10,
|
|
@@ -434,6 +657,23 @@ const styles = StyleSheet.create({
|
|
|
434
657
|
borderRadius: 3,
|
|
435
658
|
zIndex: 100
|
|
436
659
|
},
|
|
660
|
+
/**
|
|
661
|
+
* Hit area for the drag handle in `manualActivation` mode. Absolutely
|
|
662
|
+
* positioned at the top of the sheet so the area visually "floats" above
|
|
663
|
+
* the content — content scrolls up underneath it (no layout offset)
|
|
664
|
+
* while the thumb can still grab the full-width 28dp strip to drag.
|
|
665
|
+
*/
|
|
666
|
+
handleHitArea: {
|
|
667
|
+
position: 'absolute',
|
|
668
|
+
top: 0,
|
|
669
|
+
left: 0,
|
|
670
|
+
right: 0,
|
|
671
|
+
height: 28,
|
|
672
|
+
alignItems: 'center',
|
|
673
|
+
justifyContent: 'flex-start',
|
|
674
|
+
paddingTop: 6,
|
|
675
|
+
zIndex: 100
|
|
676
|
+
},
|
|
437
677
|
background: {
|
|
438
678
|
...StyleSheet.absoluteFillObject
|
|
439
679
|
},
|
|
@@ -442,6 +682,9 @@ const styles = StyleSheet.create({
|
|
|
442
682
|
},
|
|
443
683
|
scrollContent: {
|
|
444
684
|
flexGrow: 1
|
|
685
|
+
},
|
|
686
|
+
nonScrollableContent: {
|
|
687
|
+
flex: 1
|
|
445
688
|
}
|
|
446
689
|
});
|
|
447
690
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useImperativeHandle","useRef","useEffect","useState","useCallback","useMemo","View","StyleSheet","Modal","Pressable","Dimensions","Platform","Gesture","GestureDetector","GestureHandlerRootView","Animated","interpolate","runOnJS","useAnimatedScrollHandler","useAnimatedStyle","useSharedValue","withSpring","withTiming","useSafeAreaInsets","useTheme","jsx","_jsx","jsxs","_jsxs","noopKeyboardHandler","_handlers","_deps","useKeyboardHandler","OS","require","moduleName","useScreenDimensions","dimensions","setDimensions","get","subscription","addEventListener","window","remove","SPRING_CONFIG","damping","stiffness","mass","BottomSheet","props","ref","children","onDismiss","enablePanDownToClose","backgroundComponent","backdropComponent","style","enableHandlePanningGesture","onDismissAttempt","detached","showHandle","backdropOpacity","insets","theme","colors","height","screenHeight","visible","setVisible","rendered","setRendered","closeTimeoutRef","hasClosedRef","scrollViewRef","screenHeightSV","value","translateY","opacity","scrollOffsetY","isScrollAtTop","allowPanClose","keyboardHeight","context","y","onMove","e","onEnd","safeClose","safeCloseRef","current","renderedRef","finishClose","clearTimeout","duration","finished","setTimeout","createWebScrollbarStyle","border","removeWebScrollbarStyle","present","dismiss","scrollTo","animated","close","expand","collapse","nativeGesture","Native","panGesture","Pan","enabled","simultaneousWithExternalGesture","onStart","onUpdate","event","newTranslateY","translationY","atTopOrNearTop","velocity","velocityY","distance","closeThreshold","Math","max","fastSwipeThreshold","shouldClose","backdropStyle","sheetStyle","scale","transform","sheetHeightStyle","maxHeight","top","bottom","sheetMarginStyle","marginBottom","handleBackdropPress","scrollHandler","onScroll","contentOffset","dynamicStyles","create","handle","styles","backgroundColor","isDark","sheet","background","sheetDetached","sheetNormal","scrollContent","transparent","animationType","statusBarTranslucent","onRequestClose","rootView","absoluteFill","backdrop","onPress","backdropTouchable","gesture","ScrollView","scrollView","scrollbarWidth","scrollbarColor","contentContainerStyle","showsVerticalScrollIndicator","keyboardShouldPersistTaps","scrollEventThrottle","className","undefined","onLayout","displayName","flex","position","overflow","maxWidth","alignSelf","marginHorizontal","left","right","borderRadius","borderTopLeftRadius","borderTopRightRadius","marginLeft","width","zIndex","absoluteFillObject","flexGrow","borderColor","document","styleElement","getElementById","SCROLLBAR_STYLE_ID","createElement","id","head","appendChild","scrollbarHoverColor","startsWith","replace","textContent"],"sourceRoot":"../../../src","sources":["bottom-sheet/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["forwardRef","useImperativeHandle","useRef","useEffect","useState","useCallback","useMemo","View","StyleSheet","Modal","Pressable","Dimensions","Platform","Gesture","GestureDetector","GestureHandlerRootView","Animated","interpolate","runOnJS","useAnimatedScrollHandler","useAnimatedStyle","useSharedValue","withSpring","withTiming","useSafeAreaInsets","useTheme","jsx","_jsx","jsxs","_jsxs","noopKeyboardHandler","_handlers","_deps","useKeyboardHandler","OS","require","moduleName","useScreenDimensions","dimensions","setDimensions","get","subscription","addEventListener","window","remove","SPRING_CONFIG","damping","stiffness","mass","BottomSheet","props","ref","children","onDismiss","enablePanDownToClose","backgroundComponent","backdropComponent","style","enableHandlePanningGesture","onDismissAttempt","detached","showHandle","backdropOpacity","scrollable","manualActivation","dynamicBackdrop","handleComponent","insets","theme","colors","height","screenHeight","visible","setVisible","rendered","setRendered","closeTimeoutRef","hasClosedRef","scrollViewRef","closeGenerationRef","screenHeightSV","value","translateY","opacity","scrollOffsetY","isScrollAtTop","allowPanClose","keyboardHeight","context","y","closeGeneration","touchStartY","bodyPanRef","undefined","handlePanRef","onMove","e","onEnd","safeClose","safeCloseRef","current","renderedRef","finishClose","generation","clearTimeout","duration","finished","setTimeout","createWebScrollbarStyle","border","removeWebScrollbarStyle","present","dismiss","scrollTo","animated","close","expand","collapse","nativeGesture","Native","panGesture","Pan","enabled","withRef","simultaneousWithExternalGesture","onTouchesDown","t","changedTouches","absoluteY","onTouchesMove","state","dy","atTop","activate","fail","onUpdate","event","translationY","newTranslateY","velocity","velocityY","distance","closeThreshold","Math","max","fastSwipeThreshold","shouldClose","onStart","atTopOrNearTop","handlePanGesture","activeOffsetY","backdropStyle","dragFactor","sheetStyle","scale","transform","sheetHeightStyle","maxHeight","top","bottom","sheetMarginStyle","marginBottom","handleBackdropPress","scrollHandler","onScroll","contentOffset","dynamicStyles","create","handle","styles","backgroundColor","isDark","sheet","background","sheetDetached","sheetNormal","scrollContent","renderDefaultHandle","handleNode","handleSlot","gesture","handleHitArea","accessible","accessibilityRole","scrollViewNode","ScrollView","scrollView","scrollbarWidth","scrollbarColor","contentContainerStyle","showsVerticalScrollIndicator","keyboardShouldPersistTaps","scrollEventThrottle","className","onLayout","bodyContent","nonScrollableContent","transparent","animationType","statusBarTranslucent","onRequestClose","rootView","absoluteFill","backdrop","onPress","backdropTouchable","displayName","flex","position","overflow","maxWidth","alignSelf","marginHorizontal","left","right","borderRadius","borderTopLeftRadius","borderTopRightRadius","marginLeft","width","zIndex","alignItems","justifyContent","paddingTop","absoluteFillObject","flexGrow","borderColor","document","styleElement","getElementById","SCROLLBAR_STYLE_ID","createElement","id","head","appendChild","scrollbarHoverColor","startsWith","replace","textContent"],"sourceRoot":"../../../src","sources":["bottom-sheet/index.tsx"],"mappings":"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","ignoreList":[]}
|