react-native-screen-transitions 3.0.0-beta.3 → 3.0.0-beta.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.
@@ -8,10 +8,10 @@ var _native = require("@react-navigation/native");
8
8
  var _react = require("react");
9
9
  var _reactNative = require("react-native");
10
10
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
11
+ var _useScreenAnimation = require("../../shared/hooks/animation/use-screen-animation");
11
12
  var _keys = require("../../shared/providers/keys");
12
13
  var _useOverlayAnimation = require("../hooks/use-overlay-animation");
13
14
  var _withStackNavigation = require("../utils/with-stack-navigation");
14
- var _useScreenAnimation = require("../../shared/hooks/animation/use-screen-animation");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
16
  const getActiveFloatOverlay = (scenes, index) => {
17
17
  if (scenes.length === 0) {
@@ -45,12 +45,27 @@ const OverlayHost = ({
45
45
  overlayAnimation,
46
46
  optimisticActiveIndex
47
47
  } = (0, _useOverlayAnimation.useOverlayAnimation)();
48
+ const {
49
+ scenes
50
+ } = (0, _withStackNavigation.useStackNavigationContext)();
51
+ const overlaySceneIndex = (0, _react.useMemo)(() => {
52
+ return scenes.findIndex(stackScene => stackScene.route.key === scene.route.key);
53
+ }, [scenes, scene.route.key]);
54
+ const focusedRoute = (0, _react.useMemo)(() => {
55
+ if (overlaySceneIndex === -1) {
56
+ return scene.route;
57
+ }
58
+ const maxOffset = Math.max(scenes.length - overlaySceneIndex - 1, 0);
59
+ const normalizedIndex = Math.min(Math.max(optimisticActiveIndex, 0), maxOffset);
60
+ return scenes[overlaySceneIndex + normalizedIndex]?.route ?? scene.route;
61
+ }, [overlaySceneIndex, optimisticActiveIndex, scenes, scene.route]);
48
62
  const screenAnimation = (0, _useScreenAnimation.useScreenAnimation)();
49
63
  if (!OverlayComponent) {
50
64
  return null;
51
65
  }
52
66
  const overlayProps = {
53
67
  route: scene.route,
68
+ focusedRoute,
54
69
  navigation: scene.descriptor.navigation,
55
70
  overlayAnimation,
56
71
  screenAnimation,
@@ -59,7 +74,9 @@ const OverlayHost = ({
59
74
  };
60
75
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
61
76
  pointerEvents: "box-none",
62
- style: [styles.container, isFloating ? styles.floating : null, styles.absolute],
77
+ style: [styles.container, isFloating ? styles.floating : {
78
+ zIndex: 1
79
+ }, styles.absolute],
63
80
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationContext.Provider, {
64
81
  value: scene.descriptor.navigation,
65
82
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationRouteContext.Provider, {
@@ -102,9 +119,6 @@ const FloatOverlay = () => {
102
119
  });
103
120
  };
104
121
  const ScreenOverlay = () => {
105
- const {
106
- focusedIndex
107
- } = (0, _withStackNavigation.useStackNavigationContext)();
108
122
  const {
109
123
  current
110
124
  } = (0, _keys.useKeys)();
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["_native","require","_react","_reactNative","_reactNativeSafeAreaContext","_useScreenAnimation","_keys","_useOverlayAnimation","_withStackNavigation","_jsxRuntime","getActiveFloatOverlay","scenes","index","length","startIndex","Math","max","i","scene","options","descriptor","overlayMode","overlayShown","overlayIndex","OverlayHost","isFloating","insets","useSafeAreaInsets","OverlayComponent","overlay","overlayAnimation","optimisticActiveIndex","useOverlayAnimation","useStackNavigationContext","overlaySceneIndex","useMemo","findIndex","stackScene","route","key","focusedRoute","maxOffset","normalizedIndex","min","screenAnimation","useScreenAnimation","overlayProps","navigation","focusedIndex","jsx","Animated","View","pointerEvents","style","styles","container","floating","zIndex","absolute","children","NavigationContext","Provider","value","NavigationRouteContext","FloatOverlay","activeOverlay","previous","current","next","KeysProvider","ScreenOverlay","useKeys","Overlay","exports","Float","Screen","StyleSheet","create","absoluteFillObject","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/Overlay.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,10 +4,10 @@ import { NavigationContext, NavigationRouteContext } from "@react-navigation/nat
4
4
  import { useMemo } from "react";
5
5
  import { Animated, StyleSheet, View } from "react-native";
6
6
  import { useSafeAreaInsets } from "react-native-safe-area-context";
7
+ import { useScreenAnimation } from "../../shared/hooks/animation/use-screen-animation";
7
8
  import { KeysProvider, useKeys } from "../../shared/providers/keys";
8
9
  import { useOverlayAnimation } from "../hooks/use-overlay-animation";
9
10
  import { useStackNavigationContext } from "../utils/with-stack-navigation";
10
- import { useScreenAnimation } from "../../shared/hooks/animation/use-screen-animation";
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  const getActiveFloatOverlay = (scenes, index) => {
13
13
  if (scenes.length === 0) {
@@ -41,12 +41,27 @@ const OverlayHost = ({
41
41
  overlayAnimation,
42
42
  optimisticActiveIndex
43
43
  } = useOverlayAnimation();
44
+ const {
45
+ scenes
46
+ } = useStackNavigationContext();
47
+ const overlaySceneIndex = useMemo(() => {
48
+ return scenes.findIndex(stackScene => stackScene.route.key === scene.route.key);
49
+ }, [scenes, scene.route.key]);
50
+ const focusedRoute = useMemo(() => {
51
+ if (overlaySceneIndex === -1) {
52
+ return scene.route;
53
+ }
54
+ const maxOffset = Math.max(scenes.length - overlaySceneIndex - 1, 0);
55
+ const normalizedIndex = Math.min(Math.max(optimisticActiveIndex, 0), maxOffset);
56
+ return scenes[overlaySceneIndex + normalizedIndex]?.route ?? scene.route;
57
+ }, [overlaySceneIndex, optimisticActiveIndex, scenes, scene.route]);
44
58
  const screenAnimation = useScreenAnimation();
45
59
  if (!OverlayComponent) {
46
60
  return null;
47
61
  }
48
62
  const overlayProps = {
49
63
  route: scene.route,
64
+ focusedRoute,
50
65
  navigation: scene.descriptor.navigation,
51
66
  overlayAnimation,
52
67
  screenAnimation,
@@ -55,7 +70,9 @@ const OverlayHost = ({
55
70
  };
56
71
  return /*#__PURE__*/_jsx(Animated.View, {
57
72
  pointerEvents: "box-none",
58
- style: [styles.container, isFloating ? styles.floating : null, styles.absolute],
73
+ style: [styles.container, isFloating ? styles.floating : {
74
+ zIndex: 1
75
+ }, styles.absolute],
59
76
  children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
60
77
  value: scene.descriptor.navigation,
61
78
  children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
@@ -98,9 +115,6 @@ const FloatOverlay = () => {
98
115
  });
99
116
  };
100
117
  const ScreenOverlay = () => {
101
- const {
102
- focusedIndex
103
- } = useStackNavigationContext();
104
118
  const {
105
119
  current
106
120
  } = useKeys();
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["NavigationContext","NavigationRouteContext","useMemo","Animated","StyleSheet","View","useSafeAreaInsets","useScreenAnimation","KeysProvider","useKeys","useOverlayAnimation","useStackNavigationContext","jsx","_jsx","getActiveFloatOverlay","scenes","index","length","startIndex","Math","max","i","scene","options","descriptor","overlayMode","overlayShown","overlayIndex","OverlayHost","isFloating","insets","OverlayComponent","overlay","overlayAnimation","optimisticActiveIndex","overlaySceneIndex","findIndex","stackScene","route","key","focusedRoute","maxOffset","normalizedIndex","min","screenAnimation","overlayProps","navigation","focusedIndex","pointerEvents","style","styles","container","floating","zIndex","absolute","children","Provider","value","FloatOverlay","activeOverlay","previous","current","next","ScreenOverlay","Overlay","Float","Screen","create","absoluteFillObject","flex"],"sourceRoot":"../../../../src","sources":["blank-stack/components/Overlay.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":"AAmIA,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
1
+ {"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/Overlay.tsx"],"names":[],"mappings":"AAuJA,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
@@ -70,6 +70,10 @@ export type BlankStackOverlayProps = {
70
70
  * Route object for the current screen.
71
71
  */
72
72
  route: Route<string>;
73
+ /**
74
+ * Route object for the currently focused screen in the stack.
75
+ */
76
+ focusedRoute: Route<string>;
73
77
  /**
74
78
  * Navigation prop for the overlay.
75
79
  */
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screen-transitions",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.4",
4
4
  "description": "Easy screen transitions for React Native and Expo",
5
5
  "author": "Ed",
6
6
  "license": "MIT",
@@ -5,6 +5,7 @@ import {
5
5
  import { useMemo } from "react";
6
6
  import { Animated, StyleSheet, View } from "react-native";
7
7
  import { useSafeAreaInsets } from "react-native-safe-area-context";
8
+ import { useScreenAnimation } from "../../shared/hooks/animation/use-screen-animation";
8
9
  import { KeysProvider, useKeys } from "../../shared/providers/keys";
9
10
  import { useOverlayAnimation } from "../hooks/use-overlay-animation";
10
11
  import type {
@@ -13,7 +14,6 @@ import type {
13
14
  BlankStackScene,
14
15
  } from "../types";
15
16
  import { useStackNavigationContext } from "../utils/with-stack-navigation";
16
- import { useScreenAnimation } from "../../shared/hooks/animation/use-screen-animation";
17
17
 
18
18
  type OverlayHostProps = {
19
19
  scene: BlankStackScene;
@@ -43,13 +43,33 @@ const getActiveFloatOverlay = (scenes: BlankStackScene[], index: number) => {
43
43
  return null;
44
44
  };
45
45
 
46
-
47
46
  const OverlayHost = ({ scene, isFloating }: OverlayHostProps) => {
48
47
  const insets = useSafeAreaInsets();
49
48
 
50
49
  const OverlayComponent = scene.descriptor.options.overlay;
51
50
 
52
51
  const { overlayAnimation, optimisticActiveIndex } = useOverlayAnimation();
52
+ const { scenes } = useStackNavigationContext();
53
+
54
+ const overlaySceneIndex = useMemo(() => {
55
+ return scenes.findIndex(
56
+ (stackScene) => stackScene.route.key === scene.route.key,
57
+ );
58
+ }, [scenes, scene.route.key]);
59
+
60
+ const focusedRoute = useMemo(() => {
61
+ if (overlaySceneIndex === -1) {
62
+ return scene.route;
63
+ }
64
+
65
+ const maxOffset = Math.max(scenes.length - overlaySceneIndex - 1, 0);
66
+ const normalizedIndex = Math.min(
67
+ Math.max(optimisticActiveIndex, 0),
68
+ maxOffset,
69
+ );
70
+
71
+ return scenes[overlaySceneIndex + normalizedIndex]?.route ?? scene.route;
72
+ }, [overlaySceneIndex, optimisticActiveIndex, scenes, scene.route]);
53
73
 
54
74
  const screenAnimation = useScreenAnimation();
55
75
 
@@ -59,6 +79,7 @@ const OverlayHost = ({ scene, isFloating }: OverlayHostProps) => {
59
79
 
60
80
  const overlayProps: BlankStackOverlayProps = {
61
81
  route: scene.route,
82
+ focusedRoute,
62
83
  navigation: scene.descriptor.navigation,
63
84
  overlayAnimation,
64
85
  screenAnimation,
@@ -71,7 +92,7 @@ const OverlayHost = ({ scene, isFloating }: OverlayHostProps) => {
71
92
  pointerEvents="box-none"
72
93
  style={[
73
94
  styles.container,
74
- isFloating ? styles.floating : null,
95
+ isFloating ? styles.floating : { zIndex: 1 },
75
96
  styles.absolute,
76
97
  ]}
77
98
  >
@@ -112,7 +133,6 @@ const FloatOverlay = () => {
112
133
  };
113
134
 
114
135
  const ScreenOverlay = () => {
115
- const { focusedIndex } = useStackNavigationContext();
116
136
  const { current } = useKeys<BlankStackDescriptor>();
117
137
 
118
138
  const options = current.options;
@@ -107,6 +107,10 @@ export type BlankStackOverlayProps = {
107
107
  * Route object for the current screen.
108
108
  */
109
109
  route: Route<string>;
110
+ /**
111
+ * Route object for the currently focused screen in the stack.
112
+ */
113
+ focusedRoute: Route<string>;
110
114
  /**
111
115
  * Navigation prop for the overlay.
112
116
  */