react-native-screen-transitions 3.4.0-alpha.5 → 3.4.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1058 -11
- package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js +27 -45
- package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
- package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js +39 -0
- package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js.map +1 -0
- package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js +232 -0
- package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js.map +1 -0
- package/lib/commonjs/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js +2 -4
- package/lib/commonjs/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js +4 -3
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js +2 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/index.js +20 -214
- package/lib/commonjs/shared/components/create-boundary-component/index.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js +63 -0
- package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +1 -0
- package/lib/commonjs/shared/components/create-transition-aware-component.js +29 -7
- package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +1 -1
- package/lib/commonjs/shared/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/index.js +12 -8
- package/lib/commonjs/shared/components/screen-container/index.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +8 -10
- package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/content.js +7 -10
- package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js +4 -4
- package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/surface-container.js +4 -4
- package/lib/commonjs/shared/components/screen-container/layers/surface-container.js.map +1 -1
- package/lib/commonjs/shared/constants.js +4 -1
- package/lib/commonjs/shared/constants.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state.js +33 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +2 -0
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +1 -0
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/screen-composer.js +1 -1
- package/lib/commonjs/shared/providers/screen/screen-composer.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/helpers/build-resolved-style-map.js +144 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/build-resolved-style-map.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js +28 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/split-normalized-style-maps.js +39 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/split-normalized-style-maps.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/index.js +25 -0
- package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/{styles.provider.js → styles/styles.provider.js} +47 -39
- package/lib/commonjs/shared/providers/screen/styles/styles.provider.js.map +1 -0
- package/lib/commonjs/shared/utils/bounds/helpers/compute-bounds-styles.js +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/compute-bounds-styles.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/style-composers.js +21 -10
- package/lib/commonjs/shared/utils/bounds/helpers/style-composers.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/zoom/build.js +57 -31
- package/lib/commonjs/shared/utils/bounds/zoom/build.js.map +1 -1
- package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js +27 -45
- package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
- package/lib/module/component-stack/navigators/create-component-stack-navigator.js +1 -1
- package/lib/module/shared/components/create-boundary-component/components/boundary-target.js +34 -0
- package/lib/module/shared/components/create-boundary-component/components/boundary-target.js.map +1 -0
- package/lib/module/shared/components/create-boundary-component/create-boundary-component.js +227 -0
- package/lib/module/shared/components/create-boundary-component/create-boundary-component.js.map +1 -0
- package/lib/module/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js +2 -4
- package/lib/module/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js +4 -3
- package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js +2 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/index.js +16 -213
- package/lib/module/shared/components/create-boundary-component/index.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js +56 -0
- package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +1 -0
- package/lib/module/shared/components/create-transition-aware-component.js +30 -8
- package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/float-overlay.js +1 -1
- package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
- package/lib/module/shared/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
- package/lib/module/shared/components/screen-container/index.js +12 -8
- package/lib/module/shared/components/screen-container/index.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/backdrop.js +8 -10
- package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/content.js +7 -10
- package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js +4 -4
- package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/surface-container.js +4 -4
- package/lib/module/shared/components/screen-container/layers/surface-container.js.map +1 -1
- package/lib/module/shared/constants.js +4 -1
- package/lib/module/shared/constants.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state.js +32 -1
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +2 -0
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +1 -0
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
- package/lib/module/shared/providers/screen/screen-composer.js +1 -1
- package/lib/module/shared/providers/screen/screen-composer.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/helpers/build-resolved-style-map.js +139 -0
- package/lib/module/shared/providers/screen/styles/helpers/build-resolved-style-map.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js +23 -0
- package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/helpers/split-normalized-style-maps.js +34 -0
- package/lib/module/shared/providers/screen/styles/helpers/split-normalized-style-maps.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/index.js +4 -0
- package/lib/module/shared/providers/screen/styles/index.js.map +1 -0
- package/lib/module/shared/providers/screen/{styles.provider.js → styles/styles.provider.js} +48 -40
- package/lib/module/shared/providers/screen/styles/styles.provider.js.map +1 -0
- package/lib/module/shared/utils/bounds/helpers/compute-bounds-styles.js +2 -2
- package/lib/module/shared/utils/bounds/helpers/compute-bounds-styles.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/style-composers.js +21 -10
- package/lib/module/shared/utils/bounds/helpers/style-composers.js.map +1 -1
- package/lib/module/shared/utils/bounds/zoom/build.js +56 -29
- package/lib/module/shared/utils/bounds/zoom/build.js.map +1 -1
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +9 -15
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
- package/lib/typescript/blank-stack/types.d.ts +6 -4
- package/lib/typescript/blank-stack/types.d.ts.map +1 -1
- package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -1
- package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts +209 -0
- package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts.map +1 -0
- package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts +8 -0
- package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts.map +1 -0
- package/lib/typescript/shared/components/create-boundary-component/hooks/helpers/measurement-rules.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.d.ts +2 -8
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.d.ts +0 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/index.d.ts +216 -12
- package/lib/typescript/shared/components/create-boundary-component/index.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts +35 -0
- package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts.map +1 -0
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/hooks/use-backdrop-pointer-events.d.ts +1 -1
- package/lib/typescript/shared/components/screen-container/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/index.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts +5 -1
- package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/content.d.ts +3 -1
- package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
- package/lib/typescript/shared/constants.d.ts +1 -0
- package/lib/typescript/shared/constants.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +209 -2
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state.d.ts +16 -0
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state.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/use-build-transition-state.d.ts +1 -0
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/helpers/build-resolved-style-map.d.ts +11 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/build-resolved-style-map.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.d.ts +7 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/split-normalized-style-maps.d.ts +6 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/split-normalized-style-maps.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/index.d.ts +2 -0
- package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/{styles.provider.d.ts → styles/styles.provider.d.ts} +3 -5
- package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts.map +1 -0
- package/lib/typescript/shared/types/animation.types.d.ts +16 -9
- package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/index.d.ts +1 -1
- package/lib/typescript/shared/types/index.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +4 -5
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/compute-bounds-styles.d.ts +1 -11
- package/lib/typescript/shared/utils/bounds/helpers/compute-bounds-styles.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/style-composers.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/zoom/build.d.ts +1 -1
- package/lib/typescript/shared/utils/bounds/zoom/build.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/blank-stack/navigators/create-blank-stack-navigator.tsx +37 -80
- package/src/blank-stack/types.ts +7 -4
- package/src/component-stack/navigators/create-component-stack-navigator.tsx +1 -1
- package/src/shared/components/create-boundary-component/components/boundary-target.tsx +45 -0
- package/src/shared/components/create-boundary-component/create-boundary-component.tsx +282 -0
- package/src/shared/components/create-boundary-component/hooks/helpers/measurement-rules.ts +2 -7
- package/src/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.ts +6 -10
- package/src/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.ts +3 -2
- package/src/shared/components/create-boundary-component/index.tsx +16 -252
- package/src/shared/components/create-boundary-component/providers/boundary-owner.provider.tsx +109 -0
- package/src/shared/components/create-transition-aware-component.tsx +33 -5
- package/src/shared/components/overlay/variations/float-overlay.tsx +1 -1
- package/src/shared/components/screen-container/hooks/use-backdrop-pointer-events.ts +1 -2
- package/src/shared/components/screen-container/index.tsx +12 -6
- package/src/shared/components/screen-container/layers/backdrop.tsx +13 -7
- package/src/shared/components/screen-container/layers/content.tsx +47 -43
- package/src/shared/components/screen-container/layers/maybe-masked-navigation-container.tsx +6 -4
- package/src/shared/components/screen-container/layers/surface-container.tsx +4 -4
- package/src/shared/constants.ts +3 -0
- package/src/shared/index.ts +0 -1
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state.ts +49 -1
- package/src/shared/providers/screen/animation/helpers/pipeline.ts +2 -0
- package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +2 -0
- package/src/shared/providers/screen/screen-composer.tsx +1 -1
- package/src/shared/providers/screen/styles/helpers/build-resolved-style-map.ts +185 -0
- package/src/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.ts +31 -0
- package/src/shared/providers/screen/styles/helpers/split-normalized-style-maps.ts +44 -0
- package/src/shared/providers/screen/styles/index.tsx +5 -0
- package/src/shared/providers/screen/styles/styles.provider.tsx +173 -0
- package/src/shared/types/animation.types.ts +18 -10
- package/src/shared/types/index.ts +0 -1
- package/src/shared/types/screen.types.ts +5 -5
- package/src/shared/utils/bounds/helpers/compute-bounds-styles.ts +2 -1
- package/src/shared/utils/bounds/helpers/style-composers.ts +11 -0
- package/src/shared/utils/bounds/zoom/build.ts +94 -59
- package/lib/commonjs/shared/components/screen-container/deferred-visibility-host.js +0 -43
- package/lib/commonjs/shared/components/screen-container/deferred-visibility-host.js.map +0 -1
- package/lib/commonjs/shared/hooks/animation/use-associated-style.js +0 -234
- package/lib/commonjs/shared/hooks/animation/use-associated-style.js.map +0 -1
- package/lib/commonjs/shared/providers/screen/helpers/resolve-interpolated-style-output.js +0 -50
- package/lib/commonjs/shared/providers/screen/helpers/resolve-interpolated-style-output.js.map +0 -1
- package/lib/commonjs/shared/providers/screen/styles.provider.js.map +0 -1
- package/lib/module/shared/components/screen-container/deferred-visibility-host.js +0 -38
- package/lib/module/shared/components/screen-container/deferred-visibility-host.js.map +0 -1
- package/lib/module/shared/hooks/animation/use-associated-style.js +0 -229
- package/lib/module/shared/hooks/animation/use-associated-style.js.map +0 -1
- package/lib/module/shared/providers/screen/helpers/resolve-interpolated-style-output.js +0 -44
- package/lib/module/shared/providers/screen/helpers/resolve-interpolated-style-output.js.map +0 -1
- package/lib/module/shared/providers/screen/styles.provider.js.map +0 -1
- package/lib/typescript/shared/components/screen-container/deferred-visibility-host.d.ts +0 -13
- package/lib/typescript/shared/components/screen-container/deferred-visibility-host.d.ts.map +0 -1
- package/lib/typescript/shared/hooks/animation/use-associated-style.d.ts +0 -32
- package/lib/typescript/shared/hooks/animation/use-associated-style.d.ts.map +0 -1
- package/lib/typescript/shared/providers/screen/helpers/resolve-interpolated-style-output.d.ts +0 -14
- package/lib/typescript/shared/providers/screen/helpers/resolve-interpolated-style-output.d.ts.map +0 -1
- package/lib/typescript/shared/providers/screen/styles.provider.d.ts.map +0 -1
- package/src/shared/components/screen-container/deferred-visibility-host.tsx +0 -37
- package/src/shared/hooks/animation/use-associated-style.ts +0 -297
- package/src/shared/providers/screen/helpers/resolve-interpolated-style-output.ts +0 -61
- package/src/shared/providers/screen/styles.provider.tsx +0 -164
|
@@ -53,6 +53,15 @@ export type ScreenTransitionState = {
|
|
|
53
53
|
*/
|
|
54
54
|
settled: number;
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Whether this screen is logically complete for choreography purposes.
|
|
58
|
+
* - `0`: The screen is still meaningfully away from its animation target
|
|
59
|
+
* - `1`: The screen is visually close enough to its target to be treated as done
|
|
60
|
+
*
|
|
61
|
+
* Unlike `settled`, this may become `1` before the underlying spring fully stops.
|
|
62
|
+
*/
|
|
63
|
+
logicallySettled: number;
|
|
64
|
+
|
|
56
65
|
/**
|
|
57
66
|
* Live gesture values for this screen.
|
|
58
67
|
* Contains translation (x, y), normalized values (-1 to 1),
|
|
@@ -176,6 +185,12 @@ export interface ScreenInterpolationProps {
|
|
|
176
185
|
*/
|
|
177
186
|
snapIndex: number;
|
|
178
187
|
|
|
188
|
+
/**
|
|
189
|
+
* Whether the active transition is visually close enough to its target to be
|
|
190
|
+
* treated as complete, even if the animation is still physically settling.
|
|
191
|
+
*/
|
|
192
|
+
logicallySettled: number;
|
|
193
|
+
|
|
179
194
|
/**
|
|
180
195
|
* Function that provides access to bounds helpers for shared screen transitions.
|
|
181
196
|
*/
|
|
@@ -194,19 +209,12 @@ export interface ScreenInterpolationProps {
|
|
|
194
209
|
}
|
|
195
210
|
|
|
196
211
|
/**
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*/
|
|
200
|
-
export type DeferredScreenStyleSignal = "defer";
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Returning `'defer'` explicitly hides the screen's visual subtree until the
|
|
204
|
-
* transition is ready. Returning `null`, `undefined`, or `{}` applies no
|
|
205
|
-
* transition styles for the current frame.
|
|
212
|
+
* Returning `null`, `undefined`, or `{}` applies no transition styles for the
|
|
213
|
+
* current frame.
|
|
206
214
|
*/
|
|
207
215
|
export type ScreenStyleInterpolator = (
|
|
208
216
|
props: ScreenInterpolationProps,
|
|
209
|
-
) => TransitionInterpolatedStyle |
|
|
217
|
+
) => TransitionInterpolatedStyle | null | undefined;
|
|
210
218
|
|
|
211
219
|
/**
|
|
212
220
|
* Animated style properties with full autocomplete.
|
|
@@ -22,6 +22,8 @@ export type SheetScrollGestureBehavior =
|
|
|
22
22
|
*/
|
|
23
23
|
export type SnapPoint = number | "auto";
|
|
24
24
|
|
|
25
|
+
export type BackdropBehavior = "block" | "passthrough" | "dismiss" | "collapse";
|
|
26
|
+
|
|
25
27
|
export type TransitionAwareProps<T extends object> = AnimatedProps<T> & {
|
|
26
28
|
/**
|
|
27
29
|
* Connects this component to custom animated styles defined in screenStyleInterpolator.
|
|
@@ -81,10 +83,8 @@ export type ScreenTransitionConfig = {
|
|
|
81
83
|
/**
|
|
82
84
|
* The user-provided function to calculate styles based on animation progress.
|
|
83
85
|
*
|
|
84
|
-
* Return `null`
|
|
85
|
-
*
|
|
86
|
-
* `bounds().navigation.zoom()` where the screen should stay hidden until the
|
|
87
|
-
* interpolator has enough state to produce a safe first frame.
|
|
86
|
+
* Return `null`, `undefined`, or `{}` to apply no transition styles for the
|
|
87
|
+
* current frame.
|
|
88
88
|
*/
|
|
89
89
|
screenStyleInterpolator?: ScreenStyleInterpolator;
|
|
90
90
|
|
|
@@ -282,7 +282,7 @@ export type ScreenTransitionConfig = {
|
|
|
282
282
|
*
|
|
283
283
|
* @default 'block' (or 'passthrough' for component stacks)
|
|
284
284
|
*/
|
|
285
|
-
backdropBehavior?:
|
|
285
|
+
backdropBehavior?: BackdropBehavior;
|
|
286
286
|
|
|
287
287
|
/**
|
|
288
288
|
* Custom component to render as the backdrop layer (between screens).
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
EXIT_RANGE,
|
|
6
6
|
FULLSCREEN_DIMENSIONS,
|
|
7
7
|
HIDDEN_STYLE,
|
|
8
|
+
NO_STYLES,
|
|
8
9
|
} from "../../../constants";
|
|
9
10
|
import {
|
|
10
11
|
BoundStore,
|
|
@@ -127,7 +128,7 @@ export const computeBoundStyles = (
|
|
|
127
128
|
if (computeOptions.raw) {
|
|
128
129
|
return EMPTY_BOUND_HELPER_RESULT_RAW;
|
|
129
130
|
}
|
|
130
|
-
return
|
|
131
|
+
return NO_STYLES;
|
|
131
132
|
}
|
|
132
133
|
|
|
133
134
|
const {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { MeasuredDimensions, StyleProps } from "react-native-reanimated";
|
|
2
|
+
import { VISIBLE_STYLE } from "../../../constants";
|
|
2
3
|
import type {
|
|
3
4
|
ContentTransformGeometry,
|
|
4
5
|
RelativeGeometry,
|
|
@@ -132,6 +133,7 @@ export function composeSizeAbsolute(params: ElementComposeParams): StyleProps {
|
|
|
132
133
|
height,
|
|
133
134
|
translateX,
|
|
134
135
|
translateY,
|
|
136
|
+
...VISIBLE_STYLE,
|
|
135
137
|
};
|
|
136
138
|
}
|
|
137
139
|
|
|
@@ -139,6 +141,7 @@ export function composeSizeAbsolute(params: ElementComposeParams): StyleProps {
|
|
|
139
141
|
width,
|
|
140
142
|
height,
|
|
141
143
|
transform: [{ translateX }, { translateY }],
|
|
144
|
+
...VISIBLE_STYLE,
|
|
142
145
|
};
|
|
143
146
|
}
|
|
144
147
|
|
|
@@ -175,6 +178,7 @@ export function composeSizeRelative(params: ElementComposeParams): StyleProps {
|
|
|
175
178
|
translateY,
|
|
176
179
|
width,
|
|
177
180
|
height,
|
|
181
|
+
...VISIBLE_STYLE,
|
|
178
182
|
};
|
|
179
183
|
}
|
|
180
184
|
|
|
@@ -182,6 +186,7 @@ export function composeSizeRelative(params: ElementComposeParams): StyleProps {
|
|
|
182
186
|
transform: [{ translateX }, { translateY }],
|
|
183
187
|
width,
|
|
184
188
|
height,
|
|
189
|
+
...VISIBLE_STYLE,
|
|
185
190
|
};
|
|
186
191
|
}
|
|
187
192
|
|
|
@@ -210,11 +215,13 @@ export function composeTransformAbsolute(
|
|
|
210
215
|
translateY,
|
|
211
216
|
scaleX,
|
|
212
217
|
scaleY,
|
|
218
|
+
...VISIBLE_STYLE,
|
|
213
219
|
};
|
|
214
220
|
}
|
|
215
221
|
|
|
216
222
|
return {
|
|
217
223
|
transform: [{ translateX }, { translateY }, { scaleX }, { scaleY }],
|
|
224
|
+
...VISIBLE_STYLE,
|
|
218
225
|
};
|
|
219
226
|
}
|
|
220
227
|
|
|
@@ -243,6 +250,7 @@ export function composeTransformRelative(
|
|
|
243
250
|
translateY,
|
|
244
251
|
scaleX,
|
|
245
252
|
scaleY,
|
|
253
|
+
...VISIBLE_STYLE,
|
|
246
254
|
};
|
|
247
255
|
}
|
|
248
256
|
|
|
@@ -255,6 +263,7 @@ export function composeTransformRelative(
|
|
|
255
263
|
{ scaleX },
|
|
256
264
|
{ scaleY },
|
|
257
265
|
],
|
|
266
|
+
...VISIBLE_STYLE,
|
|
258
267
|
};
|
|
259
268
|
}
|
|
260
269
|
|
|
@@ -283,10 +292,12 @@ export function composeContentStyle(params: ContentComposeParams): StyleProps {
|
|
|
283
292
|
translateX,
|
|
284
293
|
translateY,
|
|
285
294
|
scale,
|
|
295
|
+
...VISIBLE_STYLE,
|
|
286
296
|
};
|
|
287
297
|
}
|
|
288
298
|
|
|
289
299
|
return {
|
|
290
300
|
transform: [{ translateX }, { translateY }, { scale }],
|
|
301
|
+
...VISIBLE_STYLE,
|
|
291
302
|
};
|
|
292
303
|
}
|
|
@@ -34,17 +34,19 @@ import type { BuildZoomStylesParams, ZoomInterpolatedStyle } from "./types";
|
|
|
34
34
|
|
|
35
35
|
const IDENTITY_DRAG_SCALE_OUTPUT = [1, 1] as const;
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
/* -------------------------------------------------------------------------- */
|
|
38
|
+
/* LOCAL HELPERS */
|
|
39
|
+
/* -------------------------------------------------------------------------- */
|
|
40
|
+
|
|
41
|
+
function getSourceBorderRadius(resolvedPair: ResolvedTransitionPair): number {
|
|
40
42
|
"worklet";
|
|
41
43
|
|
|
42
44
|
return typeof resolvedPair.sourceStyles?.borderRadius === "number"
|
|
43
45
|
? resolvedPair.sourceStyles.borderRadius
|
|
44
46
|
: 0;
|
|
45
|
-
}
|
|
47
|
+
}
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
function getZoomContentTarget({
|
|
48
50
|
explicitTarget,
|
|
49
51
|
screenLayout,
|
|
50
52
|
anchor,
|
|
@@ -54,7 +56,7 @@ const getZoomContentTarget = ({
|
|
|
54
56
|
screenLayout: Layout;
|
|
55
57
|
anchor: BoundsOptions["anchor"] | undefined;
|
|
56
58
|
resolvedPair: ResolvedTransitionPair;
|
|
57
|
-
})
|
|
59
|
+
}) {
|
|
58
60
|
"worklet";
|
|
59
61
|
|
|
60
62
|
if (explicitTarget) return explicitTarget;
|
|
@@ -90,28 +92,34 @@ const getZoomContentTarget = ({
|
|
|
90
92
|
width: screenWidth,
|
|
91
93
|
height,
|
|
92
94
|
};
|
|
93
|
-
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* -------------------------------------------------------------------------- */
|
|
98
|
+
/* BUILD ZOOM STYLES */
|
|
99
|
+
/* -------------------------------------------------------------------------- */
|
|
94
100
|
|
|
95
|
-
export
|
|
101
|
+
export function buildZoomStyles({
|
|
96
102
|
resolvedTag,
|
|
97
103
|
zoomOptions,
|
|
98
104
|
props,
|
|
99
|
-
}: BuildZoomStylesParams): ZoomInterpolatedStyle
|
|
105
|
+
}: BuildZoomStylesParams): ZoomInterpolatedStyle {
|
|
100
106
|
"worklet";
|
|
101
107
|
|
|
102
108
|
if (!resolvedTag) return {};
|
|
103
109
|
|
|
110
|
+
/* ------------------------------ Shared Setup ------------------------------ */
|
|
111
|
+
|
|
104
112
|
const explicitTarget = zoomOptions?.target;
|
|
105
113
|
const debug = zoomOptions?.DEBUG === true;
|
|
106
|
-
|
|
107
114
|
const focused = props.focused;
|
|
108
115
|
const progress = props.progress;
|
|
116
|
+
const screenLayout = props.layouts.screen;
|
|
117
|
+
const isEnteringTransition = !props.next;
|
|
109
118
|
const currentRouteKey = props.current?.route.key;
|
|
110
119
|
const previousRouteKey = props.previous?.route.key;
|
|
111
120
|
const nextRouteKey = props.next?.route.key;
|
|
112
|
-
const entering = !props.next;
|
|
113
|
-
const screenLayout = props.layouts.screen;
|
|
114
121
|
const resolvedZoomAnchor = getZoomAnchor(explicitTarget);
|
|
122
|
+
|
|
115
123
|
const zoomComputeParams = {
|
|
116
124
|
id: resolvedTag,
|
|
117
125
|
previous: props.previous,
|
|
@@ -120,6 +128,7 @@ export const buildZoomStyles = ({
|
|
|
120
128
|
progress,
|
|
121
129
|
dimensions: screenLayout,
|
|
122
130
|
} as const;
|
|
131
|
+
|
|
123
132
|
const baseRawOptions = {
|
|
124
133
|
id: resolvedTag,
|
|
125
134
|
raw: true,
|
|
@@ -130,31 +139,40 @@ export const buildZoomStyles = ({
|
|
|
130
139
|
currentScreenKey: currentRouteKey,
|
|
131
140
|
previousScreenKey: previousRouteKey,
|
|
132
141
|
nextScreenKey: nextRouteKey,
|
|
133
|
-
entering,
|
|
142
|
+
entering: isEnteringTransition,
|
|
134
143
|
});
|
|
135
144
|
|
|
136
145
|
const sourceBorderRadius = getSourceBorderRadius(resolvedPair);
|
|
137
146
|
const targetBorderRadius = zoomOptions?.borderRadius ?? sourceBorderRadius;
|
|
138
|
-
|
|
139
|
-
const focusedVisibilityStyles = {
|
|
147
|
+
const sourceVisibilityStyle = {
|
|
140
148
|
[resolvedTag]: VISIBLE_STYLE,
|
|
141
149
|
} satisfies TransitionInterpolatedStyle;
|
|
142
|
-
const
|
|
150
|
+
const focusedContentSlot = props.navigationMaskEnabled
|
|
143
151
|
? NAVIGATION_MASK_CONTAINER_STYLE_ID
|
|
144
152
|
: "content";
|
|
145
153
|
|
|
154
|
+
/* --------------------------- Missing Source Guard -------------------------- */
|
|
155
|
+
|
|
146
156
|
// To avoid initial flickering, we'll want to hide if there are no source bounds
|
|
147
157
|
// But to also avoid scenarios where activeId changes in dst and theres a failed measurement,
|
|
148
158
|
// we should only hide if entering and there is no source bounds.
|
|
149
159
|
if (!resolvedPair.sourceBounds && props.active.entering) {
|
|
150
160
|
return {
|
|
151
|
-
[
|
|
161
|
+
[focusedContentSlot]: HIDDEN_STYLE,
|
|
152
162
|
};
|
|
153
163
|
}
|
|
154
164
|
|
|
165
|
+
/* --------------------------- Gesture / Drag Values ------------------------- */
|
|
166
|
+
|
|
155
167
|
const normX = props.active.gesture.normX;
|
|
156
168
|
const normY = props.active.gesture.normY;
|
|
157
169
|
const initialDirection = props.active.gesture.direction;
|
|
170
|
+
const isHorizontalDismiss =
|
|
171
|
+
initialDirection === "horizontal" ||
|
|
172
|
+
initialDirection === "horizontal-inverted";
|
|
173
|
+
const isVerticalDismiss =
|
|
174
|
+
initialDirection === "vertical" || initialDirection === "vertical-inverted";
|
|
175
|
+
|
|
158
176
|
const dragX = normalizedToTranslation({
|
|
159
177
|
normalized: normX,
|
|
160
178
|
dimension: screenLayout.width,
|
|
@@ -165,35 +183,33 @@ export const buildZoomStyles = ({
|
|
|
165
183
|
dimension: screenLayout.height,
|
|
166
184
|
resistance: ZOOM_DRAG_RESISTANCE,
|
|
167
185
|
});
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
growMax: ZOOM_DRAG_DIRECTIONAL_SCALE_MAX,
|
|
190
|
-
exponent: 2,
|
|
191
|
-
})
|
|
192
|
-
: IDENTITY_DRAG_SCALE_OUTPUT[1];
|
|
186
|
+
|
|
187
|
+
const dragXScale = isHorizontalDismiss
|
|
188
|
+
? resolveDirectionalDragScale({
|
|
189
|
+
normalized: normX,
|
|
190
|
+
dismissDirection:
|
|
191
|
+
initialDirection === "horizontal-inverted" ? "negative" : "positive",
|
|
192
|
+
shrinkMin: ZOOM_DRAG_DIRECTIONAL_SCALE_MIN,
|
|
193
|
+
growMax: ZOOM_DRAG_DIRECTIONAL_SCALE_MAX,
|
|
194
|
+
exponent: 2,
|
|
195
|
+
})
|
|
196
|
+
: IDENTITY_DRAG_SCALE_OUTPUT[0];
|
|
197
|
+
const dragYScale = isVerticalDismiss
|
|
198
|
+
? resolveDirectionalDragScale({
|
|
199
|
+
normalized: normY,
|
|
200
|
+
dismissDirection:
|
|
201
|
+
initialDirection === "vertical-inverted" ? "negative" : "positive",
|
|
202
|
+
shrinkMin: ZOOM_DRAG_DIRECTIONAL_SCALE_MIN,
|
|
203
|
+
growMax: ZOOM_DRAG_DIRECTIONAL_SCALE_MAX,
|
|
204
|
+
exponent: 2,
|
|
205
|
+
})
|
|
206
|
+
: IDENTITY_DRAG_SCALE_OUTPUT[1];
|
|
193
207
|
const dragScale = combineScales(dragXScale, dragYScale);
|
|
194
208
|
|
|
209
|
+
/* ----------------------------- Focused Screen ----------------------------- */
|
|
210
|
+
|
|
195
211
|
if (focused) {
|
|
196
|
-
const
|
|
212
|
+
const focusedContentTarget = getZoomContentTarget({
|
|
197
213
|
explicitTarget,
|
|
198
214
|
screenLayout,
|
|
199
215
|
anchor: ZOOM_SHARED_OPTIONS.anchor,
|
|
@@ -206,7 +222,7 @@ export const buildZoomStyles = ({
|
|
|
206
222
|
...baseRawOptions,
|
|
207
223
|
anchor: resolvedZoomAnchor,
|
|
208
224
|
method: "content",
|
|
209
|
-
target:
|
|
225
|
+
target: focusedContentTarget,
|
|
210
226
|
},
|
|
211
227
|
resolvedPair,
|
|
212
228
|
) as Record<string, unknown>;
|
|
@@ -247,6 +263,7 @@ export const buildZoomStyles = ({
|
|
|
247
263
|
const contentScale = toNumber(contentRaw.scale, 1) * dragScale;
|
|
248
264
|
const maskTranslateX = toNumber(maskRaw.translateX) + dragX - left;
|
|
249
265
|
const maskTranslateY = toNumber(maskRaw.translateY) + dragY - top;
|
|
266
|
+
|
|
250
267
|
const focusedContentStyle = {
|
|
251
268
|
opacity: focusedFade,
|
|
252
269
|
transform: [
|
|
@@ -259,10 +276,10 @@ export const buildZoomStyles = ({
|
|
|
259
276
|
};
|
|
260
277
|
|
|
261
278
|
const focusedStyles: ZoomInterpolatedStyle = {
|
|
262
|
-
[
|
|
279
|
+
[focusedContentSlot]: {
|
|
263
280
|
style: focusedContentStyle,
|
|
264
281
|
},
|
|
265
|
-
...
|
|
282
|
+
...sourceVisibilityStyle,
|
|
266
283
|
};
|
|
267
284
|
|
|
268
285
|
if (props.navigationMaskEnabled) {
|
|
@@ -283,14 +300,18 @@ export const buildZoomStyles = ({
|
|
|
283
300
|
return focusedStyles;
|
|
284
301
|
}
|
|
285
302
|
|
|
303
|
+
/* ---------------------------- Unfocused Screen ---------------------------- */
|
|
304
|
+
|
|
286
305
|
const unfocusedFade = props.active?.closing
|
|
287
306
|
? interpolate(progress, [1.6, 2], [1, debug ? 1 : 0], "clamp")
|
|
288
307
|
: interpolate(progress, [1, 1.5], [1, debug ? 1 : 0], "clamp");
|
|
289
|
-
|
|
290
308
|
const unfocusedScale = interpolate(progress, [1, 2], [1, 0.95], "clamp");
|
|
291
309
|
const isUnfocusedIdle = props.active.settled === 1;
|
|
292
310
|
const shouldHideUnfocusedIdle = isUnfocusedIdle && !debug;
|
|
293
|
-
const
|
|
311
|
+
const shouldFreezeUnfocusedElement =
|
|
312
|
+
props.active.logicallySettled && !props.active.closing;
|
|
313
|
+
|
|
314
|
+
const unfocusedElementTarget =
|
|
294
315
|
explicitTarget !== undefined || resolvedPair.destinationBounds
|
|
295
316
|
? getZoomContentTarget({
|
|
296
317
|
explicitTarget,
|
|
@@ -307,10 +328,11 @@ export const buildZoomStyles = ({
|
|
|
307
328
|
anchor: resolvedZoomAnchor,
|
|
308
329
|
method: "transform",
|
|
309
330
|
space: "relative",
|
|
310
|
-
target:
|
|
331
|
+
target: unfocusedElementTarget,
|
|
311
332
|
},
|
|
312
333
|
resolvedPair,
|
|
313
334
|
) as Record<string, unknown>;
|
|
335
|
+
|
|
314
336
|
const boundTargetCenterX =
|
|
315
337
|
explicitTarget === "bound" && resolvedPair.destinationBounds
|
|
316
338
|
? resolvedPair.destinationBounds.pageX +
|
|
@@ -321,16 +343,18 @@ export const buildZoomStyles = ({
|
|
|
321
343
|
? resolvedPair.destinationBounds.pageY +
|
|
322
344
|
resolvedPair.destinationBounds.height / 2
|
|
323
345
|
: undefined;
|
|
346
|
+
|
|
324
347
|
const elementCenterX =
|
|
325
348
|
boundTargetCenterX ??
|
|
326
|
-
(typeof
|
|
327
|
-
?
|
|
349
|
+
(typeof unfocusedElementTarget === "object"
|
|
350
|
+
? unfocusedElementTarget.pageX + unfocusedElementTarget.width / 2
|
|
328
351
|
: screenLayout.width / 2);
|
|
329
352
|
const elementCenterY =
|
|
330
353
|
boundTargetCenterY ??
|
|
331
|
-
(typeof
|
|
332
|
-
?
|
|
354
|
+
(typeof unfocusedElementTarget === "object"
|
|
355
|
+
? unfocusedElementTarget.pageY + unfocusedElementTarget.height / 2
|
|
333
356
|
: screenLayout.height / 2);
|
|
357
|
+
|
|
334
358
|
const scaleShiftX = computeCenterScaleShift({
|
|
335
359
|
center: elementCenterX,
|
|
336
360
|
containerCenter: screenLayout.width / 2,
|
|
@@ -341,6 +365,7 @@ export const buildZoomStyles = ({
|
|
|
341
365
|
containerCenter: screenLayout.height / 2,
|
|
342
366
|
scale: dragScale,
|
|
343
367
|
});
|
|
368
|
+
|
|
344
369
|
const compensatedGestureX = composeCompensatedTranslation({
|
|
345
370
|
gesture: dragX,
|
|
346
371
|
parentScale: unfocusedScale,
|
|
@@ -353,12 +378,14 @@ export const buildZoomStyles = ({
|
|
|
353
378
|
centerShift: scaleShiftY,
|
|
354
379
|
epsilon: EPSILON,
|
|
355
380
|
});
|
|
381
|
+
|
|
356
382
|
const elementTranslateX =
|
|
357
383
|
toNumber(elementRaw.translateX) + compensatedGestureX;
|
|
358
384
|
const elementTranslateY =
|
|
359
385
|
toNumber(elementRaw.translateY) + compensatedGestureY;
|
|
360
386
|
const elementScaleX = toNumber(elementRaw.scaleX, 1) * dragScale;
|
|
361
387
|
const elementScaleY = toNumber(elementRaw.scaleY, 1) * dragScale;
|
|
388
|
+
|
|
362
389
|
const resolvedElementStyle = shouldHideUnfocusedIdle
|
|
363
390
|
? {
|
|
364
391
|
transform: [
|
|
@@ -373,12 +400,20 @@ export const buildZoomStyles = ({
|
|
|
373
400
|
}
|
|
374
401
|
: {
|
|
375
402
|
transform: [
|
|
376
|
-
{
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
{
|
|
403
|
+
{
|
|
404
|
+
translateX: shouldFreezeUnfocusedElement ? 0 : elementTranslateX,
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
translateY: shouldFreezeUnfocusedElement ? 0 : elementTranslateY,
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
scaleX: shouldFreezeUnfocusedElement ? 1 : elementScaleX,
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
scaleY: shouldFreezeUnfocusedElement ? 1 : elementScaleY,
|
|
414
|
+
},
|
|
380
415
|
],
|
|
381
|
-
opacity: debug ?
|
|
416
|
+
opacity: debug ? 0.5 : unfocusedFade,
|
|
382
417
|
zIndex: 9999,
|
|
383
418
|
elevation: 9999,
|
|
384
419
|
};
|
|
@@ -393,4 +428,4 @@ export const buildZoomStyles = ({
|
|
|
393
428
|
style: resolvedElementStyle,
|
|
394
429
|
},
|
|
395
430
|
};
|
|
396
|
-
}
|
|
431
|
+
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.DeferredVisibilityHost = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
|
-
var _constants = require("../../constants");
|
|
11
|
-
var _styles = require("../../providers/screen/styles.provider");
|
|
12
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
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); }
|
|
14
|
-
/**
|
|
15
|
-
* Hides the full screen visual subtree while an interpolator explicitly reports
|
|
16
|
-
* that it is not safe to reveal yet.
|
|
17
|
-
*
|
|
18
|
-
* This sits above backdrop/content/mask/surface so a deferred transition does
|
|
19
|
-
* not leak raw first-paint UI from nested layers.
|
|
20
|
-
*/
|
|
21
|
-
const DeferredVisibilityHost = exports.DeferredVisibilityHost = /*#__PURE__*/(0, _react.memo)(({
|
|
22
|
-
children
|
|
23
|
-
}) => {
|
|
24
|
-
const {
|
|
25
|
-
resolutionMode
|
|
26
|
-
} = (0, _styles.useScreenStyles)();
|
|
27
|
-
const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
28
|
-
"worklet";
|
|
29
|
-
|
|
30
|
-
return resolutionMode.value === "deferred" ? _constants.HIDDEN_STYLE : _constants.VISIBLE_STYLE;
|
|
31
|
-
});
|
|
32
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
33
|
-
collapsable: false,
|
|
34
|
-
style: [styles.host, animatedStyle],
|
|
35
|
-
children: children
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
const styles = _reactNative.StyleSheet.create({
|
|
39
|
-
host: {
|
|
40
|
-
flex: 1
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
//# sourceMappingURL=deferred-visibility-host.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_constants","_styles","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DeferredVisibilityHost","exports","memo","children","resolutionMode","useScreenStyles","animatedStyle","useAnimatedStyle","value","HIDDEN_STYLE","VISIBLE_STYLE","jsx","View","collapsable","style","styles","host","StyleSheet","create","flex"],"sourceRoot":"../../../../../src","sources":["shared/components/screen-container/deferred-visibility-host.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAAyE,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAG,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAMzE;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMkB,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,gBAAG,IAAAE,WAAI,EAAC,CAAC;EAAEC;AAAgB,CAAC,KAAK;EACnE,MAAM;IAAEC;EAAe,CAAC,GAAG,IAAAC,uBAAe,EAAC,CAAC;EAE5C,MAAMC,aAAa,GAAG,IAAAC,uCAAgB,EAAC,MAAM;IAC5C,SAAS;;IACT,OAAOH,cAAc,CAACI,KAAK,KAAK,UAAU,GAAGC,uBAAY,GAAGC,wBAAa;EAC1E,CAAC,CAAC;EAEF,oBACC,IAAA9B,WAAA,CAAA+B,GAAA,EAACnC,sBAAA,CAAAe,OAAQ,CAACqB,IAAI;IAACC,WAAW,EAAE,KAAM;IAACC,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAEV,aAAa,CAAE;IAAAH,QAAA,EACrEA;EAAQ,CACK,CAAC;AAElB,CAAC,CAAC;AAEF,MAAMY,MAAM,GAAGE,uBAAU,CAACC,MAAM,CAAC;EAChCF,IAAI,EAAE;IACLG,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
|