@oxyhq/bloom 0.3.12 → 0.4.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/commonjs/bottom-sheet/index.js +339 -96
- package/lib/commonjs/bottom-sheet/index.js.map +1 -1
- package/lib/module/bottom-sheet/index.js +339 -96
- package/lib/module/bottom-sheet/index.js.map +1 -1
- package/lib/typescript/commonjs/bottom-sheet/index.d.ts +46 -0
- package/lib/typescript/commonjs/bottom-sheet/index.d.ts.map +1 -1
- package/lib/typescript/module/bottom-sheet/index.d.ts +46 -0
- package/lib/typescript/module/bottom-sheet/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/BottomSheet.test.tsx +149 -2
- package/src/bottom-sheet/index.tsx +364 -80
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_useTheme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","noopKeyboardHandler","_handlers","_deps","useKeyboardHandler","Platform","OS","moduleName","useScreenDimensions","dimensions","setDimensions","useState","Dimensions","useEffect","subscription","addEventListener","window","remove","SPRING_CONFIG","damping","stiffness","mass","BottomSheet","exports","forwardRef","props","ref","children","onDismiss","enablePanDownToClose","backgroundComponent","backdropComponent","style","enableHandlePanningGesture","onDismissAttempt","detached","showHandle","backdropOpacity","insets","useSafeAreaInsets","theme","useTheme","colors","height","screenHeight","visible","setVisible","rendered","setRendered","closeTimeoutRef","useRef","hasClosedRef","scrollViewRef","screenHeightSV","useSharedValue","value","translateY","opacity","scrollOffsetY","isScrollAtTop","allowPanClose","keyboardHeight","context","y","onMove","onEnd","safeClose","useCallback","safeCloseRef","current","renderedRef","finishClose","clearTimeout","withTiming","duration","withSpring","finished","runOnJS","setTimeout","createWebScrollbarStyle","border","removeWebScrollbarStyle","present","dismiss","scrollTo","animated","useImperativeHandle","close","expand","collapse","nativeGesture","useMemo","Gesture","Native","panGesture","Pan","enabled","simultaneousWithExternalGesture","onStart","onUpdate","event","newTranslateY","translationY","atTopOrNearTop","velocity","velocityY","distance","closeThreshold","Math","max","fastSwipeThreshold","shouldClose","backdropStyle","useAnimatedStyle","sheetStyle","scale","interpolate","transform","sheetHeightStyle","maxHeight","top","bottom","sheetMarginStyle","marginBottom","handleBackdropPress","scrollHandler","useAnimatedScrollHandler","onScroll","contentOffset","dynamicStyles","StyleSheet","create","handle","styles","backgroundColor","isDark","sheet","background","sheetDetached","sheetNormal","scrollContent","jsx","Modal","transparent","animationType","statusBarTranslucent","onRequestClose","GestureHandlerRootView","rootView","jsxs","View","absoluteFill","backdrop","onPress","Pressable","backdropTouchable","GestureDetector","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","_default"],"sourceRoot":"../../../src","sources":["bottom-sheet/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_useTheme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","noopKeyboardHandler","_handlers","_deps","useKeyboardHandler","Platform","OS","moduleName","useScreenDimensions","dimensions","setDimensions","useState","Dimensions","useEffect","subscription","addEventListener","window","remove","SPRING_CONFIG","damping","stiffness","mass","BottomSheet","exports","forwardRef","props","ref","children","onDismiss","enablePanDownToClose","backgroundComponent","backdropComponent","style","enableHandlePanningGesture","onDismissAttempt","detached","showHandle","backdropOpacity","scrollable","manualActivation","dynamicBackdrop","handleComponent","insets","useSafeAreaInsets","theme","useTheme","colors","height","screenHeight","visible","setVisible","rendered","setRendered","closeTimeoutRef","useRef","hasClosedRef","scrollViewRef","closeGenerationRef","screenHeightSV","useSharedValue","value","translateY","opacity","scrollOffsetY","isScrollAtTop","allowPanClose","keyboardHeight","context","y","closeGeneration","touchStartY","bodyPanRef","undefined","handlePanRef","onMove","onEnd","safeClose","useCallback","safeCloseRef","current","renderedRef","finishClose","generation","clearTimeout","withTiming","duration","withSpring","finished","runOnJS","setTimeout","createWebScrollbarStyle","border","removeWebScrollbarStyle","present","dismiss","scrollTo","animated","useImperativeHandle","close","expand","collapse","nativeGesture","useMemo","Gesture","Native","panGesture","Pan","enabled","withRef","simultaneousWithExternalGesture","onTouchesDown","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","useAnimatedStyle","dragFactor","interpolate","sheetStyle","scale","transform","sheetHeightStyle","maxHeight","top","bottom","sheetMarginStyle","marginBottom","handleBackdropPress","scrollHandler","useAnimatedScrollHandler","onScroll","contentOffset","dynamicStyles","StyleSheet","create","handle","styles","backgroundColor","isDark","sheet","background","sheetDetached","sheetNormal","scrollContent","renderDefaultHandle","jsx","View","handleNode","handleSlot","GestureDetector","gesture","handleHitArea","accessible","accessibilityRole","scrollViewNode","ScrollView","scrollView","scrollbarWidth","scrollbarColor","contentContainerStyle","showsVerticalScrollIndicator","keyboardShouldPersistTaps","scrollEventThrottle","className","onLayout","bodyContent","nonScrollableContent","Modal","transparent","animationType","statusBarTranslucent","onRequestClose","GestureHandlerRootView","rootView","jsxs","absoluteFill","backdrop","onPress","Pressable","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","_default"],"sourceRoot":"../../../src","sources":["bottom-sheet/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -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,16 +193,17 @@ 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.
|
|
@@ -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
|
|