react-native-screen-transitions 3.0.0-beta.0 → 3.0.0-beta.2
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/blank-stack/components/Overlay.js +15 -3
- package/lib/commonjs/blank-stack/components/Overlay.js.map +1 -1
- package/lib/commonjs/blank-stack/hooks/use-overlay-animation.js +2 -2
- package/lib/commonjs/blank-stack/hooks/use-overlay-animation.js.map +1 -1
- package/lib/commonjs/shared/hooks/bounds/use-bound-registry.js +21 -0
- package/lib/commonjs/shared/hooks/bounds/use-bound-registry.js.map +1 -1
- package/lib/module/blank-stack/components/Overlay.js +15 -3
- package/lib/module/blank-stack/components/Overlay.js.map +1 -1
- package/lib/module/blank-stack/hooks/use-overlay-animation.js +2 -2
- package/lib/module/blank-stack/hooks/use-overlay-animation.js.map +1 -1
- package/lib/module/shared/hooks/bounds/use-bound-registry.js +22 -1
- package/lib/module/shared/hooks/bounds/use-bound-registry.js.map +1 -1
- package/lib/typescript/blank-stack/components/Overlay.d.ts.map +1 -1
- package/lib/typescript/blank-stack/hooks/use-overlay-animation.d.ts +1 -1
- package/lib/typescript/blank-stack/hooks/use-overlay-animation.d.ts.map +1 -1
- package/lib/typescript/blank-stack/types.d.ts +7 -3
- package/lib/typescript/blank-stack/types.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/bounds/use-bound-registry.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +1 -0
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/package.json +87 -99
- package/src/blank-stack/components/Overlay.tsx +18 -3
- package/src/blank-stack/hooks/use-overlay-animation.tsx +3 -3
- package/src/blank-stack/types.ts +7 -2
- package/src/shared/hooks/bounds/use-bound-registry.tsx +32 -1
- package/src/shared/index.ts +5 -0
|
@@ -11,9 +11,19 @@ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
|
11
11
|
var _keys = require("../../shared/providers/keys");
|
|
12
12
|
var _useOverlayAnimation = require("../hooks/use-overlay-animation");
|
|
13
13
|
var _withStackNavigation = require("../utils/with-stack-navigation");
|
|
14
|
+
var _useScreenAnimation = require("../../shared/hooks/animation/use-screen-animation");
|
|
14
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
16
|
const getActiveFloatOverlay = (scenes, index) => {
|
|
16
|
-
|
|
17
|
+
if (scenes.length === 0) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// When navigating back, closing scenes are kept at the top of the local stack
|
|
22
|
+
// while the focused index already points to the destination screen. We need to
|
|
23
|
+
// start scanning from the actual top of the stack so the overlay can animate
|
|
24
|
+
// out together with its closing screen instead of disappearing immediately.
|
|
25
|
+
const startIndex = Math.max(index, scenes.length - 1);
|
|
26
|
+
for (let i = startIndex; i >= 0; i--) {
|
|
17
27
|
const scene = scenes[i];
|
|
18
28
|
const options = scene?.descriptor?.options;
|
|
19
29
|
if (options?.overlayMode === "float" && options?.overlayShown) {
|
|
@@ -32,16 +42,18 @@ const OverlayHost = ({
|
|
|
32
42
|
const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
|
|
33
43
|
const OverlayComponent = scene.descriptor.options.overlay;
|
|
34
44
|
const {
|
|
35
|
-
|
|
45
|
+
overlayAnimation,
|
|
36
46
|
optimisticActiveIndex
|
|
37
47
|
} = (0, _useOverlayAnimation.useOverlayAnimation)();
|
|
48
|
+
const screenAnimation = (0, _useScreenAnimation.useScreenAnimation)();
|
|
38
49
|
if (!OverlayComponent) {
|
|
39
50
|
return null;
|
|
40
51
|
}
|
|
41
52
|
const overlayProps = {
|
|
42
53
|
route: scene.route,
|
|
43
54
|
navigation: scene.descriptor.navigation,
|
|
44
|
-
|
|
55
|
+
overlayAnimation,
|
|
56
|
+
screenAnimation,
|
|
45
57
|
focusedIndex: optimisticActiveIndex,
|
|
46
58
|
insets
|
|
47
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","_react","_reactNative","_reactNativeSafeAreaContext","_keys","_useOverlayAnimation","_withStackNavigation","_jsxRuntime","getActiveFloatOverlay","scenes","index","i","scene","options","descriptor","overlayMode","overlayShown","overlayIndex","OverlayHost","isFloating","insets","useSafeAreaInsets","OverlayComponent","overlay","
|
|
1
|
+
{"version":3,"names":["_native","require","_react","_reactNative","_reactNativeSafeAreaContext","_keys","_useOverlayAnimation","_withStackNavigation","_useScreenAnimation","_jsxRuntime","getActiveFloatOverlay","scenes","index","length","startIndex","Math","max","i","scene","options","descriptor","overlayMode","overlayShown","overlayIndex","OverlayHost","isFloating","insets","useSafeAreaInsets","OverlayComponent","overlay","overlayAnimation","optimisticActiveIndex","useOverlayAnimation","screenAnimation","useScreenAnimation","overlayProps","route","navigation","focusedIndex","jsx","Animated","View","pointerEvents","style","styles","container","floating","absolute","children","NavigationContext","Provider","value","NavigationRouteContext","FloatOverlay","useStackNavigationContext","activeOverlay","useMemo","previous","current","next","KeysProvider","ScreenOverlay","useKeys","Overlay","exports","Float","Screen","StyleSheet","create","absoluteFillObject","zIndex","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/Overlay.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -61,7 +61,7 @@ const useOverlayAnimation = () => {
|
|
|
61
61
|
const optimisticActiveIndex = (0, _useSharedValueState.useSharedValueState)(optimisticActiveIndexValue);
|
|
62
62
|
const screen = (0, _reactNative.useWindowDimensions)();
|
|
63
63
|
const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
|
|
64
|
-
const
|
|
64
|
+
const overlayAnimation = (0, _reactNativeReanimated.useDerivedValue)(() => ({
|
|
65
65
|
progress: accumulatedProgress.value,
|
|
66
66
|
layouts: {
|
|
67
67
|
screen
|
|
@@ -69,7 +69,7 @@ const useOverlayAnimation = () => {
|
|
|
69
69
|
insets
|
|
70
70
|
}));
|
|
71
71
|
return {
|
|
72
|
-
|
|
72
|
+
overlayAnimation,
|
|
73
73
|
optimisticActiveIndex
|
|
74
74
|
};
|
|
75
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_useSharedValueState","_keys","_animationStore","_gestureStore","_withStackNavigation","useOverlayAnimation","current","useKeys","scenes","focusedIndex","useStackNavigationContext","routeKey","route","key","gestureState","GestureStore","getRouteGestures","fallbackIsDismissing","useSharedValue","progressValues","useMemo","overlayIndex","findIndex","scene","slice","map","AnimationStore","getAll","accumulatedProgress","useDerivedValue","total","i","length","progress","value","optimisticActiveIndexValue","activeIndex","isOneDismissing","Number","some","closing","optimisticIndex","optimisticActiveIndex","useSharedValueState","screen","useWindowDimensions","insets","useSafeAreaInsets","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_useSharedValueState","_keys","_animationStore","_gestureStore","_withStackNavigation","useOverlayAnimation","current","useKeys","scenes","focusedIndex","useStackNavigationContext","routeKey","route","key","gestureState","GestureStore","getRouteGestures","fallbackIsDismissing","useSharedValue","progressValues","useMemo","overlayIndex","findIndex","scene","slice","map","AnimationStore","getAll","accumulatedProgress","useDerivedValue","total","i","length","progress","value","optimisticActiveIndexValue","activeIndex","isOneDismissing","Number","some","closing","optimisticIndex","optimisticActiveIndex","useSharedValueState","screen","useWindowDimensions","insets","useSafeAreaInsets","overlayAnimation","layouts","exports"],"sourceRoot":"../../../../src","sources":["blank-stack/hooks/use-overlay-animation.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -110,6 +110,27 @@ const useBoundsRegistry = ({
|
|
|
110
110
|
children: children
|
|
111
111
|
});
|
|
112
112
|
}, [IS_ROOT, sharedBoundTag, ROOT_SIGNAL]);
|
|
113
|
+
const prevNextRef = (0, _react.useRef)(next);
|
|
114
|
+
/**
|
|
115
|
+
* Measure non-pressable elements when the screen goes from focused to blurred
|
|
116
|
+
* (or when a new `next` descriptor appears) so we capture final bounds
|
|
117
|
+
* right before the transition starts.
|
|
118
|
+
*/
|
|
119
|
+
(0, _react.useLayoutEffect)(() => {
|
|
120
|
+
if (!sharedBoundTag || onPress) return;
|
|
121
|
+
const hadNext = !!prevNextRef.current;
|
|
122
|
+
const hasNext = !!next;
|
|
123
|
+
if (!hadNext && hasNext) {
|
|
124
|
+
(0, _reactNativeReanimated.runOnUI)(maybeMeasureAndStore)({});
|
|
125
|
+
}
|
|
126
|
+
prevNextRef.current = next;
|
|
127
|
+
}, [next, sharedBoundTag, onPress, maybeMeasureAndStore]);
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Signal child shared elements (nested under this provider) to refresh their
|
|
131
|
+
* measurements when the root updates, while preventing them from marking
|
|
132
|
+
* themselves active during that sync.
|
|
133
|
+
*/
|
|
113
134
|
(0, _reactNativeReanimated.useAnimatedReaction)(() => ROOT_MEASUREMENT_SIGNAL?.updateSignal.value, current => {
|
|
114
135
|
"worklet";
|
|
115
136
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeReanimated","_keys","_boundStore","_isBoundsEqual","_styles","_useStableCallback","_interopRequireDefault","_useStableCallbackValue","_jsxRuntime","e","__esModule","default","MeasurementUpdateContext","createContext","useBoundsRegistry","sharedBoundTag","animatedRef","style","onPress","previous","current","next","useKeys","preparedStyles","useMemo","prepareStyleForBounds","ROOT_MEASUREMENT_SIGNAL","useContext","ROOT_SIGNAL","useSharedValue","IS_ROOT","emitUpdate","useStableCallbackValue","value","maybeMeasureAndStore","skipMarkingActive","measured","measure","console","warn","key","route","isBoundsEqual","BoundStore","setRouteActive","runOnJS","setBounds","hasMeasuredOnLayout","handleInitialLayout","prevKey","prevBounds","getBounds","captureActiveOnPress","useStableCallback","runOnUI","MeasurementSyncProvider","Fragment","children","jsx","Provider","updateSignal","useAnimatedReaction","undefined","exports"],"sourceRoot":"../../../../../src","sources":["shared/hooks/bounds/use-bound-registry.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_keys","_boundStore","_isBoundsEqual","_styles","_useStableCallback","_interopRequireDefault","_useStableCallbackValue","_jsxRuntime","e","__esModule","default","MeasurementUpdateContext","createContext","useBoundsRegistry","sharedBoundTag","animatedRef","style","onPress","previous","current","next","useKeys","preparedStyles","useMemo","prepareStyleForBounds","ROOT_MEASUREMENT_SIGNAL","useContext","ROOT_SIGNAL","useSharedValue","IS_ROOT","emitUpdate","useStableCallbackValue","value","maybeMeasureAndStore","skipMarkingActive","measured","measure","console","warn","key","route","isBoundsEqual","BoundStore","setRouteActive","runOnJS","setBounds","hasMeasuredOnLayout","handleInitialLayout","prevKey","prevBounds","getBounds","captureActiveOnPress","useStableCallback","runOnUI","MeasurementSyncProvider","Fragment","children","jsx","Provider","updateSignal","prevNextRef","useRef","useLayoutEffect","hadNext","hasNext","useAnimatedReaction","undefined","exports"],"sourceRoot":"../../../../../src","sources":["shared/hooks/bounds/use-bound-registry.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,9 +7,19 @@ import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
|
7
7
|
import { KeysProvider, useKeys } from "../../shared/providers/keys";
|
|
8
8
|
import { useOverlayAnimation } from "../hooks/use-overlay-animation";
|
|
9
9
|
import { useStackNavigationContext } from "../utils/with-stack-navigation";
|
|
10
|
+
import { useScreenAnimation } from "../../shared/hooks/animation/use-screen-animation";
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
12
|
const getActiveFloatOverlay = (scenes, index) => {
|
|
12
|
-
|
|
13
|
+
if (scenes.length === 0) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// When navigating back, closing scenes are kept at the top of the local stack
|
|
18
|
+
// while the focused index already points to the destination screen. We need to
|
|
19
|
+
// start scanning from the actual top of the stack so the overlay can animate
|
|
20
|
+
// out together with its closing screen instead of disappearing immediately.
|
|
21
|
+
const startIndex = Math.max(index, scenes.length - 1);
|
|
22
|
+
for (let i = startIndex; i >= 0; i--) {
|
|
13
23
|
const scene = scenes[i];
|
|
14
24
|
const options = scene?.descriptor?.options;
|
|
15
25
|
if (options?.overlayMode === "float" && options?.overlayShown) {
|
|
@@ -28,16 +38,18 @@ const OverlayHost = ({
|
|
|
28
38
|
const insets = useSafeAreaInsets();
|
|
29
39
|
const OverlayComponent = scene.descriptor.options.overlay;
|
|
30
40
|
const {
|
|
31
|
-
|
|
41
|
+
overlayAnimation,
|
|
32
42
|
optimisticActiveIndex
|
|
33
43
|
} = useOverlayAnimation();
|
|
44
|
+
const screenAnimation = useScreenAnimation();
|
|
34
45
|
if (!OverlayComponent) {
|
|
35
46
|
return null;
|
|
36
47
|
}
|
|
37
48
|
const overlayProps = {
|
|
38
49
|
route: scene.route,
|
|
39
50
|
navigation: scene.descriptor.navigation,
|
|
40
|
-
|
|
51
|
+
overlayAnimation,
|
|
52
|
+
screenAnimation,
|
|
41
53
|
focusedIndex: optimisticActiveIndex,
|
|
42
54
|
insets
|
|
43
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NavigationContext","NavigationRouteContext","useMemo","Animated","StyleSheet","View","useSafeAreaInsets","KeysProvider","useKeys","useOverlayAnimation","useStackNavigationContext","jsx","_jsx","getActiveFloatOverlay","scenes","index","i","scene","options","descriptor","overlayMode","overlayShown","overlayIndex","OverlayHost","isFloating","insets","OverlayComponent","overlay","
|
|
1
|
+
{"version":3,"names":["NavigationContext","NavigationRouteContext","useMemo","Animated","StyleSheet","View","useSafeAreaInsets","KeysProvider","useKeys","useOverlayAnimation","useStackNavigationContext","useScreenAnimation","jsx","_jsx","getActiveFloatOverlay","scenes","index","length","startIndex","Math","max","i","scene","options","descriptor","overlayMode","overlayShown","overlayIndex","OverlayHost","isFloating","insets","OverlayComponent","overlay","overlayAnimation","optimisticActiveIndex","screenAnimation","overlayProps","route","navigation","focusedIndex","pointerEvents","style","styles","container","floating","absolute","children","Provider","value","FloatOverlay","activeOverlay","previous","current","next","ScreenOverlay","Overlay","Float","Screen","create","absoluteFillObject","zIndex","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/Overlay.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -58,7 +58,7 @@ export const useOverlayAnimation = () => {
|
|
|
58
58
|
const optimisticActiveIndex = useSharedValueState(optimisticActiveIndexValue);
|
|
59
59
|
const screen = useWindowDimensions();
|
|
60
60
|
const insets = useSafeAreaInsets();
|
|
61
|
-
const
|
|
61
|
+
const overlayAnimation = useDerivedValue(() => ({
|
|
62
62
|
progress: accumulatedProgress.value,
|
|
63
63
|
layouts: {
|
|
64
64
|
screen
|
|
@@ -66,7 +66,7 @@ export const useOverlayAnimation = () => {
|
|
|
66
66
|
insets
|
|
67
67
|
}));
|
|
68
68
|
return {
|
|
69
|
-
|
|
69
|
+
overlayAnimation,
|
|
70
70
|
optimisticActiveIndex
|
|
71
71
|
};
|
|
72
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useWindowDimensions","useDerivedValue","useSharedValue","useSafeAreaInsets","useSharedValueState","useKeys","AnimationStore","GestureStore","useStackNavigationContext","useOverlayAnimation","current","scenes","focusedIndex","routeKey","route","key","gestureState","getRouteGestures","fallbackIsDismissing","progressValues","overlayIndex","findIndex","scene","slice","map","getAll","accumulatedProgress","total","i","length","progress","value","optimisticActiveIndexValue","activeIndex","isOneDismissing","Number","some","closing","optimisticIndex","optimisticActiveIndex","screen","insets","
|
|
1
|
+
{"version":3,"names":["useMemo","useWindowDimensions","useDerivedValue","useSharedValue","useSafeAreaInsets","useSharedValueState","useKeys","AnimationStore","GestureStore","useStackNavigationContext","useOverlayAnimation","current","scenes","focusedIndex","routeKey","route","key","gestureState","getRouteGestures","fallbackIsDismissing","progressValues","overlayIndex","findIndex","scene","slice","map","getAll","accumulatedProgress","total","i","length","progress","value","optimisticActiveIndexValue","activeIndex","isOneDismissing","Number","some","closing","optimisticIndex","optimisticActiveIndex","screen","insets","overlayAnimation","layouts"],"sourceRoot":"../../../../src","sources":["blank-stack/hooks/use-overlay-animation.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAGCC,eAAe,EACfC,cAAc,QACR,yBAAyB;AAChC,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,mBAAmB,QAAQ,2CAA2C;AAC/E,SAASC,OAAO,QAAQ,6BAA6B;AACrD,SACCC,cAAc,QAER,qCAAqC;AAC5C,SAASC,YAAY,QAAQ,mCAAmC;AAEhE,SAASC,yBAAyB,QAAQ,gCAAgC;;AAE1E;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAG9B;EACJ,MAAM;IAAEC;EAAQ,CAAC,GAAGL,OAAO,CAAC,CAAC;EAC7B,MAAM;IAAEM,MAAM;IAAEC;EAAa,CAAC,GAAGJ,yBAAyB,CAAC,CAAC;EAC5D,MAAMK,QAAQ,GAAGH,OAAO,EAAEI,KAAK,EAAEC,GAAG;EAEpC,MAAMC,YAAY,GAAGH,QAAQ,GAC1BN,YAAY,CAACU,gBAAgB,CAACJ,QAAQ,CAAC,GACvC,IAAI;EAEP,MAAMK,oBAAoB,GAAGhB,cAAc,CAAC,CAAC,CAAC;EAE9C,MAAMiB,cAAc,GAAGpB,OAAO,CAAC,MAAM;IACpC,IAAI,CAACc,QAAQ,EAAE;MACd,OAAO,EAAE;IACV;IAEA,MAAMO,YAAY,GAAGT,MAAM,CAACU,SAAS,CACnCC,KAAK,IAAKA,KAAK,CAACR,KAAK,CAACC,GAAG,KAAKF,QAChC,CAAC;IAED,IAAIO,YAAY,KAAK,CAAC,CAAC,EAAE;MACxB,OAAO,EAAE;IACV;IAEA,OAAOT,MAAM,CAACY,KAAK,CAACH,YAAY,CAAC,CAACI,GAAG,CAAEF,KAAK,IAAK;MAChD,OAAOhB,cAAc,CAACmB,MAAM,CAACH,KAAK,CAACR,KAAK,CAACC,GAAG,CAAC;IAC9C,CAAC,CAAC;EACH,CAAC,EAAE,CAACF,QAAQ,EAAEF,MAAM,CAAC,CAAC;EAEtB,MAAMe,mBAAmB,GAAGzB,eAAe,CAAC,MAAM;IACjD,SAAS;;IAET,IAAI0B,KAAK,GAAG,CAAC;IAEb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,cAAc,CAACU,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MAClDD,KAAK,IAAIR,cAAc,CAACS,CAAC,CAAC,CAACE,QAAQ,CAACC,KAAK;IAC1C;IAEA,OAAOJ,KAAK;EACb,CAAC,EAAE,CAACR,cAAc,CAAC,CAAC;EAEpB,MAAMa,0BAA0B,GAAG/B,eAAe,CAAC,MAAM;IACxD,SAAS;;IAET,MAAMgC,WAAW,GAAGd,cAAc,CAACU,MAAM,GAAG,CAAC;IAE7C,MAAMK,eAAe,GAAGC,MAAM,CAC7BhB,cAAc,CAACiB,IAAI,CAAEL,KAAK,IAAKA,KAAK,CAACM,OAAO,CAACN,KAAK,GAAG,CAAC,CACvD,CAAC;IAED,MAAMO,eAAe,GAAGL,WAAW,GAAGC,eAAe;IAErD,OAAOI,eAAe;EACvB,CAAC,CAAC;EAEF,MAAMC,qBAAqB,GAAGnC,mBAAmB,CAAC4B,0BAA0B,CAAC;EAE7E,MAAMQ,MAAM,GAAGxC,mBAAmB,CAAC,CAAC;EAEpC,MAAMyC,MAAM,GAAGtC,iBAAiB,CAAC,CAAC;EAElC,MAAMuC,gBAAgB,GAAGzC,eAAe,CAA4B,OAAO;IAC1E6B,QAAQ,EAAEJ,mBAAmB,CAACK,KAAK;IACnCY,OAAO,EAAE;MACRH;IACD,CAAC;IACDC;EACD,CAAC,CAAC,CAAC;EAEH,OAAO;IACNC,gBAAgB;IAChBH;EACD,CAAC;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { createContext, Fragment, useContext, useMemo } from "react";
|
|
3
|
+
import { createContext, Fragment, useContext, useLayoutEffect, useMemo, useRef } from "react";
|
|
4
4
|
import { measure, runOnJS, runOnUI, useAnimatedReaction, useSharedValue } from "react-native-reanimated";
|
|
5
5
|
import { useKeys } from "../../providers/keys";
|
|
6
6
|
import { BoundStore } from "../../stores/bound-store";
|
|
@@ -105,6 +105,27 @@ export const useBoundsRegistry = ({
|
|
|
105
105
|
children: children
|
|
106
106
|
});
|
|
107
107
|
}, [IS_ROOT, sharedBoundTag, ROOT_SIGNAL]);
|
|
108
|
+
const prevNextRef = useRef(next);
|
|
109
|
+
/**
|
|
110
|
+
* Measure non-pressable elements when the screen goes from focused to blurred
|
|
111
|
+
* (or when a new `next` descriptor appears) so we capture final bounds
|
|
112
|
+
* right before the transition starts.
|
|
113
|
+
*/
|
|
114
|
+
useLayoutEffect(() => {
|
|
115
|
+
if (!sharedBoundTag || onPress) return;
|
|
116
|
+
const hadNext = !!prevNextRef.current;
|
|
117
|
+
const hasNext = !!next;
|
|
118
|
+
if (!hadNext && hasNext) {
|
|
119
|
+
runOnUI(maybeMeasureAndStore)({});
|
|
120
|
+
}
|
|
121
|
+
prevNextRef.current = next;
|
|
122
|
+
}, [next, sharedBoundTag, onPress, maybeMeasureAndStore]);
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Signal child shared elements (nested under this provider) to refresh their
|
|
126
|
+
* measurements when the root updates, while preventing them from marking
|
|
127
|
+
* themselves active during that sync.
|
|
128
|
+
*/
|
|
108
129
|
useAnimatedReaction(() => ROOT_MEASUREMENT_SIGNAL?.updateSignal.value, current => {
|
|
109
130
|
"worklet";
|
|
110
131
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","Fragment","useContext","useMemo","measure","runOnJS","runOnUI","useAnimatedReaction","useSharedValue","useKeys","BoundStore","isBoundsEqual","prepareStyleForBounds","useStableCallback","useStableCallbackValue","jsx","_jsx","MeasurementUpdateContext","useBoundsRegistry","sharedBoundTag","animatedRef","style","onPress","previous","current","next","preparedStyles","ROOT_MEASUREMENT_SIGNAL","ROOT_SIGNAL","IS_ROOT","emitUpdate","value","maybeMeasureAndStore","skipMarkingActive","measured","console","warn","key","route","setRouteActive","setBounds","hasMeasuredOnLayout","handleInitialLayout","prevKey","prevBounds","getBounds","captureActiveOnPress","MeasurementSyncProvider","children","Provider","updateSignal","undefined"],"sourceRoot":"../../../../../src","sources":["shared/hooks/bounds/use-bound-registry.tsx"],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"names":["createContext","Fragment","useContext","useLayoutEffect","useMemo","useRef","measure","runOnJS","runOnUI","useAnimatedReaction","useSharedValue","useKeys","BoundStore","isBoundsEqual","prepareStyleForBounds","useStableCallback","useStableCallbackValue","jsx","_jsx","MeasurementUpdateContext","useBoundsRegistry","sharedBoundTag","animatedRef","style","onPress","previous","current","next","preparedStyles","ROOT_MEASUREMENT_SIGNAL","ROOT_SIGNAL","IS_ROOT","emitUpdate","value","maybeMeasureAndStore","skipMarkingActive","measured","console","warn","key","route","setRouteActive","setBounds","hasMeasuredOnLayout","handleInitialLayout","prevKey","prevBounds","getBounds","captureActiveOnPress","MeasurementSyncProvider","children","Provider","updateSignal","prevNextRef","hadNext","hasNext","undefined"],"sourceRoot":"../../../../../src","sources":["shared/hooks/bounds/use-bound-registry.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/Overlay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/Overlay.tsx"],"names":[],"mappings":"AAmIA,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
|
|
@@ -6,7 +6,7 @@ import type { OverlayInterpolationProps } from "../../shared/types/animation";
|
|
|
6
6
|
* drive animations that span multiple screens.
|
|
7
7
|
*/
|
|
8
8
|
export declare const useOverlayAnimation: () => {
|
|
9
|
-
|
|
9
|
+
overlayAnimation: DerivedValue<OverlayInterpolationProps>;
|
|
10
10
|
optimisticActiveIndex: number;
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=use-overlay-animation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-overlay-animation.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/hooks/use-overlay-animation.tsx"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,YAAY,EAIjB,MAAM,yBAAyB,CAAC;AASjC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAG9E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAO;IACtC,
|
|
1
|
+
{"version":3,"file":"use-overlay-animation.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/hooks/use-overlay-animation.tsx"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,YAAY,EAIjB,MAAM,yBAAyB,CAAC;AASjC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAG9E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAO;IACtC,gBAAgB,EAAE,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAC1D,qBAAqB,EAAE,MAAM,CAAC;CA0E9B,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, Navigation
|
|
|
2
2
|
import type { DerivedValue } from "react-native-reanimated";
|
|
3
3
|
import type { EdgeInsets } from "react-native-safe-area-context";
|
|
4
4
|
import type { ScreenProps } from "react-native-screens";
|
|
5
|
-
import type { OverlayInterpolationProps, ScreenStyleInterpolator, TransitionSpec } from "../shared/types/animation";
|
|
5
|
+
import type { OverlayInterpolationProps, ScreenInterpolationProps, ScreenStyleInterpolator, TransitionSpec } from "../shared/types/animation";
|
|
6
6
|
import type { GestureActivationArea, GestureDirection } from "../shared/types/gesture";
|
|
7
7
|
export type BlankStackNavigationEventMap = {
|
|
8
8
|
/**
|
|
@@ -79,9 +79,13 @@ export type BlankStackOverlayProps = {
|
|
|
79
79
|
*/
|
|
80
80
|
insets: EdgeInsets;
|
|
81
81
|
/**
|
|
82
|
-
*
|
|
82
|
+
* Animation values for the overlay.
|
|
83
83
|
*/
|
|
84
|
-
|
|
84
|
+
overlayAnimation: DerivedValue<OverlayInterpolationProps>;
|
|
85
|
+
/**
|
|
86
|
+
* Animation values for the screen.
|
|
87
|
+
*/
|
|
88
|
+
screenAnimation: DerivedValue<ScreenInterpolationProps>;
|
|
85
89
|
/**
|
|
86
90
|
* Index of the active route
|
|
87
91
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/blank-stack/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/blank-stack/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-bound-registry.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/bounds/use-bound-registry.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-bound-registry.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/bounds/use-bound-registry.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACN,KAAK,WAAW,EAIhB,KAAK,UAAU,EAGf,MAAM,yBAAyB,CAAC;AASjC,UAAU,sBAAsB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrD;AAcD,eAAO,MAAM,iBAAiB,GAAI,kDAK/B,sBAAsB;;;8GAoFD;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE;CAiDpD,CAAC"}
|
|
@@ -1320,4 +1320,5 @@ declare const _default: {
|
|
|
1320
1320
|
};
|
|
1321
1321
|
export default _default;
|
|
1322
1322
|
export { useScreenAnimation } from "./hooks/animation/use-screen-animation";
|
|
1323
|
+
export type { OverlayInterpolationProps, ScreenInterpolationProps, } from "./types/animation";
|
|
1323
1324
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,UAAU,MAAM,uCAAuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,UAAU,MAAM,uCAAuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAwB2oE,CAAC;;;;;;;;;;AArB3sE,wBAaE;AAEF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAE5E,YAAY,EACX,yBAAyB,EACzB,wBAAwB,GACxB,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,101 +1,89 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"targets": [
|
|
90
|
-
"commonjs",
|
|
91
|
-
"module",
|
|
92
|
-
[
|
|
93
|
-
"typescript",
|
|
94
|
-
{
|
|
95
|
-
"project": "tsconfig.build.json"
|
|
96
|
-
}
|
|
97
|
-
]
|
|
98
|
-
]
|
|
99
|
-
},
|
|
100
|
-
"gitHead": "888d4df9936ec0e3b8221bea7cd81115e6301693"
|
|
2
|
+
"name": "react-native-screen-transitions",
|
|
3
|
+
"version": "3.0.0-beta.2",
|
|
4
|
+
"description": "Easy screen transitions for React Native and Expo",
|
|
5
|
+
"author": "Ed",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/eds2002/react-native-screen-transitions.git",
|
|
10
|
+
"directory": "packages/react-native-screen-transitions"
|
|
11
|
+
},
|
|
12
|
+
"main": "lib/commonjs/shared/index.js",
|
|
13
|
+
"module": "lib/module/shared/index.js",
|
|
14
|
+
"types": "lib/typescript/shared/index.d.ts",
|
|
15
|
+
"react-native": "src/shared/index",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"react-native": "./src/shared/index.ts",
|
|
19
|
+
"import": "./lib/module/shared/index.js",
|
|
20
|
+
"require": "./lib/commonjs/shared/index.js",
|
|
21
|
+
"types": "./lib/typescript/shared/index.d.ts"
|
|
22
|
+
},
|
|
23
|
+
"./native-stack": {
|
|
24
|
+
"react-native": "./src/native-stack/index.ts",
|
|
25
|
+
"import": "./lib/module/native-stack/index.js",
|
|
26
|
+
"require": "./lib/commonjs/native-stack/index.js",
|
|
27
|
+
"types": "./lib/typescript/native-stack/index.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./blank-stack": {
|
|
30
|
+
"react-native": "./src/blank-stack/index.ts",
|
|
31
|
+
"import": "./lib/module/blank-stack/index.js",
|
|
32
|
+
"require": "./lib/commonjs/blank-stack/index.js",
|
|
33
|
+
"types": "./lib/typescript/blank-stack/index.d.ts"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "bob build",
|
|
38
|
+
"lint": "biome check ./src",
|
|
39
|
+
"prepublishOnly": "bun run build"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"react-native",
|
|
43
|
+
"transitions",
|
|
44
|
+
"animation",
|
|
45
|
+
"react-navigation",
|
|
46
|
+
"expo-router",
|
|
47
|
+
"reanimated"
|
|
48
|
+
],
|
|
49
|
+
"files": [
|
|
50
|
+
"lib",
|
|
51
|
+
"src",
|
|
52
|
+
"README.md",
|
|
53
|
+
"LICENSE"
|
|
54
|
+
],
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@react-navigation/elements": ">=2.0.0",
|
|
57
|
+
"@react-navigation/native": ">=6.0.0",
|
|
58
|
+
"@react-navigation/native-stack": ">=7.0.0",
|
|
59
|
+
"@types/react": "*",
|
|
60
|
+
"@types/react-native": "*",
|
|
61
|
+
"react": "*",
|
|
62
|
+
"react-native": "*",
|
|
63
|
+
"react-native-gesture-handler": ">=2.16.1",
|
|
64
|
+
"react-native-reanimated": ">=3.16.0 || >=4.0.0-",
|
|
65
|
+
"react-native-safe-area-context": "*",
|
|
66
|
+
"react-native-screens": ">=4.4.0"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@testing-library/react-native": "^13.2.0",
|
|
70
|
+
"@types/react": "~19.1.10",
|
|
71
|
+
"react-native-builder-bob": "0.39.0",
|
|
72
|
+
"typescript": "catalog:"
|
|
73
|
+
},
|
|
74
|
+
"react-native-builder-bob": {
|
|
75
|
+
"source": "src",
|
|
76
|
+
"output": "lib",
|
|
77
|
+
"targets": [
|
|
78
|
+
"commonjs",
|
|
79
|
+
"module",
|
|
80
|
+
[
|
|
81
|
+
"typescript",
|
|
82
|
+
{
|
|
83
|
+
"project": "tsconfig.build.json"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"gitHead": "888d4df9936ec0e3b8221bea7cd81115e6301693"
|
|
101
89
|
}
|
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
BlankStackScene,
|
|
14
14
|
} from "../types";
|
|
15
15
|
import { useStackNavigationContext } from "../utils/with-stack-navigation";
|
|
16
|
+
import { useScreenAnimation } from "../../shared/hooks/animation/use-screen-animation";
|
|
16
17
|
|
|
17
18
|
type OverlayHostProps = {
|
|
18
19
|
scene: BlankStackScene;
|
|
@@ -20,7 +21,17 @@ type OverlayHostProps = {
|
|
|
20
21
|
};
|
|
21
22
|
|
|
22
23
|
const getActiveFloatOverlay = (scenes: BlankStackScene[], index: number) => {
|
|
23
|
-
|
|
24
|
+
if (scenes.length === 0) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// When navigating back, closing scenes are kept at the top of the local stack
|
|
29
|
+
// while the focused index already points to the destination screen. We need to
|
|
30
|
+
// start scanning from the actual top of the stack so the overlay can animate
|
|
31
|
+
// out together with its closing screen instead of disappearing immediately.
|
|
32
|
+
const startIndex = Math.max(index, scenes.length - 1);
|
|
33
|
+
|
|
34
|
+
for (let i = startIndex; i >= 0; i--) {
|
|
24
35
|
const scene = scenes[i];
|
|
25
36
|
const options = scene?.descriptor?.options;
|
|
26
37
|
|
|
@@ -32,12 +43,15 @@ const getActiveFloatOverlay = (scenes: BlankStackScene[], index: number) => {
|
|
|
32
43
|
return null;
|
|
33
44
|
};
|
|
34
45
|
|
|
46
|
+
|
|
35
47
|
const OverlayHost = ({ scene, isFloating }: OverlayHostProps) => {
|
|
36
48
|
const insets = useSafeAreaInsets();
|
|
37
49
|
|
|
38
50
|
const OverlayComponent = scene.descriptor.options.overlay;
|
|
39
51
|
|
|
40
|
-
const {
|
|
52
|
+
const { overlayAnimation, optimisticActiveIndex } = useOverlayAnimation();
|
|
53
|
+
|
|
54
|
+
const screenAnimation = useScreenAnimation();
|
|
41
55
|
|
|
42
56
|
if (!OverlayComponent) {
|
|
43
57
|
return null;
|
|
@@ -46,7 +60,8 @@ const OverlayHost = ({ scene, isFloating }: OverlayHostProps) => {
|
|
|
46
60
|
const overlayProps: BlankStackOverlayProps = {
|
|
47
61
|
route: scene.route,
|
|
48
62
|
navigation: scene.descriptor.navigation,
|
|
49
|
-
|
|
63
|
+
overlayAnimation,
|
|
64
|
+
screenAnimation,
|
|
50
65
|
focusedIndex: optimisticActiveIndex,
|
|
51
66
|
insets,
|
|
52
67
|
};
|
|
@@ -23,7 +23,7 @@ import { useStackNavigationContext } from "../utils/with-stack-navigation";
|
|
|
23
23
|
* drive animations that span multiple screens.
|
|
24
24
|
*/
|
|
25
25
|
export const useOverlayAnimation = (): {
|
|
26
|
-
|
|
26
|
+
overlayAnimation: DerivedValue<OverlayInterpolationProps>;
|
|
27
27
|
optimisticActiveIndex: number;
|
|
28
28
|
} => {
|
|
29
29
|
const { current } = useKeys();
|
|
@@ -86,7 +86,7 @@ export const useOverlayAnimation = (): {
|
|
|
86
86
|
|
|
87
87
|
const insets = useSafeAreaInsets();
|
|
88
88
|
|
|
89
|
-
const
|
|
89
|
+
const overlayAnimation = useDerivedValue<OverlayInterpolationProps>(() => ({
|
|
90
90
|
progress: accumulatedProgress.value,
|
|
91
91
|
layouts: {
|
|
92
92
|
screen,
|
|
@@ -95,7 +95,7 @@ export const useOverlayAnimation = (): {
|
|
|
95
95
|
}));
|
|
96
96
|
|
|
97
97
|
return {
|
|
98
|
-
|
|
98
|
+
overlayAnimation,
|
|
99
99
|
optimisticActiveIndex,
|
|
100
100
|
};
|
|
101
101
|
};
|
package/src/blank-stack/types.ts
CHANGED
|
@@ -16,6 +16,7 @@ import type { EdgeInsets } from "react-native-safe-area-context";
|
|
|
16
16
|
import type { ScreenProps } from "react-native-screens";
|
|
17
17
|
import type {
|
|
18
18
|
OverlayInterpolationProps,
|
|
19
|
+
ScreenInterpolationProps,
|
|
19
20
|
ScreenStyleInterpolator,
|
|
20
21
|
TransitionSpec,
|
|
21
22
|
} from "../shared/types/animation";
|
|
@@ -115,9 +116,13 @@ export type BlankStackOverlayProps = {
|
|
|
115
116
|
*/
|
|
116
117
|
insets: EdgeInsets;
|
|
117
118
|
/**
|
|
118
|
-
*
|
|
119
|
+
* Animation values for the overlay.
|
|
119
120
|
*/
|
|
120
|
-
|
|
121
|
+
overlayAnimation: DerivedValue<OverlayInterpolationProps>;
|
|
122
|
+
/**
|
|
123
|
+
* Animation values for the screen.
|
|
124
|
+
*/
|
|
125
|
+
screenAnimation: DerivedValue<ScreenInterpolationProps>;
|
|
121
126
|
/**
|
|
122
127
|
* Index of the active route
|
|
123
128
|
*/
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
createContext,
|
|
3
|
+
Fragment,
|
|
4
|
+
useContext,
|
|
5
|
+
useLayoutEffect,
|
|
6
|
+
useMemo,
|
|
7
|
+
useRef,
|
|
8
|
+
} from "react";
|
|
2
9
|
import type { View } from "react-native";
|
|
3
10
|
import {
|
|
4
11
|
type AnimatedRef,
|
|
@@ -132,6 +139,30 @@ export const useBoundsRegistry = ({
|
|
|
132
139
|
);
|
|
133
140
|
}, [IS_ROOT, sharedBoundTag, ROOT_SIGNAL]);
|
|
134
141
|
|
|
142
|
+
const prevNextRef = useRef(next);
|
|
143
|
+
/**
|
|
144
|
+
* Measure non-pressable elements when the screen goes from focused to blurred
|
|
145
|
+
* (or when a new `next` descriptor appears) so we capture final bounds
|
|
146
|
+
* right before the transition starts.
|
|
147
|
+
*/
|
|
148
|
+
useLayoutEffect(() => {
|
|
149
|
+
if (!sharedBoundTag || onPress) return;
|
|
150
|
+
|
|
151
|
+
const hadNext = !!prevNextRef.current;
|
|
152
|
+
const hasNext = !!next;
|
|
153
|
+
|
|
154
|
+
if (!hadNext && hasNext) {
|
|
155
|
+
runOnUI(maybeMeasureAndStore)({});
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
prevNextRef.current = next;
|
|
159
|
+
}, [next, sharedBoundTag, onPress, maybeMeasureAndStore]);
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Signal child shared elements (nested under this provider) to refresh their
|
|
163
|
+
* measurements when the root updates, while preventing them from marking
|
|
164
|
+
* themselves active during that sync.
|
|
165
|
+
*/
|
|
135
166
|
useAnimatedReaction(
|
|
136
167
|
() => ROOT_MEASUREMENT_SIGNAL?.updateSignal.value,
|
|
137
168
|
(current) => {
|