react-native-screen-transitions 3.3.0-rc.2 → 3.3.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/LICENSE +21 -0
- package/README.md +51 -7
- package/lib/commonjs/blank-stack/components/stack-view.js +2 -1
- package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
- package/lib/commonjs/blank-stack/components/stack-view.native.js +2 -1
- package/lib/commonjs/blank-stack/components/stack-view.native.js.map +1 -1
- package/lib/commonjs/component-stack/components/stack-view.js +2 -1
- package/lib/commonjs/component-stack/components/stack-view.js.map +1 -1
- package/lib/commonjs/shared/animation/resolve-snap-target.js +48 -0
- package/lib/commonjs/shared/animation/resolve-snap-target.js.map +1 -0
- package/lib/commonjs/shared/animation/snap-to.js +35 -34
- package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
- package/lib/commonjs/shared/components/create-transition-aware-component.js +15 -7
- package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js +3 -2
- package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +46 -9
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/overlay-host.js +7 -7
- package/lib/commonjs/shared/components/overlay/variations/overlay-host.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js +23 -3
- package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container.js +2 -1
- package/lib/commonjs/shared/components/screen-container.js.map +1 -1
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +6 -6
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +7 -1
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js +37 -8
- package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +12 -13
- package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
- package/lib/commonjs/shared/hooks/lifecycle/use-close-transition.js +5 -2
- package/lib/commonjs/shared/hooks/lifecycle/use-close-transition.js.map +1 -1
- package/lib/commonjs/shared/hooks/lifecycle/use-screen-events.js +14 -4
- package/lib/commonjs/shared/hooks/lifecycle/use-screen-events.js.map +1 -1
- package/lib/commonjs/shared/hooks/navigation/use-optimistic-focused-index.js +20 -0
- package/lib/commonjs/shared/hooks/navigation/use-optimistic-focused-index.js.map +1 -0
- package/lib/commonjs/shared/hooks/navigation/use-screen-state.js +11 -8
- package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/commonjs/shared/hooks/reanimated/use-shared-value-state.js +4 -1
- package/lib/commonjs/shared/hooks/reanimated/use-shared-value-state.js.map +1 -1
- package/lib/commonjs/shared/providers/gestures.provider.js +17 -6
- package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/layout-anchor.provider.js +7 -5
- package/lib/commonjs/shared/providers/layout-anchor.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/register-bounds.provider.js +25 -6
- package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles.provider.js +1 -6
- package/lib/commonjs/shared/providers/screen/styles.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/direct.provider.js +15 -16
- package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/managed.provider.js +19 -16
- package/lib/commonjs/shared/providers/stack/managed.provider.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds.store.js +46 -0
- package/lib/commonjs/shared/stores/bounds.store.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/index.js +6 -4
- package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/determine-snap-target.js +9 -2
- package/lib/commonjs/shared/utils/gesture/determine-snap-target.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/find-collapse-target.js +11 -1
- package/lib/commonjs/shared/utils/gesture/find-collapse-target.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/validate-snap-points.js +11 -2
- package/lib/commonjs/shared/utils/gesture/validate-snap-points.js.map +1 -1
- package/lib/commonjs/shared/utils/overlay/visibility.js +19 -0
- package/lib/commonjs/shared/utils/overlay/visibility.js.map +1 -0
- package/lib/module/blank-stack/components/stack-view.js +2 -1
- package/lib/module/blank-stack/components/stack-view.js.map +1 -1
- package/lib/module/blank-stack/components/stack-view.native.js +2 -1
- package/lib/module/blank-stack/components/stack-view.native.js.map +1 -1
- package/lib/module/component-stack/components/stack-view.js +2 -1
- package/lib/module/component-stack/components/stack-view.js.map +1 -1
- package/lib/module/shared/animation/resolve-snap-target.js +44 -0
- package/lib/module/shared/animation/resolve-snap-target.js.map +1 -0
- package/lib/module/shared/animation/snap-to.js +34 -34
- package/lib/module/shared/animation/snap-to.js.map +1 -1
- package/lib/module/shared/components/create-transition-aware-component.js +16 -8
- package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/shared/components/overlay/helpers/get-active-overlay.js +4 -2
- package/lib/module/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/float-overlay.js +47 -11
- package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/overlay-host.js +7 -7
- package/lib/module/shared/components/overlay/variations/overlay-host.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/screen-overlay.js +24 -5
- package/lib/module/shared/components/overlay/variations/screen-overlay.js.map +1 -1
- package/lib/module/shared/components/screen-container.js +2 -1
- package/lib/module/shared/components/screen-container.js.map +1 -1
- package/lib/module/shared/hooks/animation/use-screen-animation.js +6 -6
- package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-build-gestures.js +7 -1
- package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +37 -8
- package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-scroll-registry.js +12 -13
- package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
- package/lib/module/shared/hooks/lifecycle/use-close-transition.js +5 -2
- package/lib/module/shared/hooks/lifecycle/use-close-transition.js.map +1 -1
- package/lib/module/shared/hooks/lifecycle/use-screen-events.js +13 -4
- package/lib/module/shared/hooks/lifecycle/use-screen-events.js.map +1 -1
- package/lib/module/shared/hooks/navigation/use-optimistic-focused-index.js +17 -0
- package/lib/module/shared/hooks/navigation/use-optimistic-focused-index.js.map +1 -0
- package/lib/module/shared/hooks/navigation/use-screen-state.js +12 -9
- package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/module/shared/hooks/reanimated/use-shared-value-state.js +4 -1
- package/lib/module/shared/hooks/reanimated/use-shared-value-state.js.map +1 -1
- package/lib/module/shared/providers/gestures.provider.js +17 -6
- package/lib/module/shared/providers/gestures.provider.js.map +1 -1
- package/lib/module/shared/providers/layout-anchor.provider.js +7 -5
- package/lib/module/shared/providers/layout-anchor.provider.js.map +1 -1
- package/lib/module/shared/providers/register-bounds.provider.js +25 -6
- package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/styles.provider.js +1 -6
- package/lib/module/shared/providers/screen/styles.provider.js.map +1 -1
- package/lib/module/shared/providers/stack/direct.provider.js +15 -16
- package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/module/shared/providers/stack/managed.provider.js +19 -16
- package/lib/module/shared/providers/stack/managed.provider.js.map +1 -1
- package/lib/module/shared/stores/bounds.store.js +46 -0
- package/lib/module/shared/stores/bounds.store.js.map +1 -1
- package/lib/module/shared/utils/bounds/index.js +6 -4
- package/lib/module/shared/utils/bounds/index.js.map +1 -1
- package/lib/module/shared/utils/gesture/determine-snap-target.js +9 -2
- package/lib/module/shared/utils/gesture/determine-snap-target.js.map +1 -1
- package/lib/module/shared/utils/gesture/find-collapse-target.js +11 -1
- package/lib/module/shared/utils/gesture/find-collapse-target.js.map +1 -1
- package/lib/module/shared/utils/gesture/validate-snap-points.js +11 -2
- package/lib/module/shared/utils/gesture/validate-snap-points.js.map +1 -1
- package/lib/module/shared/utils/overlay/visibility.js +12 -0
- package/lib/module/shared/utils/overlay/visibility.js.map +1 -0
- package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/blank-stack/components/stack-view.native.d.ts.map +1 -1
- package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/shared/animation/resolve-snap-target.d.ts +3 -0
- package/lib/typescript/shared/animation/resolve-snap-target.d.ts.map +1 -0
- package/lib/typescript/shared/animation/snap-to.d.ts +2 -0
- package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts +1 -0
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts +1 -1
- package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +7 -0
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/screen-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +1 -1
- package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts +0 -2
- package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/lifecycle/use-close-transition.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/lifecycle/use-screen-events.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-optimistic-focused-index.d.ts +7 -0
- package/lib/typescript/shared/hooks/navigation/use-optimistic-focused-index.d.ts.map +1 -0
- package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts +6 -0
- package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/reanimated/use-shared-value-state.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +4 -0
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/layout-anchor.provider.d.ts +1 -1
- package/lib/typescript/shared/providers/layout-anchor.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/register-bounds.provider.d.ts +1 -0
- package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/managed.provider.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds.store.d.ts +2 -0
- package/lib/typescript/shared/stores/bounds.store.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +36 -1
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/validate-snap-points.d.ts.map +1 -1
- package/lib/typescript/shared/utils/overlay/visibility.d.ts +11 -0
- package/lib/typescript/shared/utils/overlay/visibility.d.ts.map +1 -0
- package/package.json +8 -2
- package/src/blank-stack/components/stack-view.native.tsx +2 -1
- package/src/blank-stack/components/stack-view.tsx +2 -1
- package/src/component-stack/components/stack-view.tsx +2 -1
- package/src/shared/animation/resolve-snap-target.ts +53 -0
- package/src/shared/animation/snap-to.ts +47 -38
- package/src/shared/components/create-transition-aware-component.tsx +34 -10
- package/src/shared/components/overlay/helpers/get-active-overlay.ts +3 -2
- package/src/shared/components/overlay/variations/float-overlay.tsx +53 -8
- package/src/shared/components/overlay/variations/overlay-host.tsx +16 -6
- package/src/shared/components/overlay/variations/screen-overlay.tsx +35 -3
- package/src/shared/components/screen-container.tsx +15 -9
- package/src/shared/hooks/animation/use-screen-animation.tsx +8 -8
- package/src/shared/hooks/gestures/use-build-gestures.tsx +5 -1
- package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +63 -16
- package/src/shared/hooks/gestures/use-scroll-registry.tsx +10 -9
- package/src/shared/hooks/lifecycle/use-close-transition.ts +6 -3
- package/src/shared/hooks/lifecycle/use-screen-events.ts +15 -4
- package/src/shared/hooks/navigation/use-optimistic-focused-index.ts +19 -0
- package/src/shared/hooks/navigation/use-screen-state.tsx +24 -8
- package/src/shared/hooks/reanimated/use-shared-value-state.ts +4 -1
- package/src/shared/providers/gestures.provider.tsx +49 -22
- package/src/shared/providers/layout-anchor.provider.tsx +28 -25
- package/src/shared/providers/register-bounds.provider.tsx +43 -6
- package/src/shared/providers/screen/styles.provider.tsx +1 -7
- package/src/shared/providers/stack/direct.provider.tsx +18 -19
- package/src/shared/providers/stack/managed.provider.tsx +22 -19
- package/src/shared/stores/bounds.store.ts +56 -0
- package/src/shared/types/screen.types.ts +39 -1
- package/src/shared/utils/bounds/index.ts +6 -4
- package/src/shared/utils/gesture/determine-snap-target.ts +15 -4
- package/src/shared/utils/gesture/find-collapse-target.ts +11 -1
- package/src/shared/utils/gesture/validate-snap-points.ts +15 -2
- package/src/shared/utils/overlay/visibility.ts +23 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Ed
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -232,15 +232,17 @@ options={{
|
|
|
232
232
|
|
|
233
233
|
| Option | Description |
|
|
234
234
|
| ------------------------- | ------------------------------------------------------------------------ |
|
|
235
|
-
| `gestureEnabled` | Enable swipe-to-dismiss
|
|
235
|
+
| `gestureEnabled` | Enable swipe-to-dismiss (snap sheets: `false` blocks dismiss-to-0 only) |
|
|
236
236
|
| `gestureDirection` | Direction(s) for swipe gesture |
|
|
237
237
|
| `gestureActivationArea` | Where gesture can start |
|
|
238
238
|
| `gestureResponseDistance` | Pixel threshold for activation |
|
|
239
239
|
| `gestureVelocityImpact` | How much velocity affects dismissal (default: 0.3) |
|
|
240
240
|
| `gestureDrivesProgress` | Whether gesture controls animation progress (default: true) |
|
|
241
241
|
| `snapVelocityImpact` | How much velocity affects snap targeting (default: 0.1, lower = iOS-like)|
|
|
242
|
-
| `expandViaScrollView` |
|
|
242
|
+
| `expandViaScrollView` | Allow expansion from ScrollView at boundary (default: true) |
|
|
243
|
+
| `gestureSnapLocked` | Lock gesture-based snap movement to current snap point |
|
|
243
244
|
| `backdropBehavior` | Touch handling for backdrop area |
|
|
245
|
+
| `backdropComponent` | Custom backdrop component (replaces default backdrop + press behavior) |
|
|
244
246
|
|
|
245
247
|
### Gesture Direction
|
|
246
248
|
|
|
@@ -318,7 +320,7 @@ Create multi-stop sheets that snap to defined positions. Works with any gesture
|
|
|
318
320
|
gestureDirection: "horizontal",
|
|
319
321
|
snapPoints: [0.3, 0.7, 1], // 30%, 70%, 100% of screen width
|
|
320
322
|
initialSnapIndex: 1,
|
|
321
|
-
|
|
323
|
+
// Add a horizontal screenStyleInterpolator for drawer-style motion
|
|
322
324
|
}}
|
|
323
325
|
/>
|
|
324
326
|
```
|
|
@@ -329,7 +331,9 @@ Create multi-stop sheets that snap to defined positions. Works with any gesture
|
|
|
329
331
|
| ------------------ | -------------------------------------------------------------------- |
|
|
330
332
|
| `snapPoints` | Array of fractions (0-1) where sheet can rest |
|
|
331
333
|
| `initialSnapIndex` | Index of initial snap point (default: 0) |
|
|
334
|
+
| `gestureSnapLocked` | Locks gesture snapping to current point (programmatic `snapTo` still works) |
|
|
332
335
|
| `backdropBehavior` | Touch handling: `"block"`, `"passthrough"`, `"dismiss"`, `"collapse"`|
|
|
336
|
+
| `backdropComponent` | Custom backdrop component; replaces default backdrop + tap handling |
|
|
333
337
|
|
|
334
338
|
#### backdropBehavior Values
|
|
335
339
|
|
|
@@ -340,6 +344,45 @@ Create multi-stop sheets that snap to defined positions. Works with any gesture
|
|
|
340
344
|
| `"dismiss"` | Tapping backdrop dismisses the screen |
|
|
341
345
|
| `"collapse"` | Tapping backdrop collapses to next lower snap point, then dismisses |
|
|
342
346
|
|
|
347
|
+
#### Custom Backdrop Component
|
|
348
|
+
|
|
349
|
+
Use `backdropComponent` when you want full control over backdrop visuals and interactions.
|
|
350
|
+
|
|
351
|
+
- When provided, it replaces the default backdrop entirely (including default tap behavior)
|
|
352
|
+
- You are responsible for dismiss/collapse actions inside the custom component
|
|
353
|
+
- `backdropBehavior` still controls container-level pointer event behavior
|
|
354
|
+
|
|
355
|
+
```tsx
|
|
356
|
+
import { router } from "expo-router";
|
|
357
|
+
import { Pressable } from "react-native";
|
|
358
|
+
import Animated, { interpolate, useAnimatedStyle } from "react-native-reanimated";
|
|
359
|
+
import { useScreenAnimation } from "react-native-screen-transitions";
|
|
360
|
+
|
|
361
|
+
function SheetBackdrop() {
|
|
362
|
+
const animation = useScreenAnimation();
|
|
363
|
+
|
|
364
|
+
const style = useAnimatedStyle(() => ({
|
|
365
|
+
opacity: interpolate(animation.value.current.progress, [0, 1], [0, 0.4]),
|
|
366
|
+
backgroundColor: "#000",
|
|
367
|
+
}));
|
|
368
|
+
|
|
369
|
+
return (
|
|
370
|
+
<Pressable style={{ flex: 1 }} onPress={() => router.back()}>
|
|
371
|
+
<Animated.View style={[{ flex: 1 }, style]} />
|
|
372
|
+
</Pressable>
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
<Stack.Screen
|
|
377
|
+
name="Sheet"
|
|
378
|
+
options={{
|
|
379
|
+
snapPoints: [0.5, 1],
|
|
380
|
+
backdropBehavior: "dismiss",
|
|
381
|
+
backdropComponent: SheetBackdrop,
|
|
382
|
+
}}
|
|
383
|
+
/>
|
|
384
|
+
```
|
|
385
|
+
|
|
343
386
|
### Programmatic Control
|
|
344
387
|
|
|
345
388
|
Control snap points from anywhere in your app:
|
|
@@ -380,7 +423,8 @@ screenStyleInterpolator: ({ snapIndex }) => {
|
|
|
380
423
|
### ScrollView Behavior
|
|
381
424
|
|
|
382
425
|
With `Transition.ScrollView` inside a snap-enabled sheet:
|
|
383
|
-
-
|
|
426
|
+
- **`expandViaScrollView: true`**: At boundary, swipe up expands and swipe down collapses (or dismisses at min if enabled)
|
|
427
|
+
- **`expandViaScrollView: false`**: Expand works only via deadspace; collapse/dismiss via scroll still works at boundary
|
|
384
428
|
- **Scrolled into content**: Normal scroll behavior
|
|
385
429
|
|
|
386
430
|
### Snap Animation Specs
|
|
@@ -679,11 +723,11 @@ import { createNativeStackNavigator } from "react-native-screen-transitions/nati
|
|
|
679
723
|
Standalone navigator, not connected to React Navigation. Ideal for embedded flows.
|
|
680
724
|
|
|
681
725
|
```tsx
|
|
682
|
-
import {
|
|
726
|
+
import { createComponentStackNavigator } from "react-native-screen-transitions/component-stack";
|
|
683
727
|
|
|
684
|
-
const Stack =
|
|
728
|
+
const Stack = createComponentStackNavigator();
|
|
685
729
|
|
|
686
|
-
<Stack.Navigator
|
|
730
|
+
<Stack.Navigator initialRouteName="step1">
|
|
687
731
|
<Stack.Screen name="step1" component={Step1} />
|
|
688
732
|
<Stack.Screen name="step2" component={Step2} />
|
|
689
733
|
</Stack.Navigator>
|
|
@@ -13,6 +13,7 @@ var _overlay = require("../../shared/components/overlay");
|
|
|
13
13
|
var _screenComposer = require("../../shared/providers/screen/screen-composer");
|
|
14
14
|
var _core = require("../../shared/providers/stack/core.provider");
|
|
15
15
|
var _managed = require("../../shared/providers/stack/managed.provider");
|
|
16
|
+
var _visibility = require("../../shared/utils/overlay/visibility");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
18
19
|
function isFabric() {
|
|
@@ -30,7 +31,7 @@ const SceneView = /*#__PURE__*/React.memo(function SceneView({
|
|
|
30
31
|
value: navigation,
|
|
31
32
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_native.NavigationRouteContext.Provider, {
|
|
32
33
|
value: route,
|
|
33
|
-
children: [descriptor.options
|
|
34
|
+
children: [(0, _visibility.isScreenOverlayVisible)(descriptor.options) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_overlay.Overlay.Screen, {}), render()]
|
|
34
35
|
})
|
|
35
36
|
});
|
|
36
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","_react","_interopRequireWildcard","React","_nativeScreen","_nativeScreenContainer","_overlay","_screenComposer","_core","_managed","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isFabric","global","SceneView","memo","descriptor","route","navigation","render","jsx","NavigationContext","Provider","value","children","jsxs","NavigationRouteContext","
|
|
1
|
+
{"version":3,"names":["_native","require","_react","_interopRequireWildcard","React","_nativeScreen","_nativeScreenContainer","_overlay","_screenComposer","_core","_managed","_visibility","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isFabric","global","SceneView","memo","descriptor","route","navigation","render","jsx","NavigationContext","Provider","value","children","jsxs","NavigationRouteContext","isScreenOverlayVisible","options","Overlay","Screen","StackView","exports","withStackCore","TRANSITIONS_ALWAYS_ON","DISABLE_NATIVE_SCREENS","withManagedStack","descriptors","focusedIndex","scenes","shouldShowFloatOverlay","Fragment","Float","NativeScreenContainer","map","scene","sceneIndex","isFocused","isBelowFocused","previousDescriptor","undefined","nextDescriptor","isPreloaded","key","shouldFreeze","NativeScreen","index","routeKey","freezeOnBlur","ScreenComposer","previous","current","next"],"sourceRoot":"../../../../src","sources":["blank-stack/components/stack-view.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ var _overlay = require("../../shared/components/overlay");
|
|
|
13
13
|
var _screenComposer = require("../../shared/providers/screen/screen-composer");
|
|
14
14
|
var _core = require("../../shared/providers/stack/core.provider");
|
|
15
15
|
var _managed = require("../../shared/providers/stack/managed.provider");
|
|
16
|
+
var _visibility = require("../../shared/utils/overlay/visibility");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
18
19
|
function isFabric() {
|
|
@@ -30,7 +31,7 @@ const SceneView = /*#__PURE__*/React.memo(function SceneView({
|
|
|
30
31
|
value: navigation,
|
|
31
32
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_native.NavigationRouteContext.Provider, {
|
|
32
33
|
value: route,
|
|
33
|
-
children: [descriptor.options
|
|
34
|
+
children: [(0, _visibility.isScreenOverlayVisible)(descriptor.options) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_overlay.Overlay.Screen, {}), render()]
|
|
34
35
|
})
|
|
35
36
|
});
|
|
36
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","_react","_interopRequireWildcard","React","_nativeScreen","_nativeScreenContainer","_overlay","_screenComposer","_core","_managed","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isFabric","global","SceneView","memo","descriptor","route","navigation","render","jsx","NavigationContext","Provider","value","children","jsxs","NavigationRouteContext","
|
|
1
|
+
{"version":3,"names":["_native","require","_react","_interopRequireWildcard","React","_nativeScreen","_nativeScreenContainer","_overlay","_screenComposer","_core","_managed","_visibility","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isFabric","global","SceneView","memo","descriptor","route","navigation","render","jsx","NavigationContext","Provider","value","children","jsxs","NavigationRouteContext","isScreenOverlayVisible","options","Overlay","Screen","StackView","exports","withStackCore","TRANSITIONS_ALWAYS_ON","DISABLE_NATIVE_SCREENS","withManagedStack","descriptors","focusedIndex","scenes","shouldShowFloatOverlay","Fragment","Float","NativeScreenContainer","map","scene","sceneIndex","isFocused","isBelowFocused","previousDescriptor","undefined","nextDescriptor","isPreloaded","key","shouldFreeze","NativeScreen","index","routeKey","freezeOnBlur","ScreenComposer","previous","current","next"],"sourceRoot":"../../../../src","sources":["blank-stack/components/stack-view.native.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ var _screenComposer = require("../../shared/providers/screen/screen-composer");
|
|
|
12
12
|
var _core = require("../../shared/providers/stack/core.provider");
|
|
13
13
|
var _managed = require("../../shared/providers/stack/managed.provider");
|
|
14
14
|
var _stack = require("../../shared/types/stack.types");
|
|
15
|
+
var _visibility = require("../../shared/utils/overlay/visibility");
|
|
15
16
|
var _componentScreen = require("./component-screen");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -27,7 +28,7 @@ const SceneView = /*#__PURE__*/React.memo(function SceneView({
|
|
|
27
28
|
value: navigation,
|
|
28
29
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_native.NavigationRouteContext.Provider, {
|
|
29
30
|
value: route,
|
|
30
|
-
children: [descriptor.options
|
|
31
|
+
children: [(0, _visibility.isScreenOverlayVisible)(descriptor.options) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_overlay.Overlay.Screen, {}), render()]
|
|
31
32
|
})
|
|
32
33
|
});
|
|
33
34
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","_react","_interopRequireWildcard","React","_overlay","_screenComposer","_core","_managed","_stack","_componentScreen","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SceneView","memo","descriptor","route","navigation","render","jsx","NavigationContext","Provider","value","children","jsxs","NavigationRouteContext","
|
|
1
|
+
{"version":3,"names":["_native","require","_react","_interopRequireWildcard","React","_overlay","_screenComposer","_core","_managed","_stack","_visibility","_componentScreen","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SceneView","memo","descriptor","route","navigation","render","jsx","NavigationContext","Provider","value","children","jsxs","NavigationRouteContext","isScreenOverlayVisible","options","Overlay","Screen","StackView","exports","withStackCore","TRANSITIONS_ALWAYS_ON","STACK_TYPE","StackType","COMPONENT","withManagedStack","scenes","shouldShowFloatOverlay","Fragment","Float","map","scene","sceneIndex","previousDescriptor","undefined","nextDescriptor","ComponentScreen","routeKey","key","ScreenComposer","previous","current","next"],"sourceRoot":"../../../../src","sources":["component-stack/components/stack-view.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveSnapTargetEntry = resolveSnapTargetEntry;
|
|
7
|
+
var _history = require("../stores/history.store");
|
|
8
|
+
const hasSnapPoints = entry => {
|
|
9
|
+
const snapPoints = entry.descriptor.options?.snapPoints;
|
|
10
|
+
return Boolean(snapPoints && snapPoints.length > 0);
|
|
11
|
+
};
|
|
12
|
+
const getNavigatorLineage = entry => {
|
|
13
|
+
const keys = [];
|
|
14
|
+
const visited = new Set();
|
|
15
|
+
let nav = entry.descriptor.navigation;
|
|
16
|
+
while (nav) {
|
|
17
|
+
const key = nav.getState?.()?.key;
|
|
18
|
+
if (typeof key === "string" && key.length > 0 && !visited.has(key)) {
|
|
19
|
+
keys.push(key);
|
|
20
|
+
visited.add(key);
|
|
21
|
+
}
|
|
22
|
+
if (typeof nav.getParent !== "function") {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
nav = nav.getParent();
|
|
26
|
+
}
|
|
27
|
+
if (!visited.has(entry.navigatorKey)) {
|
|
28
|
+
keys.push(entry.navigatorKey);
|
|
29
|
+
}
|
|
30
|
+
return keys;
|
|
31
|
+
};
|
|
32
|
+
function resolveSnapTargetEntry() {
|
|
33
|
+
const anchor = _history.HistoryStore.getMostRecent();
|
|
34
|
+
if (!anchor) return undefined;
|
|
35
|
+
const lineageKeys = getNavigatorLineage(anchor);
|
|
36
|
+
for (const navigatorKey of lineageKeys) {
|
|
37
|
+
const match = _history.HistoryStore.getByNavigator(navigatorKey).find(hasSnapPoints);
|
|
38
|
+
if (match) return match;
|
|
39
|
+
}
|
|
40
|
+
const all = _history.HistoryStore.toArray();
|
|
41
|
+
for (let i = all.length - 1; i >= 0; i--) {
|
|
42
|
+
if (hasSnapPoints(all[i])) {
|
|
43
|
+
return all[i];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=resolve-snap-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_history","require","hasSnapPoints","entry","snapPoints","descriptor","options","Boolean","length","getNavigatorLineage","keys","visited","Set","nav","navigation","key","getState","has","push","add","getParent","navigatorKey","resolveSnapTargetEntry","anchor","HistoryStore","getMostRecent","undefined","lineageKeys","match","getByNavigator","find","all","toArray","i"],"sourceRoot":"../../../../src","sources":["shared/animation/resolve-snap-target.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GAAIC,KAAmB,IAAc;EACvD,MAAMC,UAAU,GAAGD,KAAK,CAACE,UAAU,CAACC,OAAO,EAAEF,UAAU;EACvD,OAAOG,OAAO,CAACH,UAAU,IAAIA,UAAU,CAACI,MAAM,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAMC,mBAAmB,GAAIN,KAAmB,IAAe;EAC9D,MAAMO,IAAc,GAAG,EAAE;EACzB,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAS,CAAC;EAEjC,IAAIC,GAAQ,GAAGV,KAAK,CAACE,UAAU,CAACS,UAAU;EAC1C,OAAOD,GAAG,EAAE;IACX,MAAME,GAAG,GAAGF,GAAG,CAACG,QAAQ,GAAG,CAAC,EAAED,GAAG;IACjC,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACP,MAAM,GAAG,CAAC,IAAI,CAACG,OAAO,CAACM,GAAG,CAACF,GAAG,CAAC,EAAE;MACnEL,IAAI,CAACQ,IAAI,CAACH,GAAG,CAAC;MACdJ,OAAO,CAACQ,GAAG,CAACJ,GAAG,CAAC;IACjB;IAEA,IAAI,OAAOF,GAAG,CAACO,SAAS,KAAK,UAAU,EAAE;MACxC;IACD;IAEAP,GAAG,GAAGA,GAAG,CAACO,SAAS,CAAC,CAAC;EACtB;EAEA,IAAI,CAACT,OAAO,CAACM,GAAG,CAACd,KAAK,CAACkB,YAAY,CAAC,EAAE;IACrCX,IAAI,CAACQ,IAAI,CAACf,KAAK,CAACkB,YAAY,CAAC;EAC9B;EAEA,OAAOX,IAAI;AACZ,CAAC;AAEM,SAASY,sBAAsBA,CAAA,EAA6B;EAClE,MAAMC,MAAM,GAAGC,qBAAY,CAACC,aAAa,CAAC,CAAC;EAC3C,IAAI,CAACF,MAAM,EAAE,OAAOG,SAAS;EAE7B,MAAMC,WAAW,GAAGlB,mBAAmB,CAACc,MAAM,CAAC;EAE/C,KAAK,MAAMF,YAAY,IAAIM,WAAW,EAAE;IACvC,MAAMC,KAAK,GAAGJ,qBAAY,CAACK,cAAc,CAACR,YAAY,CAAC,CAACS,IAAI,CAAC5B,aAAa,CAAC;IAC3E,IAAI0B,KAAK,EAAE,OAAOA,KAAK;EACxB;EAEA,MAAMG,GAAG,GAAGP,qBAAY,CAACQ,OAAO,CAAC,CAAC;EAClC,KAAK,IAAIC,CAAC,GAAGF,GAAG,CAACvB,MAAM,GAAG,CAAC,EAAEyB,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACzC,IAAI/B,aAAa,CAAC6B,GAAG,CAACE,CAAC,CAAC,CAAC,EAAE;MAC1B,OAAOF,GAAG,CAACE,CAAC,CAAC;IACd;EACD;EAEA,OAAOP,SAAS;AACjB","ignoreList":[]}
|
|
@@ -3,14 +3,45 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.snapDescriptorToIndex = snapDescriptorToIndex;
|
|
6
7
|
exports.snapTo = snapTo;
|
|
7
8
|
var _reactNativeReanimated = require("react-native-reanimated");
|
|
8
9
|
var _specs = require("../configs/specs");
|
|
9
10
|
var _animation = require("../stores/animation.store");
|
|
10
|
-
var _history = require("../stores/history.store");
|
|
11
11
|
var _animateToProgress = require("../utils/animation/animate-to-progress");
|
|
12
12
|
var _logger = require("../utils/logger");
|
|
13
|
-
|
|
13
|
+
var _resolveSnapTarget = require("./resolve-snap-target");
|
|
14
|
+
const getSortedSnapPoints = descriptor => {
|
|
15
|
+
const snapPoints = descriptor.options?.snapPoints;
|
|
16
|
+
if (!snapPoints || snapPoints.length === 0) return null;
|
|
17
|
+
return [...snapPoints].sort((a, b) => a - b);
|
|
18
|
+
};
|
|
19
|
+
function snapDescriptorToIndex(descriptor, index) {
|
|
20
|
+
const sorted = getSortedSnapPoints(descriptor);
|
|
21
|
+
if (!sorted) {
|
|
22
|
+
_logger.logger.warn("snapTo: target screen has no snapPoints");
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (index < 0 || index >= sorted.length) {
|
|
26
|
+
_logger.logger.warn(`snapTo: index ${index} out of bounds (0-${sorted.length - 1})`);
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const targetProgress = sorted[index];
|
|
30
|
+
const animations = _animation.AnimationStore.getAll(descriptor.route.key);
|
|
31
|
+
(0, _reactNativeReanimated.runOnUI)(() => {
|
|
32
|
+
"worklet";
|
|
33
|
+
|
|
34
|
+
(0, _animateToProgress.animateToProgress)({
|
|
35
|
+
target: targetProgress,
|
|
36
|
+
animations,
|
|
37
|
+
spec: {
|
|
38
|
+
open: descriptor.options.transitionSpec?.expand ?? _specs.DefaultSnapSpec,
|
|
39
|
+
close: descriptor.options.transitionSpec?.collapse ?? _specs.DefaultSnapSpec
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
})();
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
14
45
|
|
|
15
46
|
/**
|
|
16
47
|
* Programmatically snap the currently focused screen to a specific snap point.
|
|
@@ -29,41 +60,11 @@ var _logger = require("../utils/logger");
|
|
|
29
60
|
* ```
|
|
30
61
|
*/
|
|
31
62
|
function snapTo(index) {
|
|
32
|
-
|
|
33
|
-
// This handles cases where parent screens (e.g., expo-router) register after
|
|
34
|
-
// ComponentStack screens, but the ComponentStack is what we want to snap.
|
|
35
|
-
const allHistory = _history.HistoryStore.toArray();
|
|
36
|
-
const screenWithSnapPoints = allHistory.filter(entry => {
|
|
37
|
-
const sp = entry.descriptor.options?.snapPoints;
|
|
38
|
-
return sp && sp.length > 0;
|
|
39
|
-
}).pop(); // Last item is most recent (toArray returns oldest-first)
|
|
40
|
-
|
|
63
|
+
const screenWithSnapPoints = (0, _resolveSnapTarget.resolveSnapTargetEntry)();
|
|
41
64
|
if (!screenWithSnapPoints) {
|
|
42
65
|
_logger.logger.warn("snapTo: No screens with snapPoints in history");
|
|
43
66
|
return;
|
|
44
67
|
}
|
|
45
|
-
|
|
46
|
-
descriptor
|
|
47
|
-
} = screenWithSnapPoints;
|
|
48
|
-
const snapPoints = descriptor.options.snapPoints;
|
|
49
|
-
const sorted = [...snapPoints].sort((a, b) => a - b);
|
|
50
|
-
if (index < 0 || index >= sorted.length) {
|
|
51
|
-
_logger.logger.warn(`snapTo: index ${index} out of bounds (0-${sorted.length - 1})`);
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
const targetProgress = sorted[index];
|
|
55
|
-
const animations = _animation.AnimationStore.getAll(descriptor.route.key);
|
|
56
|
-
(0, _reactNativeReanimated.runOnUI)(() => {
|
|
57
|
-
"worklet";
|
|
58
|
-
|
|
59
|
-
(0, _animateToProgress.animateToProgress)({
|
|
60
|
-
target: targetProgress,
|
|
61
|
-
animations,
|
|
62
|
-
spec: {
|
|
63
|
-
open: descriptor.options.transitionSpec?.expand ?? _specs.DefaultSnapSpec,
|
|
64
|
-
close: descriptor.options.transitionSpec?.collapse ?? _specs.DefaultSnapSpec
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
})();
|
|
68
|
+
snapDescriptorToIndex(screenWithSnapPoints.descriptor, index);
|
|
68
69
|
}
|
|
69
70
|
//# sourceMappingURL=snap-to.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeReanimated","require","_specs","_animation","
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","_specs","_animation","_animateToProgress","_logger","_resolveSnapTarget","getSortedSnapPoints","descriptor","snapPoints","options","length","sort","a","b","snapDescriptorToIndex","index","sorted","logger","warn","targetProgress","animations","AnimationStore","getAll","route","key","runOnUI","animateToProgress","target","spec","open","transitionSpec","expand","DefaultSnapSpec","close","collapse","snapTo","screenWithSnapPoints","resolveSnapTargetEntry"],"sourceRoot":"../../../../src","sources":["shared/animation/snap-to.ts"],"mappings":";;;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAEA,MAAMM,mBAAmB,GACxBC,UAAsC,IACjB;EACrB,MAAMC,UAAU,GAAGD,UAAU,CAACE,OAAO,EAAED,UAAU;EACjD,IAAI,CAACA,UAAU,IAAIA,UAAU,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EACvD,OAAO,CAAC,GAAGF,UAAU,CAAC,CAACG,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;AAC7C,CAAC;AAEM,SAASC,qBAAqBA,CACpCP,UAAsC,EACtCQ,KAAa,EACH;EACV,MAAMC,MAAM,GAAGV,mBAAmB,CAACC,UAAU,CAAC;EAC9C,IAAI,CAACS,MAAM,EAAE;IACZC,cAAM,CAACC,IAAI,CAAC,yCAAyC,CAAC;IACtD,OAAO,KAAK;EACb;EAEA,IAAIH,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAIC,MAAM,CAACN,MAAM,EAAE;IACxCO,cAAM,CAACC,IAAI,CACV,iBAAiBH,KAAK,qBAAqBC,MAAM,CAACN,MAAM,GAAG,CAAC,GAC7D,CAAC;IACD,OAAO,KAAK;EACb;EAEA,MAAMS,cAAc,GAAGH,MAAM,CAACD,KAAK,CAAC;EACpC,MAAMK,UAAU,GAAGC,yBAAc,CAACC,MAAM,CAACf,UAAU,CAACgB,KAAK,CAACC,GAAG,CAAC;EAE9D,IAAAC,8BAAO,EAAC,MAAM;IACb,SAAS;;IACT,IAAAC,oCAAiB,EAAC;MACjBC,MAAM,EAAER,cAAc;MACtBC,UAAU;MACVQ,IAAI,EAAE;QACLC,IAAI,EAAEtB,UAAU,CAACE,OAAO,CAACqB,cAAc,EAAEC,MAAM,IAAIC,sBAAe;QAClEC,KAAK,EAAE1B,UAAU,CAACE,OAAO,CAACqB,cAAc,EAAEI,QAAQ,IAAIF;MACvD;IACD,CAAC,CAAC;EACH,CAAC,CAAC,CAAC,CAAC;EAEJ,OAAO,IAAI;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,MAAMA,CAACpB,KAAa,EAAQ;EAC3C,MAAMqB,oBAAoB,GAAG,IAAAC,yCAAsB,EAAC,CAAC;EAErD,IAAI,CAACD,oBAAoB,EAAE;IAC1BnB,cAAM,CAACC,IAAI,CAAC,+CAA+C,CAAC;IAC5D;EACD;EAEAJ,qBAAqB,CAACsB,oBAAoB,CAAC7B,UAAU,EAAEQ,KAAK,CAAC;AAC9D","ignoreList":[]}
|
|
@@ -20,8 +20,14 @@ function createTransitionAwareComponent(Wrapped, options = {}) {
|
|
|
20
20
|
} = options;
|
|
21
21
|
const AnimatedComponent = _reactNativeReanimated.default.createAnimatedComponent(Wrapped);
|
|
22
22
|
const ScrollableInner = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
|
|
23
|
+
const {
|
|
24
|
+
remeasureOnFocus: _remeasureOnFocus,
|
|
25
|
+
onScroll: userOnScroll,
|
|
26
|
+
...scrollableProps
|
|
27
|
+
} = props;
|
|
28
|
+
|
|
23
29
|
// Determine scroll direction from the horizontal prop (standard ScrollView API)
|
|
24
|
-
const scrollDirection =
|
|
30
|
+
const scrollDirection = scrollableProps.horizontal ? "horizontal" : "vertical";
|
|
25
31
|
|
|
26
32
|
// Get scroll handlers and the gesture owner's nativeGesture for this axis
|
|
27
33
|
const {
|
|
@@ -30,18 +36,18 @@ function createTransitionAwareComponent(Wrapped, options = {}) {
|
|
|
30
36
|
onLayout,
|
|
31
37
|
nativeGesture
|
|
32
38
|
} = (0, _useScrollRegistry.useScrollRegistry)({
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
onLayout: props.onLayout,
|
|
39
|
+
onContentSizeChange: scrollableProps.onContentSizeChange,
|
|
40
|
+
onLayout: scrollableProps.onLayout,
|
|
36
41
|
direction: scrollDirection
|
|
37
42
|
});
|
|
43
|
+
const composedScrollHandler = (0, _reactNativeReanimated.useComposedEventHandler)([scrollHandler, userOnScroll ?? null]);
|
|
38
44
|
const scrollableComponent = /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedComponent, {
|
|
39
|
-
...
|
|
45
|
+
...scrollableProps,
|
|
40
46
|
ref: ref,
|
|
41
|
-
onScroll:
|
|
47
|
+
onScroll: composedScrollHandler,
|
|
42
48
|
onContentSizeChange: onContentSizeChange,
|
|
43
49
|
onLayout: onLayout,
|
|
44
|
-
scrollEventThrottle:
|
|
50
|
+
scrollEventThrottle: scrollableProps.scrollEventThrottle || 16
|
|
45
51
|
});
|
|
46
52
|
|
|
47
53
|
// If no gesture owner found for this axis, render without GestureDetector
|
|
@@ -60,6 +66,7 @@ function createTransitionAwareComponent(Wrapped, options = {}) {
|
|
|
60
66
|
sharedBoundTag,
|
|
61
67
|
styleId,
|
|
62
68
|
onPress,
|
|
69
|
+
remeasureOnFocus,
|
|
63
70
|
...rest
|
|
64
71
|
} = props;
|
|
65
72
|
const animatedRef = (0, _reactNativeReanimated.useAnimatedRef)();
|
|
@@ -74,6 +81,7 @@ function createTransitionAwareComponent(Wrapped, options = {}) {
|
|
|
74
81
|
style: style,
|
|
75
82
|
onPress: onPress,
|
|
76
83
|
sharedBoundTag: sharedBoundTag,
|
|
84
|
+
remeasureOnFocus: remeasureOnFocus,
|
|
77
85
|
children: ({
|
|
78
86
|
captureActiveOnPress,
|
|
79
87
|
handleInitialLayout
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_useAssociatedStyle","_useScrollRegistry","_registerBounds","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createTransitionAwareComponent","Wrapped","options","isScrollable","AnimatedComponent","Animated","createAnimatedComponent","ScrollableInner","forwardRef","props","ref","scrollDirection","horizontal","scrollHandler","onContentSizeChange","onLayout","nativeGesture","useScrollRegistry","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_useAssociatedStyle","_useScrollRegistry","_registerBounds","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createTransitionAwareComponent","Wrapped","options","isScrollable","AnimatedComponent","Animated","createAnimatedComponent","ScrollableInner","forwardRef","props","ref","remeasureOnFocus","_remeasureOnFocus","onScroll","userOnScroll","scrollableProps","scrollDirection","horizontal","scrollHandler","onContentSizeChange","onLayout","nativeGesture","useScrollRegistry","direction","composedScrollHandler","useComposedEventHandler","scrollableComponent","jsx","scrollEventThrottle","GestureDetector","gesture","children","Inner","_","style","sharedBoundTag","styleId","onPress","rest","animatedRef","useAnimatedRef","associatedStyles","useAssociatedStyles","id","RegisterBoundsProvider","captureActiveOnPress","handleInitialLayout","runOnUI","collapsable","memo"],"sourceRoot":"../../../../src","sources":["shared/components/create-transition-aware-component.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,10 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getActiveFloatOverlay = getActiveFloatOverlay;
|
|
7
|
+
var _visibility = require("../../../utils/overlay/visibility");
|
|
7
8
|
/**
|
|
8
9
|
* Find the active float overlay from scenes.
|
|
9
10
|
* Scans from the top of the stack downward to find the first screen
|
|
10
|
-
* with
|
|
11
|
+
* with a visible overlay that isn't explicitly set to legacy screen mode.
|
|
11
12
|
*/
|
|
12
13
|
function getActiveFloatOverlay(scenes, index, transitionsAlwaysOn) {
|
|
13
14
|
if (scenes.length === 0) {
|
|
@@ -27,7 +28,7 @@ function getActiveFloatOverlay(scenes, index, transitionsAlwaysOn) {
|
|
|
27
28
|
if (!transitionsAlwaysOn && !options?.enableTransitions) {
|
|
28
29
|
continue;
|
|
29
30
|
}
|
|
30
|
-
if (
|
|
31
|
+
if ((0, _visibility.isFloatOverlayVisible)(options)) {
|
|
31
32
|
return {
|
|
32
33
|
scene,
|
|
33
34
|
overlayIndex: i
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getActiveFloatOverlay","scenes","index","transitionsAlwaysOn","length","startIndex","Math","max","i","scene","options","descriptor","enableTransitions","
|
|
1
|
+
{"version":3,"names":["_visibility","require","getActiveFloatOverlay","scenes","index","transitionsAlwaysOn","length","startIndex","Math","max","i","scene","options","descriptor","enableTransitions","isFloatOverlayVisible","overlayIndex"],"sourceRoot":"../../../../../../src","sources":["shared/components/overlay/helpers/get-active-overlay.ts"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CACpCC,MAAoB,EACpBC,KAAa,EACbC,mBAA4B,EACyB;EACrD,IAAIF,MAAM,CAACG,MAAM,KAAK,CAAC,EAAE;IACxB,OAAO,IAAI;EACZ;;EAEA;EACA;EACA;EACA;EACA,MAAMC,UAAU,GAAGC,IAAI,CAACC,GAAG,CAACL,KAAK,EAAED,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC;EAErD,KAAK,IAAII,CAAC,GAAGH,UAAU,EAAEG,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACrC,MAAMC,KAAK,GAAGR,MAAM,CAACO,CAAC,CAAC;IACvB,MAAME,OAAO,GAAGD,KAAK,EAAEE,UAAU,EAAED,OAAO;;IAE1C;IACA,IAAI,CAACP,mBAAmB,IAAI,CAACO,OAAO,EAAEE,iBAAiB,EAAE;MACxD;IACD;IAEA,IAAI,IAAAC,iCAAqB,EAACH,OAAO,CAAC,EAAE;MACnC,OAAO;QAAED,KAAK;QAAEK,YAAY,EAAEN;MAAE,CAAC;IAClC;EACD;EAEA,OAAO,IAAI;AACZ","ignoreList":[]}
|