react-native-screen-transitions 3.6.0-alpha.2 → 3.6.0-alpha.4
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/lib/commonjs/shared/constants.js +5 -6
- package/lib/commonjs/shared/constants.js.map +1 -1
- package/lib/commonjs/shared/hooks/navigation/use-stack.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/build-screen-transition-options.js +2 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/build-screen-transition-options.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +33 -3
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/snap-points.js +2 -2
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/snap-points.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +8 -4
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/selected-interpolator-options.js +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/selected-interpolator-options.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js +25 -0
- package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +4 -4
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/shared/policy.js +13 -4
- package/lib/commonjs/shared/providers/screen/gestures/shared/policy.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/options/helpers.js +10 -3
- package/lib/commonjs/shared/providers/screen/options/helpers.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/direct.provider.js +1 -3
- package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/helpers/use-stack-derived.js +2 -12
- package/lib/commonjs/shared/providers/stack/helpers/use-stack-derived.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/managed.provider.js +1 -3
- package/lib/commonjs/shared/providers/stack/managed.provider.js.map +1 -1
- package/lib/commonjs/shared/stores/animation.store.js +5 -3
- package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/index.js +3 -2
- package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +36 -15
- package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/reveal/math.js +24 -4
- package/lib/commonjs/shared/utils/bounds/navigation/reveal/math.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +2 -2
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/module/shared/constants.js +4 -5
- package/lib/module/shared/constants.js.map +1 -1
- package/lib/module/shared/hooks/navigation/use-stack.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/build-screen-transition-options.js +2 -1
- package/lib/module/shared/providers/screen/animation/helpers/build-screen-transition-options.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +33 -3
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/snap-points.js +2 -2
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/snap-points.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +8 -4
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/selected-interpolator-options.js +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/selected-interpolator-options.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js +20 -0
- package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -0
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +4 -4
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/shared/policy.js +14 -5
- package/lib/module/shared/providers/screen/gestures/shared/policy.js.map +1 -1
- package/lib/module/shared/providers/screen/options/helpers.js +11 -4
- package/lib/module/shared/providers/screen/options/helpers.js.map +1 -1
- package/lib/module/shared/providers/stack/direct.provider.js +1 -3
- package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/module/shared/providers/stack/helpers/use-stack-derived.js +2 -12
- package/lib/module/shared/providers/stack/helpers/use-stack-derived.js.map +1 -1
- package/lib/module/shared/providers/stack/managed.provider.js +1 -3
- package/lib/module/shared/providers/stack/managed.provider.js.map +1 -1
- package/lib/module/shared/stores/animation.store.js +5 -3
- package/lib/module/shared/stores/animation.store.js.map +1 -1
- package/lib/module/shared/types/animation.types.js +2 -1
- package/lib/module/shared/types/animation.types.js.map +1 -1
- package/lib/module/shared/types/bounds.types.js.map +1 -1
- package/lib/module/shared/utils/bounds/index.js +3 -2
- package/lib/module/shared/utils/bounds/index.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/reveal/build.js +38 -17
- package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/reveal/math.js +24 -5
- package/lib/module/shared/utils/bounds/navigation/reveal/math.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/zoom/build.js +2 -2
- package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts +4 -207
- package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/index.d.ts +2 -2
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +1 -1
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
- package/lib/typescript/shared/components/scene-view.d.ts +1 -1
- package/lib/typescript/shared/components/scene-view.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts +2 -2
- package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
- package/lib/typescript/shared/constants.d.ts +3 -2
- package/lib/typescript/shared/constants.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +0 -1
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +14 -14
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/snap-points.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/snap-points.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts +2 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/selected-interpolator-options.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts +3 -0
- package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +2 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/shared/policy.d.ts +4 -4
- package/lib/typescript/shared/providers/screen/gestures/shared/policy.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/options/helpers.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/options/types.d.ts +2 -1
- package/lib/typescript/shared/providers/screen/options/types.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/components/maybe-floating-container.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/styles/components/maybe-floating-container.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/direct.provider.d.ts +1 -1
- package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/helpers/use-stack-derived.d.ts +5 -5
- package/lib/typescript/shared/providers/stack/helpers/use-stack-derived.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/managed.provider.d.ts +1 -1
- package/lib/typescript/shared/providers/stack/managed.provider.d.ts.map +1 -1
- package/lib/typescript/shared/stores/animation.store.d.ts +4 -3
- package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
- package/lib/typescript/shared/types/animation.types.d.ts +7 -3
- package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/bounds.types.d.ts +69 -1
- package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/index.d.ts +2 -2
- package/lib/typescript/shared/types/index.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +13 -26
- 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/bounds/navigation/reveal/build.d.ts +1 -1
- package/lib/typescript/shared/utils/bounds/navigation/reveal/build.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/navigation/reveal/math.d.ts +12 -2
- package/lib/typescript/shared/utils/bounds/navigation/reveal/math.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/navigation/reveal/types.d.ts +2 -1
- package/lib/typescript/shared/utils/bounds/navigation/reveal/types.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/shared/constants.ts +6 -4
- package/src/shared/hooks/navigation/use-stack.tsx +0 -1
- package/src/shared/providers/screen/animation/helpers/build-screen-transition-options.ts +2 -2
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/index.ts +58 -4
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/snap-points.ts +2 -1
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/types.ts +2 -1
- package/src/shared/providers/screen/animation/helpers/pipeline.ts +20 -6
- package/src/shared/providers/screen/animation/helpers/selected-interpolator-options.ts +0 -2
- package/src/shared/providers/screen/animation/helpers/stack-progress.ts +29 -0
- package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +5 -12
- package/src/shared/providers/screen/gestures/shared/policy.ts +20 -7
- package/src/shared/providers/screen/options/helpers.ts +22 -9
- package/src/shared/providers/screen/options/types.ts +2 -1
- package/src/shared/providers/stack/direct.provider.tsx +3 -13
- package/src/shared/providers/stack/helpers/use-stack-derived.ts +6 -15
- package/src/shared/providers/stack/managed.provider.tsx +2 -6
- package/src/shared/stores/animation.store.ts +6 -3
- package/src/shared/types/animation.types.ts +11 -3
- package/src/shared/types/bounds.types.ts +72 -1
- package/src/shared/types/index.ts +2 -0
- package/src/shared/types/screen.types.ts +13 -26
- package/src/shared/utils/bounds/index.ts +3 -1
- package/src/shared/utils/bounds/navigation/reveal/build.ts +56 -24
- package/src/shared/utils/bounds/navigation/reveal/math.ts +34 -4
- package/src/shared/utils/bounds/navigation/reveal/types.ts +2 -0
- package/src/shared/utils/bounds/navigation/zoom/build.ts +2 -2
|
@@ -3,6 +3,7 @@ import { NAVIGATION_MASK_CONTAINER_STYLE_ID, NAVIGATION_MASK_ELEMENT_STYLE_ID }
|
|
|
3
3
|
import type { MeasuredEntry } from "../stores/bounds";
|
|
4
4
|
import type { BoundId, BoundsOptions, BoundsOptionsResult } from "../utils/bounds/types/options";
|
|
5
5
|
import type { ScreenInterpolationProps, TransitionInterpolatedStyle, TransitionSlotStyle } from "./animation.types";
|
|
6
|
+
import type { GestureProgressMode } from "./gesture.types";
|
|
6
7
|
/**
|
|
7
8
|
* Target style computation.
|
|
8
9
|
* - "transform": translates and scales (scaleX/scaleY), no width/height size
|
|
@@ -141,10 +142,77 @@ export type BoundsNavigationZoomStyle = TransitionInterpolatedStyle & {
|
|
|
141
142
|
[NAVIGATION_MASK_CONTAINER_STYLE_ID]?: TransitionSlotStyle;
|
|
142
143
|
[NAVIGATION_MASK_ELEMENT_STYLE_ID]?: TransitionSlotStyle;
|
|
143
144
|
};
|
|
145
|
+
export type BoundsNavigationRevealOptions = {
|
|
146
|
+
/**
|
|
147
|
+
* Destination mask border radius.
|
|
148
|
+
*
|
|
149
|
+
* Reveal interpolates from the measured source border radius to this value.
|
|
150
|
+
*
|
|
151
|
+
* @default Platform-specific reveal radius
|
|
152
|
+
*/
|
|
153
|
+
borderRadius?: number;
|
|
154
|
+
/**
|
|
155
|
+
* Whether the reveal mask should use React Native's continuous border curve.
|
|
156
|
+
*
|
|
157
|
+
* @default true
|
|
158
|
+
*/
|
|
159
|
+
borderContinuous?: boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Maximum dynamic gesture sensitivity applied by reveal.
|
|
162
|
+
*
|
|
163
|
+
* Reveal lowers gesture sensitivity as the drag gets deeper so the masked
|
|
164
|
+
* container can keep its source-to-destination handoff stable. This value
|
|
165
|
+
* controls the starting/highest sensitivity in that curve.
|
|
166
|
+
*
|
|
167
|
+
* @default 0.8
|
|
168
|
+
*/
|
|
169
|
+
maxSensitivity?: number;
|
|
170
|
+
/**
|
|
171
|
+
* Velocity-driven depth applied to the dismiss scale handoff.
|
|
172
|
+
*
|
|
173
|
+
* Higher values make fast releases orbit farther around the final source
|
|
174
|
+
* scale. Set to `0` to remove the velocity depth effect.
|
|
175
|
+
*
|
|
176
|
+
* @default 0.5
|
|
177
|
+
*/
|
|
178
|
+
velocityDepth?: number;
|
|
179
|
+
/**
|
|
180
|
+
* Whether gesture displacement should drive transition progress or remain as
|
|
181
|
+
* freeform gesture values. Reveal defaults to `"freeform"` so drag can move
|
|
182
|
+
* the masked container without owning the whole screen progress.
|
|
183
|
+
*
|
|
184
|
+
* @default "freeform"
|
|
185
|
+
*/
|
|
186
|
+
gestureProgressMode?: GestureProgressMode;
|
|
187
|
+
/**
|
|
188
|
+
* Temporarily blocks pointer-event pass-through on the inactive content until
|
|
189
|
+
* the source element transition handoff reaches progress `0.25`.
|
|
190
|
+
*
|
|
191
|
+
* This is intentional and most users cannot react fast enough to swipe during
|
|
192
|
+
* that brief handoff. If it becomes an issue, set this to `false` to disable
|
|
193
|
+
* the guard and keep the default behavior that allows pointer events to pass
|
|
194
|
+
* through.
|
|
195
|
+
*
|
|
196
|
+
* @default true
|
|
197
|
+
*/
|
|
198
|
+
disablePointerEventsTillElementTransition?: boolean;
|
|
199
|
+
/**
|
|
200
|
+
* How reveal should resize the navigation mask element.
|
|
201
|
+
*
|
|
202
|
+
* `"auto"` uses the platform default. Android defaults to transform-based
|
|
203
|
+
* resizing to avoid masked-size animation cost, while other platforms animate
|
|
204
|
+
* width and height. Transform-based resizing can make large border radii look
|
|
205
|
+
* less natural on Android; use `"size"` to force width/height animation when
|
|
206
|
+
* radius quality is more important than that optimization.
|
|
207
|
+
*
|
|
208
|
+
* @default "auto"
|
|
209
|
+
*/
|
|
210
|
+
maskSizingMode?: "auto" | "transform" | "size";
|
|
211
|
+
};
|
|
144
212
|
export type BoundsNavigationRevealStyle = BoundsNavigationZoomStyle;
|
|
145
213
|
export type BoundsNavigationAccessor = {
|
|
146
214
|
zoom: (options?: BoundsNavigationZoomOptions) => BoundsNavigationZoomStyle;
|
|
147
|
-
reveal: () => BoundsNavigationRevealStyle;
|
|
215
|
+
reveal: (options?: BoundsNavigationRevealOptions) => BoundsNavigationRevealStyle;
|
|
148
216
|
};
|
|
149
217
|
type BoundsBoundNavigationAccessor = {
|
|
150
218
|
navigation: BoundsNavigationAccessor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounds.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/bounds.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACN,kCAAkC,EAClC,gCAAgC,EAChC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EACX,OAAO,EACP,aAAa,EACb,mBAAmB,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACX,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"bounds.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/bounds.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { FALSE, TRUE } from "../constants";
|
|
2
2
|
export type { AnimatedViewStyle, AnimationConfig, ScreenInterpolationProps, ScreenStyleInterpolator, ScreenTransitionOptions, ScreenTransitionState, TransitionInterpolatedStyle, TransitionInterpolatorOptions, TransitionSlotStyle, TransitionSpec, } from "./animation.types";
|
|
3
|
-
export type { BoundsAccessor, BoundsMethod, BoundsNavigationAccessor, BoundsNavigationRevealStyle, BoundsNavigationZoomOpacityRange, BoundsNavigationZoomOpacityRanges, BoundsNavigationZoomOptions, BoundsNavigationZoomStyle, } from "./bounds.types";
|
|
3
|
+
export type { BoundsAccessor, BoundsMethod, BoundsNavigationAccessor, BoundsNavigationRevealOptions, BoundsNavigationRevealStyle, BoundsNavigationZoomOpacityRange, BoundsNavigationZoomOpacityRanges, BoundsNavigationZoomOptions, BoundsNavigationZoomStyle, } from "./bounds.types";
|
|
4
4
|
export type { ActivationArea, GestureActivationArea, GestureDirection, GestureValues, PanGestureDirection, PinchGestureDirection, SideActivation, } from "./gesture.types";
|
|
5
5
|
export type { OverlayProps } from "./overlay.types";
|
|
6
|
-
export type { Layout, ScreenKey, ScreenTransitionConfig, TransitionAwareProps, } from "./screen.types";
|
|
6
|
+
export type { GestureTracking, Layout, ScreenKey, ScreenTransitionConfig, TransitionAwareProps, } from "./screen.types";
|
|
7
7
|
export type { BaseStackDescriptor, BaseStackNavigation, BaseStackRoute, BaseStackScene, BaseStackState, DescriptorMap, } from "./stack.types";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EACX,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,yBAAyB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EACX,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,GACb,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EACX,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,yBAAyB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EACX,eAAe,EACf,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,GACb,MAAM,eAAe,CAAC"}
|
|
@@ -18,16 +18,10 @@ export type ScreenLayouts = {
|
|
|
18
18
|
* auto snap-point sizing. It is undefined until a real measurement exists.
|
|
19
19
|
*/
|
|
20
20
|
content?: Layout;
|
|
21
|
-
/**
|
|
22
|
-
* Whether navigation bounds masking is enabled for this screen.
|
|
23
|
-
*
|
|
24
|
-
* When enabled, navigation zoom helpers target the masked container path
|
|
25
|
-
* instead of the plain content slot.
|
|
26
|
-
*/
|
|
27
|
-
navigationMaskEnabled: boolean;
|
|
28
21
|
};
|
|
29
22
|
export type ScreenKey = string;
|
|
30
23
|
export type SheetScrollGestureBehavior = "expand-and-collapse" | "collapse-only";
|
|
24
|
+
export type GestureTracking = "auto" | "never" | "always";
|
|
31
25
|
/**
|
|
32
26
|
* A single snap point value. Either a fraction of screen height (0–1) or
|
|
33
27
|
* `'auto'` to snap to the intrinsic height of the screen content.
|
|
@@ -115,21 +109,17 @@ export type ScreenTransitionConfig = {
|
|
|
115
109
|
*/
|
|
116
110
|
gestureEnabled?: boolean;
|
|
117
111
|
/**
|
|
118
|
-
*
|
|
119
|
-
* live gesture values while preventing gesture dismissal.
|
|
120
|
-
*
|
|
121
|
-
* This is a v3 compatibility bridge for the next gesture behavior. Direction
|
|
122
|
-
* ownership/claims participate while this is enabled so nested screens can
|
|
123
|
-
* intentionally shadow parent gestures for resistance-style animations.
|
|
112
|
+
* Controls whether the screen tracks live gesture values.
|
|
124
113
|
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
114
|
+
* - `"auto"` tracks gestures when dismissal is enabled, or when snap points
|
|
115
|
+
* can move without dismissal.
|
|
116
|
+
* - `"never"` disables gesture tracking for the screen.
|
|
117
|
+
* - `"always"` keeps tracking live gesture values even when
|
|
118
|
+
* `gestureEnabled` is `false`, without allowing dismiss.
|
|
128
119
|
*
|
|
129
|
-
* @
|
|
130
|
-
* @default false
|
|
120
|
+
* @default "auto"
|
|
131
121
|
*/
|
|
132
|
-
|
|
122
|
+
gestureTracking?: GestureTracking;
|
|
133
123
|
/**
|
|
134
124
|
* The direction(s) of the screen gesture used to dismiss the screen.
|
|
135
125
|
*
|
|
@@ -177,15 +167,12 @@ export type ScreenTransitionConfig = {
|
|
|
177
167
|
*/
|
|
178
168
|
gestureReleaseVelocityScale?: number;
|
|
179
169
|
/**
|
|
180
|
-
*
|
|
170
|
+
* Deprecated compatibility option.
|
|
181
171
|
*
|
|
182
|
-
* This
|
|
183
|
-
*
|
|
184
|
-
* animation intensity after `gestureReleaseVelocityScale` is applied.
|
|
172
|
+
* This option is no longer read by the runtime transition options. Use
|
|
173
|
+
* `gestureReleaseVelocityScale` to tune post-release spring energy.
|
|
185
174
|
*
|
|
186
|
-
* @deprecated v3 compatibility only.
|
|
187
|
-
* gesture runtime.
|
|
188
|
-
* @default 3.2
|
|
175
|
+
* @deprecated v3 compatibility only.
|
|
189
176
|
*/
|
|
190
177
|
gestureReleaseVelocityMax?: number;
|
|
191
178
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/screen.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EACX,uBAAuB,EACvB,cAAc,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACX,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"screen.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/screen.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/bounds/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EACd,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/bounds/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EACd,wBAAwB,EAGxB,MAAM,0BAA0B,CAAC;AAKlC,eAAO,MAAM,oBAAoB,GAChC,UAAU,MAAM,wBAAwB,KACtC,cA+BF,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { BuildRevealStylesParams, RevealInterpolatedStyle } from "./types";
|
|
2
|
-
export declare function buildRevealStyles({ tag, props, }: BuildRevealStylesParams): RevealInterpolatedStyle;
|
|
2
|
+
export declare function buildRevealStyles({ tag, props, revealOptions, }: BuildRevealStylesParams): RevealInterpolatedStyle;
|
|
3
3
|
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/utils/bounds/navigation/reveal/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/utils/bounds/navigation/reveal/build.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAMhF,wBAAgB,iBAAiB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,aAAa,GACb,EAAE,uBAAuB,GAAG,uBAAuB,CAibnD"}
|
|
@@ -11,15 +11,25 @@ export declare function resolveUniformScale({ sourceWidth, sourceHeight, destina
|
|
|
11
11
|
destinationWidth: number;
|
|
12
12
|
destinationHeight: number;
|
|
13
13
|
}): number;
|
|
14
|
-
export declare function resolveRevealGestureHandoff(rawDrag
|
|
14
|
+
export declare function resolveRevealGestureHandoff({ rawDrag, maxSensitivity, }: {
|
|
15
|
+
rawDrag: number;
|
|
16
|
+
maxSensitivity: number;
|
|
17
|
+
}): {
|
|
15
18
|
gestureSensitivity: number;
|
|
16
19
|
gestureReleaseVelocityScale: number;
|
|
17
20
|
};
|
|
18
|
-
export declare function resolveDismissScaleHandoff({ progress, releaseScale, targetScale, velocity, }: {
|
|
21
|
+
export declare function resolveDismissScaleHandoff({ progress, releaseScale, targetScale, velocity, velocityDepth, }: {
|
|
19
22
|
progress: number;
|
|
20
23
|
releaseScale: number;
|
|
21
24
|
targetScale: number;
|
|
22
25
|
velocity: number;
|
|
26
|
+
velocityDepth: number;
|
|
27
|
+
}): number;
|
|
28
|
+
export declare function resolveAspectRatioMaskHeight({ maskWidth, maskHeight, targetWidth, targetHeight, }: {
|
|
29
|
+
maskWidth: number;
|
|
30
|
+
maskHeight: number;
|
|
31
|
+
targetWidth: number;
|
|
32
|
+
targetHeight: number;
|
|
23
33
|
}): number;
|
|
24
34
|
export declare function resolveRevealContentBaseTransform({ progress, sourceBounds, destinationBounds, screenLayout, }: {
|
|
25
35
|
progress: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/utils/bounds/navigation/reveal/math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/utils/bounds/navigation/reveal/math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAa7D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAGjE;AAED,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,UAQjB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,UAG7C;AAED,eAAO,MAAM,0BAA0B,GACtC,aAAa,MAAM,EACnB,WAAW,MAAM,WAejB,CAAC;AAEF,wBAAgB,iCAAiC,CAChD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,UAajB;AAED,wBAAgB,mBAAmB,CAAC,EACnC,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,GACjB,EAAE;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC1B,UAWA;AAED,wBAAgB,2BAA2B,CAAC,EAC3C,OAAO,EACP,cAAc,GACd,EAAE;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACvB;;;EAoBA;AAED,wBAAgB,0BAA0B,CAAC,EAC1C,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,GACb,EAAE;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACtB,UAWA;AAED,wBAAgB,4BAA4B,CAAC,EAC5C,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,GACZ,EAAE;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACrB,UAWA;AAYD,wBAAgB,iCAAiC,CAAC,EACjD,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,YAAY,GACZ,EAAE;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC;IACjC,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;CACrB;;;;EAgBA;AAED,wBAAgB,oCAAoC,CAAC,EACpD,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,GACZ,EAAE;IACF,YAAY,EAAE,kBAAkB,CAAC;IACjC,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACrB;;;;;EAuCA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NAVIGATION_MASK_CONTAINER_STYLE_ID, NAVIGATION_MASK_ELEMENT_STYLE_ID } from "../../../../constants";
|
|
2
|
-
import type { BoundsInterpolationProps, BoundsNavigationRevealStyle } from "../../../../types/bounds.types";
|
|
2
|
+
import type { BoundsInterpolationProps, BoundsNavigationRevealOptions, BoundsNavigationRevealStyle } from "../../../../types/bounds.types";
|
|
3
3
|
export type RevealInterpolatedStyle = BoundsNavigationRevealStyle & {
|
|
4
4
|
[NAVIGATION_MASK_CONTAINER_STYLE_ID]?: BoundsNavigationRevealStyle[typeof NAVIGATION_MASK_CONTAINER_STYLE_ID];
|
|
5
5
|
[NAVIGATION_MASK_ELEMENT_STYLE_ID]?: BoundsNavigationRevealStyle[typeof NAVIGATION_MASK_ELEMENT_STYLE_ID];
|
|
@@ -7,5 +7,6 @@ export type RevealInterpolatedStyle = BoundsNavigationRevealStyle & {
|
|
|
7
7
|
export type BuildRevealStylesParams = {
|
|
8
8
|
tag?: string;
|
|
9
9
|
props: BoundsInterpolationProps;
|
|
10
|
+
revealOptions?: BoundsNavigationRevealOptions;
|
|
10
11
|
};
|
|
11
12
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/utils/bounds/navigation/reveal/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kCAAkC,EAClC,gCAAgC,EAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACX,wBAAwB,EACxB,2BAA2B,EAC3B,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,GAAG;IACnE,CAAC,kCAAkC,CAAC,CAAC,EAAE,2BAA2B,CAAC,OAAO,kCAAkC,CAAC,CAAC;IAC9G,CAAC,gCAAgC,CAAC,CAAC,EAAE,2BAA2B,CAAC,OAAO,gCAAgC,CAAC,CAAC;CAC1G,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/utils/bounds/navigation/reveal/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kCAAkC,EAClC,gCAAgC,EAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACX,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,GAAG;IACnE,CAAC,kCAAkC,CAAC,CAAC,EAAE,2BAA2B,CAAC,OAAO,kCAAkC,CAAC,CAAC;IAC9G,CAAC,gCAAgC,CAAC,CAAC,EAAE,2BAA2B,CAAC,OAAO,gCAAgC,CAAC,CAAC;CAC1G,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,wBAAwB,CAAC;IAChC,aAAa,CAAC,EAAE,6BAA6B,CAAC;CAC9C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-screen-transitions",
|
|
3
|
-
"version": "3.6.0-alpha.
|
|
3
|
+
"version": "3.6.0-alpha.4",
|
|
4
4
|
"description": "Easy screen transitions for React Native and Expo",
|
|
5
5
|
"author": "Ed",
|
|
6
6
|
"license": "MIT",
|
|
@@ -78,8 +78,9 @@
|
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@testing-library/react-native": "13.3.3",
|
|
81
|
-
"@types/react": "~19.1.
|
|
82
|
-
"react-native-builder-bob": "0.
|
|
81
|
+
"@types/react": "~19.1.0",
|
|
82
|
+
"react-native-builder-bob": "0.41.0",
|
|
83
|
+
"react-test-renderer": "19.1.0",
|
|
83
84
|
"typescript": "catalog:"
|
|
84
85
|
},
|
|
85
86
|
"react-native-builder-bob": {
|
package/src/shared/constants.ts
CHANGED
|
@@ -9,7 +9,11 @@ import type {
|
|
|
9
9
|
ActivationArea,
|
|
10
10
|
GestureProgressMode,
|
|
11
11
|
} from "./types/gesture.types";
|
|
12
|
-
import type {
|
|
12
|
+
import type {
|
|
13
|
+
GestureTracking,
|
|
14
|
+
Layout,
|
|
15
|
+
SheetScrollGestureBehavior,
|
|
16
|
+
} from "./types/screen.types";
|
|
13
17
|
import type { BaseStackRoute } from "./types/stack.types";
|
|
14
18
|
|
|
15
19
|
/**
|
|
@@ -79,7 +83,6 @@ export const DEFAULT_SCREEN_TRANSITION_OPTIONS: ScreenTransitionOptions =
|
|
|
79
83
|
export const createScreenTransitionState = (
|
|
80
84
|
route: BaseStackRoute,
|
|
81
85
|
meta?: Record<string, unknown>,
|
|
82
|
-
navigationMaskEnabled = false,
|
|
83
86
|
options: ScreenTransitionOptions = DEFAULT_SCREEN_TRANSITION_OPTIONS,
|
|
84
87
|
): ScreenTransitionState => ({
|
|
85
88
|
progress: 0,
|
|
@@ -98,7 +101,6 @@ export const createScreenTransitionState = (
|
|
|
98
101
|
width: 0,
|
|
99
102
|
height: 0,
|
|
100
103
|
},
|
|
101
|
-
navigationMaskEnabled,
|
|
102
104
|
},
|
|
103
105
|
animatedSnapIndex: -1,
|
|
104
106
|
snapIndex: -1,
|
|
@@ -124,7 +126,6 @@ export const DEFAULT_SCREEN_TRANSITION_STATE: ScreenTransitionState =
|
|
|
124
126
|
width: 0,
|
|
125
127
|
height: 0,
|
|
126
128
|
},
|
|
127
|
-
navigationMaskEnabled: false,
|
|
128
129
|
},
|
|
129
130
|
animatedSnapIndex: -1,
|
|
130
131
|
snapIndex: -1,
|
|
@@ -164,6 +165,7 @@ export const DEFAULT_GESTURE_SNAP_VELOCITY_IMPACT = 0.1;
|
|
|
164
165
|
export const DEFAULT_GESTURE_SENSITIVITY = 1;
|
|
165
166
|
export const DEFAULT_GESTURE_RELEASE_VELOCITY_SCALE = 1;
|
|
166
167
|
export const DEFAULT_GESTURE_DIRECTION = "horizontal";
|
|
168
|
+
export const DEFAULT_GESTURE_TRACKING: GestureTracking = "auto";
|
|
167
169
|
export const DEFAULT_GESTURE_PROGRESS_MODE: GestureProgressMode =
|
|
168
170
|
"progress-driven";
|
|
169
171
|
export const DEFAULT_GESTURE_SNAP_LOCKED = false;
|
|
@@ -38,9 +38,9 @@ export const buildScreenTransitionOptions = (
|
|
|
38
38
|
: undefined;
|
|
39
39
|
|
|
40
40
|
return {
|
|
41
|
+
navigationMaskEnabled: options.navigationMaskEnabled,
|
|
41
42
|
gestureEnabled: options.gestureEnabled,
|
|
42
|
-
|
|
43
|
-
options.experimental_allowDisabledGestureTracking,
|
|
43
|
+
gestureTracking: options.gestureTracking,
|
|
44
44
|
gestureDirection: cloneGestureDirection(options.gestureDirection),
|
|
45
45
|
gestureSensitivity: options.gestureSensitivity,
|
|
46
46
|
gestureVelocityImpact: options.gestureVelocityImpact,
|
|
@@ -3,7 +3,10 @@ import {
|
|
|
3
3
|
LOGICAL_SETTLE_PROGRESS_THRESHOLD,
|
|
4
4
|
LOGICAL_SETTLE_REQUIRED_FRAMES,
|
|
5
5
|
} from "../../../../../constants";
|
|
6
|
-
import type {
|
|
6
|
+
import type {
|
|
7
|
+
ScreenTransitionOptions,
|
|
8
|
+
TransitionInterpolatorOptions,
|
|
9
|
+
} from "../../../../../types/animation.types";
|
|
7
10
|
import type { Layout } from "../../../../../types/screen.types";
|
|
8
11
|
import { resolveGestureDrivenProgress } from "./gesture-progress";
|
|
9
12
|
import {
|
|
@@ -21,14 +24,59 @@ import type { BuiltState } from "./types";
|
|
|
21
24
|
const LOGICAL_SETTLE_STICKY_PROGRESS_THRESHOLD =
|
|
22
25
|
LOGICAL_SETTLE_PROGRESS_THRESHOLD * 10;
|
|
23
26
|
|
|
27
|
+
const mergeTransitionOptions = (
|
|
28
|
+
base: ScreenTransitionOptions,
|
|
29
|
+
effective: TransitionInterpolatorOptions | undefined,
|
|
30
|
+
slot: ScreenTransitionOptions,
|
|
31
|
+
): ScreenTransitionOptions => {
|
|
32
|
+
"worklet";
|
|
33
|
+
if (!effective) {
|
|
34
|
+
return base;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
slot.navigationMaskEnabled = base.navigationMaskEnabled;
|
|
38
|
+
slot.gestureEnabled = effective.gestureEnabled ?? base.gestureEnabled;
|
|
39
|
+
slot.gestureTracking = base.gestureTracking;
|
|
40
|
+
slot.gestureDirection = effective.gestureDirection ?? base.gestureDirection;
|
|
41
|
+
slot.gestureSensitivity =
|
|
42
|
+
effective.gestureSensitivity ?? base.gestureSensitivity;
|
|
43
|
+
slot.gestureVelocityImpact =
|
|
44
|
+
effective.gestureVelocityImpact ?? base.gestureVelocityImpact;
|
|
45
|
+
slot.gestureSnapVelocityImpact =
|
|
46
|
+
effective.gestureSnapVelocityImpact ?? base.gestureSnapVelocityImpact;
|
|
47
|
+
slot.gestureReleaseVelocityScale =
|
|
48
|
+
effective.gestureReleaseVelocityScale ?? base.gestureReleaseVelocityScale;
|
|
49
|
+
slot.gestureResponseDistance =
|
|
50
|
+
effective.gestureResponseDistance ?? base.gestureResponseDistance;
|
|
51
|
+
slot.gestureProgressMode =
|
|
52
|
+
effective.gestureProgressMode ?? base.gestureProgressMode;
|
|
53
|
+
slot.gestureDrivesProgress =
|
|
54
|
+
effective.gestureDrivesProgress ?? base.gestureDrivesProgress;
|
|
55
|
+
slot.gestureActivationArea =
|
|
56
|
+
effective.gestureActivationArea ?? base.gestureActivationArea;
|
|
57
|
+
slot.gestureSnapLocked =
|
|
58
|
+
effective.gestureSnapLocked ?? base.gestureSnapLocked;
|
|
59
|
+
slot.sheetScrollGestureBehavior =
|
|
60
|
+
effective.sheetScrollGestureBehavior ?? base.sheetScrollGestureBehavior;
|
|
61
|
+
slot.backdropBehavior = effective.backdropBehavior ?? base.backdropBehavior;
|
|
62
|
+
|
|
63
|
+
return slot;
|
|
64
|
+
};
|
|
65
|
+
|
|
24
66
|
export const hydrateTransitionState = (
|
|
25
67
|
s: BuiltState,
|
|
26
68
|
dimensions: Layout,
|
|
27
|
-
effectiveOptions?:
|
|
69
|
+
effectiveOptions?: TransitionInterpolatorOptions,
|
|
28
70
|
) => {
|
|
29
71
|
"worklet";
|
|
30
72
|
const out = s.unwrapped;
|
|
31
73
|
const baseProgress = s.progress.get();
|
|
74
|
+
const options = mergeTransitionOptions(
|
|
75
|
+
s.options,
|
|
76
|
+
effectiveOptions,
|
|
77
|
+
s.optionsSlot,
|
|
78
|
+
);
|
|
79
|
+
const canDismiss = options.gestureEnabled !== false;
|
|
32
80
|
out.willAnimate = s.willAnimate.get();
|
|
33
81
|
out.closing = s.closing.get();
|
|
34
82
|
out.entering = s.entering.get();
|
|
@@ -60,9 +108,16 @@ export const hydrateTransitionState = (
|
|
|
60
108
|
getResolvedSnapBounds(
|
|
61
109
|
s.sortedNumericSnapPoints,
|
|
62
110
|
s.hasAutoSnapPoint ? s.resolvedAutoSnapPoint.get() : null,
|
|
111
|
+
canDismiss,
|
|
63
112
|
),
|
|
64
113
|
);
|
|
65
114
|
|
|
115
|
+
// Unsure where else to place this if im being honest.
|
|
116
|
+
// I think for here is fine
|
|
117
|
+
if (s.effectiveProgress.get() !== out.progress) {
|
|
118
|
+
s.effectiveProgress.set(out.progress);
|
|
119
|
+
}
|
|
120
|
+
|
|
66
121
|
const hasResidualGestureValues =
|
|
67
122
|
Math.abs(out.gesture.normX) > EPSILON ||
|
|
68
123
|
Math.abs(out.gesture.normY) > EPSILON ||
|
|
@@ -123,11 +178,10 @@ export const hydrateTransitionState = (
|
|
|
123
178
|
computedLogicallySettled || shouldPreserveLogicalSettle ? 1 : 0;
|
|
124
179
|
|
|
125
180
|
out.meta = s.meta;
|
|
126
|
-
out.options =
|
|
181
|
+
out.options = options;
|
|
127
182
|
out.route = s.route;
|
|
128
183
|
out.layouts.screen.width = dimensions.width;
|
|
129
184
|
out.layouts.screen.height = dimensions.height;
|
|
130
|
-
out.layouts.navigationMaskEnabled = s.navigationMaskEnabled;
|
|
131
185
|
|
|
132
186
|
const content = s.measuredContentLayout.get();
|
|
133
187
|
|
package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/snap-points.ts
CHANGED
|
@@ -48,6 +48,7 @@ const getResolvedSnapPointAt = (
|
|
|
48
48
|
export const getResolvedSnapBounds = (
|
|
49
49
|
snapPoints: number[],
|
|
50
50
|
resolvedAutoSnap: number | null,
|
|
51
|
+
canDismiss = true,
|
|
51
52
|
): SnapBounds | null => {
|
|
52
53
|
"worklet";
|
|
53
54
|
const snapPointCount = getResolvedSnapPointCount(
|
|
@@ -77,7 +78,7 @@ export const getResolvedSnapBounds = (
|
|
|
77
78
|
);
|
|
78
79
|
|
|
79
80
|
return {
|
|
80
|
-
min: Math.min(0, firstSnapPoint),
|
|
81
|
+
min: canDismiss ? Math.min(0, firstSnapPoint) : firstSnapPoint,
|
|
81
82
|
max: lastSnapPoint,
|
|
82
83
|
};
|
|
83
84
|
};
|
|
@@ -9,6 +9,7 @@ import type { BaseStackRoute } from "../../../../../types/stack.types";
|
|
|
9
9
|
|
|
10
10
|
export type BuiltState = {
|
|
11
11
|
progress: SharedValue<number>;
|
|
12
|
+
effectiveProgress: SharedValue<number>;
|
|
12
13
|
willAnimate: SharedValue<number>;
|
|
13
14
|
closing: SharedValue<number>;
|
|
14
15
|
progressAnimating: SharedValue<number>;
|
|
@@ -17,7 +18,7 @@ export type BuiltState = {
|
|
|
17
18
|
route: BaseStackRoute;
|
|
18
19
|
meta?: Record<string, unknown>;
|
|
19
20
|
options: ScreenTransitionOptions;
|
|
20
|
-
|
|
21
|
+
optionsSlot: ScreenTransitionOptions;
|
|
21
22
|
targetProgress: SharedValue<number>;
|
|
22
23
|
logicalSettleFrameCount: SharedValue<number>;
|
|
23
24
|
resolvedAutoSnapPoint: SharedValue<number>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
1
2
|
import { useWindowDimensions } from "react-native";
|
|
2
3
|
import {
|
|
3
4
|
type DerivedValue,
|
|
@@ -8,6 +9,7 @@ import {
|
|
|
8
9
|
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
9
10
|
import { DEFAULT_SCREEN_TRANSITION_STATE } from "../../../../constants";
|
|
10
11
|
import { useStack } from "../../../../hooks/navigation/use-stack";
|
|
12
|
+
import { AnimationStore } from "../../../../stores/animation.store";
|
|
11
13
|
import type {
|
|
12
14
|
ScreenInterpolationProps,
|
|
13
15
|
ScreenStyleInterpolator,
|
|
@@ -18,6 +20,7 @@ import { updateDerivations } from "./derivations";
|
|
|
18
20
|
import { hasTransitionsEnabled } from "./has-transitions-enabled";
|
|
19
21
|
import { hydrateTransitionState } from "./hydrate-transition-state";
|
|
20
22
|
import type { SelectedInterpolatorOptions } from "./selected-interpolator-options";
|
|
23
|
+
import { deriveStackProgress } from "./stack-progress";
|
|
21
24
|
import { useBuildTransitionState } from "./use-build-transition-state";
|
|
22
25
|
|
|
23
26
|
export type ScreenInterpolatorFrame = Omit<ScreenInterpolationProps, "bounds">;
|
|
@@ -36,7 +39,7 @@ const createInitialBaseInterpolatorProps = (
|
|
|
36
39
|
): ScreenInterpolatorFrame => {
|
|
37
40
|
const current = {
|
|
38
41
|
...DEFAULT_SCREEN_TRANSITION_STATE,
|
|
39
|
-
layouts: { screen: dimensions
|
|
42
|
+
layouts: { screen: dimensions },
|
|
40
43
|
};
|
|
41
44
|
|
|
42
45
|
return {
|
|
@@ -55,7 +58,7 @@ const createInitialBaseInterpolatorProps = (
|
|
|
55
58
|
};
|
|
56
59
|
|
|
57
60
|
export function useScreenAnimationPipeline(): ScreenAnimationPipeline {
|
|
58
|
-
const { flags,
|
|
61
|
+
const { flags, routeKeys } = useStack();
|
|
59
62
|
const dimensions = useWindowDimensions();
|
|
60
63
|
const insets = useSafeAreaInsets();
|
|
61
64
|
const transitionsAlwaysOn = flags.TRANSITIONS_ALWAYS_ON;
|
|
@@ -72,6 +75,11 @@ export function useScreenAnimationPipeline(): ScreenAnimationPipeline {
|
|
|
72
75
|
|
|
73
76
|
const currentRouteKey = currDescriptor?.route?.key;
|
|
74
77
|
const currentIndex = routeKeys.indexOf(currentRouteKey);
|
|
78
|
+
const effectiveProgressValues = useMemo(() => {
|
|
79
|
+
return routeKeys.map((routeKey) =>
|
|
80
|
+
AnimationStore.getValue(routeKey, "effectiveProgress"),
|
|
81
|
+
);
|
|
82
|
+
}, [routeKeys]);
|
|
75
83
|
|
|
76
84
|
const nextRouteKey = nextDescriptor?.route?.key;
|
|
77
85
|
const nextHasTransitions =
|
|
@@ -130,10 +138,16 @@ export function useScreenAnimationPipeline(): ScreenAnimationPipeline {
|
|
|
130
138
|
|
|
131
139
|
updateDerivations(frame);
|
|
132
140
|
|
|
133
|
-
frame.stackProgress =
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
141
|
+
frame.stackProgress = deriveStackProgress(
|
|
142
|
+
routeKeys,
|
|
143
|
+
effectiveProgressValues,
|
|
144
|
+
currentIndex,
|
|
145
|
+
frame.progress,
|
|
146
|
+
currentRouteKey,
|
|
147
|
+
frame.current.progress,
|
|
148
|
+
nextRouteKey,
|
|
149
|
+
frame.next?.progress,
|
|
150
|
+
);
|
|
137
151
|
frame.logicallySettled = frame.active.logicallySettled;
|
|
138
152
|
|
|
139
153
|
return frame;
|
|
@@ -60,8 +60,6 @@ const areInterpolatorOptionsEqual = (
|
|
|
60
60
|
|
|
61
61
|
return (
|
|
62
62
|
left.gestureEnabled === right.gestureEnabled &&
|
|
63
|
-
left.experimental_allowDisabledGestureTracking ===
|
|
64
|
-
right.experimental_allowDisabledGestureTracking &&
|
|
65
63
|
areGestureDirectionsEqual(left.gestureDirection, right.gestureDirection) &&
|
|
66
64
|
left.gestureSensitivity === right.gestureSensitivity &&
|
|
67
65
|
left.gestureVelocityImpact === right.gestureVelocityImpact &&
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SharedValue } from "react-native-reanimated";
|
|
2
|
+
|
|
3
|
+
export const deriveStackProgress = (
|
|
4
|
+
routeKeys: string[],
|
|
5
|
+
effectiveProgressValues: SharedValue<number>[],
|
|
6
|
+
currentIndex: number,
|
|
7
|
+
fallbackProgress: number,
|
|
8
|
+
currentRouteKey: string | undefined,
|
|
9
|
+
currentProgress: number,
|
|
10
|
+
nextRouteKey: string | undefined,
|
|
11
|
+
nextProgress: number | undefined,
|
|
12
|
+
) => {
|
|
13
|
+
"worklet";
|
|
14
|
+
if (currentIndex < 0) return fallbackProgress;
|
|
15
|
+
|
|
16
|
+
let total = 0;
|
|
17
|
+
for (let i = currentIndex; i < effectiveProgressValues.length; i++) {
|
|
18
|
+
const routeKey = routeKeys[i];
|
|
19
|
+
if (routeKey === currentRouteKey) {
|
|
20
|
+
total += currentProgress;
|
|
21
|
+
} else if (routeKey === nextRouteKey && nextProgress !== undefined) {
|
|
22
|
+
total += nextProgress;
|
|
23
|
+
} else {
|
|
24
|
+
total += effectiveProgressValues[i].get();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return total;
|
|
29
|
+
};
|