react-native-screen-transitions 3.2.0-beta.1 → 3.2.0-beta.3

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.
Files changed (215) hide show
  1. package/README.md +108 -37
  2. package/lib/commonjs/blank-stack/components/stack-view.js +0 -2
  3. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
  4. package/lib/commonjs/blank-stack/components/stack-view.native.js +0 -2
  5. package/lib/commonjs/blank-stack/components/stack-view.native.js.map +1 -1
  6. package/lib/commonjs/component-stack/components/component-screen.js +3 -1
  7. package/lib/commonjs/component-stack/components/component-screen.js.map +1 -1
  8. package/lib/commonjs/component-stack/components/stack-view.js +19 -22
  9. package/lib/commonjs/component-stack/components/stack-view.js.map +1 -1
  10. package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js +39 -9
  11. package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js.map +1 -1
  12. package/lib/commonjs/native-stack/views/NativeStackView.native.js +3 -3
  13. package/lib/commonjs/native-stack/views/NativeStackView.native.js.map +1 -1
  14. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +1 -6
  15. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -1
  16. package/lib/commonjs/shared/components/overlay/variations/overlay-host.js +16 -64
  17. package/lib/commonjs/shared/components/overlay/variations/overlay-host.js.map +1 -1
  18. package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js +5 -8
  19. package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js.map +1 -1
  20. package/lib/commonjs/shared/components/root-transition-aware.js +5 -1
  21. package/lib/commonjs/shared/components/root-transition-aware.js.map +1 -1
  22. package/lib/commonjs/shared/components/screen-lifecycle.js +153 -0
  23. package/lib/commonjs/shared/components/screen-lifecycle.js.map +1 -0
  24. package/lib/commonjs/shared/constants.js +3 -2
  25. package/lib/commonjs/shared/constants.js.map +1 -1
  26. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
  27. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  28. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js +45 -0
  29. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -0
  30. package/lib/commonjs/shared/hooks/use-stable-callback-value.js +0 -2
  31. package/lib/commonjs/shared/hooks/use-stable-callback-value.js.map +1 -1
  32. package/lib/commonjs/shared/hooks/use-stack-pointer-events.js +23 -0
  33. package/lib/commonjs/shared/hooks/use-stack-pointer-events.js.map +1 -0
  34. package/lib/commonjs/shared/index.js +7 -0
  35. package/lib/commonjs/shared/index.js.map +1 -1
  36. package/lib/commonjs/shared/providers/gestures.provider.js +3 -0
  37. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  38. package/lib/commonjs/shared/providers/screen/keys.provider.js +0 -2
  39. package/lib/commonjs/shared/providers/screen/keys.provider.js.map +1 -1
  40. package/lib/commonjs/shared/providers/screen/screen-composer.js +3 -3
  41. package/lib/commonjs/shared/providers/screen/screen-composer.js.map +1 -1
  42. package/lib/commonjs/shared/providers/screen/styles.provider.js +1 -1
  43. package/lib/commonjs/shared/providers/screen/styles.provider.js.map +1 -1
  44. package/lib/commonjs/shared/providers/stack/core.provider.js +1 -0
  45. package/lib/commonjs/shared/providers/stack/core.provider.js.map +1 -1
  46. package/lib/commonjs/shared/types/index.js +3 -3
  47. package/lib/commonjs/shared/types/index.js.map +1 -1
  48. package/lib/commonjs/shared/types/stack.types.js +5 -0
  49. package/lib/commonjs/shared/types/stack.types.js.map +1 -1
  50. package/lib/commonjs/shared/utils/animation/start-screen-transition.js +5 -5
  51. package/lib/commonjs/shared/utils/animation/start-screen-transition.js.map +1 -1
  52. package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
  53. package/lib/module/blank-stack/components/stack-view.js +0 -2
  54. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  55. package/lib/module/blank-stack/components/stack-view.native.js +0 -2
  56. package/lib/module/blank-stack/components/stack-view.native.js.map +1 -1
  57. package/lib/module/component-stack/components/component-screen.js +3 -1
  58. package/lib/module/component-stack/components/component-screen.js.map +1 -1
  59. package/lib/module/component-stack/components/stack-view.js +19 -22
  60. package/lib/module/component-stack/components/stack-view.js.map +1 -1
  61. package/lib/module/component-stack/navigators/create-component-stack-navigator.js +38 -9
  62. package/lib/module/component-stack/navigators/create-component-stack-navigator.js.map +1 -1
  63. package/lib/module/native-stack/views/NativeStackView.native.js +3 -3
  64. package/lib/module/native-stack/views/NativeStackView.native.js.map +1 -1
  65. package/lib/module/shared/components/overlay/variations/float-overlay.js +1 -6
  66. package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
  67. package/lib/module/shared/components/overlay/variations/overlay-host.js +16 -64
  68. package/lib/module/shared/components/overlay/variations/overlay-host.js.map +1 -1
  69. package/lib/module/shared/components/overlay/variations/screen-overlay.js +5 -8
  70. package/lib/module/shared/components/overlay/variations/screen-overlay.js.map +1 -1
  71. package/lib/module/shared/components/root-transition-aware.js +5 -1
  72. package/lib/module/shared/components/root-transition-aware.js.map +1 -1
  73. package/lib/module/shared/components/screen-lifecycle.js +147 -0
  74. package/lib/module/shared/components/screen-lifecycle.js.map +1 -0
  75. package/lib/module/shared/constants.js +2 -1
  76. package/lib/module/shared/constants.js.map +1 -1
  77. package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
  78. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  79. package/lib/module/shared/hooks/navigation/use-screen-state.js +41 -0
  80. package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -0
  81. package/lib/module/shared/hooks/use-stable-callback-value.js +0 -3
  82. package/lib/module/shared/hooks/use-stable-callback-value.js.map +1 -1
  83. package/lib/module/shared/hooks/use-stack-pointer-events.js +20 -0
  84. package/lib/module/shared/hooks/use-stack-pointer-events.js.map +1 -0
  85. package/lib/module/shared/index.js +1 -0
  86. package/lib/module/shared/index.js.map +1 -1
  87. package/lib/module/shared/providers/gestures.provider.js +3 -0
  88. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  89. package/lib/module/shared/providers/screen/keys.provider.js +0 -2
  90. package/lib/module/shared/providers/screen/keys.provider.js.map +1 -1
  91. package/lib/module/shared/providers/screen/screen-composer.js +3 -3
  92. package/lib/module/shared/providers/screen/screen-composer.js.map +1 -1
  93. package/lib/module/shared/providers/screen/styles.provider.js +1 -1
  94. package/lib/module/shared/providers/screen/styles.provider.js.map +1 -1
  95. package/lib/module/shared/providers/stack/core.provider.js +1 -0
  96. package/lib/module/shared/providers/stack/core.provider.js.map +1 -1
  97. package/lib/module/shared/types/index.js +1 -1
  98. package/lib/module/shared/types/index.js.map +1 -1
  99. package/lib/module/shared/types/stack.types.js +6 -0
  100. package/lib/module/shared/types/stack.types.js.map +1 -1
  101. package/lib/module/shared/utils/animation/start-screen-transition.js +1 -1
  102. package/lib/module/shared/utils/animation/start-screen-transition.js.map +1 -1
  103. package/lib/module/shared/utils/bounds/index.js.map +1 -1
  104. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  105. package/lib/typescript/blank-stack/components/stack-view.native.d.ts.map +1 -1
  106. package/lib/typescript/blank-stack/types.d.ts +4 -8
  107. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  108. package/lib/typescript/component-stack/components/component-screen.d.ts.map +1 -1
  109. package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
  110. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +9 -2
  111. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts.map +1 -1
  112. package/lib/typescript/component-stack/types.d.ts +4 -8
  113. package/lib/typescript/component-stack/types.d.ts.map +1 -1
  114. package/lib/typescript/native-stack/types.d.ts +2 -3
  115. package/lib/typescript/native-stack/types.d.ts.map +1 -1
  116. package/lib/typescript/native-stack/views/NativeStackView.native.d.ts.map +1 -1
  117. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
  118. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +1 -6
  119. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
  120. package/lib/typescript/shared/components/overlay/variations/screen-overlay.d.ts +4 -0
  121. package/lib/typescript/shared/components/overlay/variations/screen-overlay.d.ts.map +1 -1
  122. package/lib/typescript/shared/components/root-transition-aware.d.ts.map +1 -1
  123. package/lib/typescript/shared/components/screen-lifecycle.d.ts +9 -0
  124. package/lib/typescript/shared/components/screen-lifecycle.d.ts.map +1 -0
  125. package/lib/typescript/shared/constants.d.ts +2 -1
  126. package/lib/typescript/shared/constants.d.ts.map +1 -1
  127. package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
  128. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  129. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts +40 -0
  130. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -0
  131. package/lib/typescript/shared/hooks/use-stable-callback-value.d.ts.map +1 -1
  132. package/lib/typescript/shared/hooks/use-stack-pointer-events.d.ts +10 -0
  133. package/lib/typescript/shared/hooks/use-stack-pointer-events.d.ts.map +1 -0
  134. package/lib/typescript/shared/index.d.ts +21 -20
  135. package/lib/typescript/shared/index.d.ts.map +1 -1
  136. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  137. package/lib/typescript/shared/providers/screen/keys.provider.d.ts +2 -3
  138. package/lib/typescript/shared/providers/screen/keys.provider.d.ts.map +1 -1
  139. package/lib/typescript/shared/providers/screen/screen-composer.d.ts +1 -3
  140. package/lib/typescript/shared/providers/screen/screen-composer.d.ts.map +1 -1
  141. package/lib/typescript/shared/providers/stack/core.provider.d.ts.map +1 -1
  142. package/lib/typescript/shared/types/animation.types.d.ts +2 -6
  143. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  144. package/lib/typescript/shared/types/index.d.ts +2 -2
  145. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  146. package/lib/typescript/shared/types/overlay.types.d.ts +21 -0
  147. package/lib/typescript/shared/types/overlay.types.d.ts.map +1 -1
  148. package/lib/typescript/shared/types/screen.types.d.ts +5 -4
  149. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  150. package/lib/typescript/shared/types/stack.types.d.ts +11 -1
  151. package/lib/typescript/shared/types/stack.types.d.ts.map +1 -1
  152. package/lib/typescript/shared/utils/animation/start-screen-transition.d.ts.map +1 -1
  153. package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
  154. package/package.json +1 -1
  155. package/src/blank-stack/components/stack-view.native.tsx +0 -2
  156. package/src/blank-stack/components/stack-view.tsx +0 -2
  157. package/src/blank-stack/types.ts +6 -8
  158. package/src/component-stack/components/component-screen.tsx +3 -3
  159. package/src/component-stack/components/stack-view.tsx +21 -25
  160. package/src/component-stack/navigators/create-component-stack-navigator.tsx +68 -37
  161. package/src/component-stack/types.ts +7 -8
  162. package/src/native-stack/types.ts +2 -3
  163. package/src/native-stack/views/NativeStackView.native.tsx +2 -3
  164. package/src/shared/components/overlay/variations/float-overlay.tsx +2 -8
  165. package/src/shared/components/overlay/variations/overlay-host.tsx +18 -84
  166. package/src/shared/components/overlay/variations/screen-overlay.tsx +6 -15
  167. package/src/shared/components/root-transition-aware.tsx +7 -2
  168. package/src/shared/components/screen-lifecycle.tsx +168 -0
  169. package/src/shared/constants.ts +3 -1
  170. package/src/shared/hooks/animation/use-screen-animation.tsx +3 -3
  171. package/src/shared/hooks/gestures/use-build-gestures.tsx +0 -2
  172. package/src/shared/hooks/navigation/use-screen-state.tsx +99 -0
  173. package/src/shared/hooks/use-stable-callback-value.ts +0 -1
  174. package/src/shared/hooks/use-stack-pointer-events.ts +15 -0
  175. package/src/shared/index.ts +4 -0
  176. package/src/shared/providers/gestures.provider.tsx +5 -1
  177. package/src/shared/providers/screen/keys.provider.tsx +1 -9
  178. package/src/shared/providers/screen/screen-composer.tsx +3 -5
  179. package/src/shared/providers/screen/styles.provider.tsx +1 -1
  180. package/src/shared/providers/stack/core.provider.tsx +6 -1
  181. package/src/shared/types/animation.types.ts +2 -6
  182. package/src/shared/types/index.ts +2 -7
  183. package/src/shared/types/overlay.types.ts +23 -0
  184. package/src/shared/types/screen.types.ts +5 -4
  185. package/src/shared/types/stack.types.ts +17 -1
  186. package/src/shared/utils/animation/start-screen-transition.ts +1 -1
  187. package/src/shared/utils/bounds/index.ts +6 -1
  188. package/lib/commonjs/component-stack/components/component-screen-container.js +0 -23
  189. package/lib/commonjs/component-stack/components/component-screen-container.js.map +0 -1
  190. package/lib/commonjs/native-stack/controllers/native-stack-lifecycle.js +0 -90
  191. package/lib/commonjs/native-stack/controllers/native-stack-lifecycle.js.map +0 -1
  192. package/lib/commonjs/shared/controller/managed-lifecycle.js +0 -78
  193. package/lib/commonjs/shared/controller/managed-lifecycle.js.map +0 -1
  194. package/lib/commonjs/shared/types/state.types.js +0 -9
  195. package/lib/commonjs/shared/types/state.types.js.map +0 -1
  196. package/lib/module/component-stack/components/component-screen-container.js +0 -18
  197. package/lib/module/component-stack/components/component-screen-container.js.map +0 -1
  198. package/lib/module/native-stack/controllers/native-stack-lifecycle.js +0 -83
  199. package/lib/module/native-stack/controllers/native-stack-lifecycle.js.map +0 -1
  200. package/lib/module/shared/controller/managed-lifecycle.js +0 -72
  201. package/lib/module/shared/controller/managed-lifecycle.js.map +0 -1
  202. package/lib/module/shared/types/state.types.js +0 -5
  203. package/lib/module/shared/types/state.types.js.map +0 -1
  204. package/lib/typescript/component-stack/components/component-screen-container.d.ts +0 -6
  205. package/lib/typescript/component-stack/components/component-screen-container.d.ts.map +0 -1
  206. package/lib/typescript/native-stack/controllers/native-stack-lifecycle.d.ts +0 -8
  207. package/lib/typescript/native-stack/controllers/native-stack-lifecycle.d.ts.map +0 -1
  208. package/lib/typescript/shared/controller/managed-lifecycle.d.ts +0 -9
  209. package/lib/typescript/shared/controller/managed-lifecycle.d.ts.map +0 -1
  210. package/lib/typescript/shared/types/state.types.d.ts +0 -3
  211. package/lib/typescript/shared/types/state.types.d.ts.map +0 -1
  212. package/src/component-stack/components/component-screen-container.tsx +0 -15
  213. package/src/native-stack/controllers/native-stack-lifecycle.tsx +0 -96
  214. package/src/shared/controller/managed-lifecycle.tsx +0 -73
  215. package/src/shared/types/state.types.ts +0 -2
@@ -44,7 +44,12 @@ const { StackCoreProvider: InternalStackCoreProvider, useStackCoreContext } =
44
44
  },
45
45
  },
46
46
  children: (
47
- <GestureHandlerRootView style={styles.container}>
47
+ <GestureHandlerRootView
48
+ style={styles.container}
49
+ pointerEvents={
50
+ STACK_TYPE === StackType.COMPONENT ? "box-none" : undefined
51
+ }
52
+ >
48
53
  <SafeAreaProviderCompat>{children}</SafeAreaProviderCompat>
49
54
  </GestureHandlerRootView>
50
55
  ),
@@ -4,10 +4,10 @@ import type {
4
4
  WithTimingConfig,
5
5
  } from "react-native-reanimated";
6
6
  import type { EdgeInsets } from "react-native-safe-area-context";
7
- import type { BaseRoute } from "../providers/screen/keys.provider";
8
7
  import type { BoundsAccessor } from "./bounds.types";
9
8
  import type { GestureValues } from "./gesture.types";
10
9
  import type { Layout } from "./screen.types";
10
+ import type { BaseStackRoute } from "./stack.types";
11
11
 
12
12
  export interface OverlayInterpolationProps {
13
13
  progress: number;
@@ -69,12 +69,8 @@ export type ScreenTransitionState = {
69
69
 
70
70
  /**
71
71
  * The route object for this screen.
72
- *
73
- * @deprecated Use `meta` instead for conditional animation logic.
74
- * Pass route params via options: `options={({ route }) => ({ meta: { id: route.params.id } })}`
75
- * This field may be removed in a future version.
76
72
  */
77
- route: BaseRoute;
73
+ route: BaseStackRoute;
78
74
  };
79
75
 
80
76
  export interface ScreenInterpolationProps {
@@ -1,3 +1,4 @@
1
+ export { FALSE, TRUE } from "../constants";
1
2
  export type {
2
3
  AnimationConfig,
3
4
  OverlayInterpolationProps,
@@ -7,14 +8,12 @@ export type {
7
8
  TransitionInterpolatedStyle,
8
9
  TransitionSpec,
9
10
  } from "./animation.types";
10
-
11
11
  export type {
12
12
  BoundEntry,
13
13
  BoundsAccessor,
14
14
  BoundsLink,
15
15
  BoundsMethod,
16
16
  } from "./bounds.types";
17
-
18
17
  export type {
19
18
  ActivationArea,
20
19
  GestureActivationArea,
@@ -22,25 +21,21 @@ export type {
22
21
  GestureValues,
23
22
  SideActivation,
24
23
  } from "./gesture.types";
25
-
26
24
  export type {
27
25
  OverlayMode,
28
26
  OverlayProps,
29
27
  } from "./overlay.types";
30
-
31
28
  export type {
32
29
  Layout,
33
30
  ScreenKey,
34
31
  ScreenTransitionConfig,
35
32
  TransitionAwareProps,
36
33
  } from "./screen.types";
37
-
38
34
  export type {
39
35
  BaseStackDescriptor,
40
36
  BaseStackNavigation,
41
37
  BaseStackRoute,
42
38
  BaseStackScene,
43
39
  BaseStackState,
40
+ DescriptorMap,
44
41
  } from "./stack.types";
45
-
46
- export { FALSE, TRUE } from "./state.types";
@@ -4,7 +4,13 @@ import type {
4
4
  OverlayInterpolationProps,
5
5
  ScreenInterpolationProps,
6
6
  } from "./animation.types";
7
+ import type { ScreenTransitionConfig } from "./screen.types";
7
8
 
9
+ /**
10
+ * @deprecated Overlay mode is no longer needed. Overlays now always render as "float" mode.
11
+ * For per-screen overlays, render an absolute-positioned view directly in your screen component
12
+ * and use `useScreenAnimation()` to access animation values.
13
+ */
8
14
  export type OverlayMode = "float" | "screen";
9
15
 
10
16
  /**
@@ -37,13 +43,30 @@ export type OverlayProps<TNavigation = unknown> = {
37
43
  */
38
44
  navigation: TNavigation;
39
45
 
46
+ /**
47
+ * Screen options for the currently focused screen.
48
+ */
49
+ options: ScreenTransitionConfig;
50
+
51
+ /**
52
+ * Stack progress relative to the overlay's position.
53
+ * This is equivalent to `useScreenAnimation().stackProgress`.
54
+ */
55
+ progress: DerivedValue<number>;
56
+
40
57
  /**
41
58
  * Animation values for the overlay.
59
+ *
60
+ * @deprecated Use `progress` prop or `useScreenAnimation()` instead.
61
+ * This prop will be removed in a future version.
42
62
  */
43
63
  overlayAnimation: DerivedValue<OverlayInterpolationProps>;
44
64
 
45
65
  /**
46
66
  * Animation values for the screen.
67
+ *
68
+ * @deprecated Use `useScreenAnimation()` hook directly instead.
69
+ * This prop will be removed in a future version.
47
70
  */
48
71
  screenAnimation: DerivedValue<ScreenInterpolationProps>;
49
72
  };
@@ -111,10 +111,11 @@ export type ScreenTransitionConfig = {
111
111
 
112
112
  /**
113
113
  * How the overlay is positioned relative to screens.
114
- * - 'float': Single persistent overlay above all screens (like iOS tab bar)
115
- * - 'screen': Per-screen overlay that transitions with content
116
- * - 'container': Wraps all screen content, receives children prop (for MaskedView, custom containers)
117
- * @default 'screen'
114
+ *
115
+ * @deprecated This option is no longer needed. Overlays now always render as "float" mode
116
+ * (single persistent overlay above all screens). For per-screen overlays, render an
117
+ * absolute-positioned view directly in your screen component and use `useScreenAnimation()`
118
+ * to access animation values.
118
119
  */
119
120
  overlayMode?: OverlayMode;
120
121
 
@@ -15,8 +15,13 @@ export interface BaseStackRoute {
15
15
  * Both React Navigation helpers and ComponentNavigation satisfy this.
16
16
  */
17
17
  export interface BaseStackNavigation {
18
- getState: () => { routes: Array<{ key: string }>; key: string };
18
+ getState: () => {
19
+ routes: Array<{ key: string }>;
20
+ key: string;
21
+ index: number;
22
+ };
19
23
  dispatch: (action: any) => void;
24
+ addListener?: (event: any, callback: any) => () => void;
20
25
  }
21
26
 
22
27
  /**
@@ -57,7 +62,18 @@ export interface BaseStackState<
57
62
  key: string;
58
63
  }
59
64
 
65
+ /**
66
+ * Generic descriptor map - keyed by route key.
67
+ * Use this instead of defining stack-specific DescriptorMap types.
68
+ */
69
+ export type DescriptorMap<
70
+ TDescriptor extends BaseStackDescriptor = BaseStackDescriptor,
71
+ > = {
72
+ [key: string]: TDescriptor;
73
+ };
74
+
60
75
  export enum StackType {
61
76
  NATIVE = "native",
62
77
  BLANK = "blank",
78
+ COMPONENT = "component",
63
79
  }
@@ -1,7 +1,7 @@
1
1
  import { runOnJS } from "react-native-reanimated";
2
+ import { FALSE, TRUE } from "../../constants";
2
3
  import type { AnimationStoreMap } from "../../stores/animation.store";
3
4
  import type { TransitionSpec } from "../../types/animation.types";
4
- import { FALSE, TRUE } from "../../types/state.types";
5
5
  import { animate } from "./animate";
6
6
 
7
7
  interface StartScreenTransitionProps {
@@ -240,7 +240,12 @@ export const createBounds = (
240
240
  const sourceValue = link?.source?.bounds?.[property] ?? fallback ?? 0;
241
241
  const destValue = link?.destination?.bounds?.[property] ?? fallback ?? 0;
242
242
 
243
- return interpolate(props.progress, range, [sourceValue, destValue], "clamp");
243
+ return interpolate(
244
+ props.progress,
245
+ range,
246
+ [sourceValue, destValue],
247
+ "clamp",
248
+ );
244
249
  };
245
250
 
246
251
  return Object.assign(boundsFunction, {
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ComponentScreenContainer = void 0;
7
- var _reactNative = require("react-native");
8
- var _jsxRuntime = require("react/jsx-runtime");
9
- const ComponentScreenContainer = ({
10
- children
11
- }) => {
12
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
13
- style: styles.container,
14
- children: children
15
- });
16
- };
17
- exports.ComponentScreenContainer = ComponentScreenContainer;
18
- const styles = _reactNative.StyleSheet.create({
19
- container: {
20
- flex: 1
21
- }
22
- });
23
- //# sourceMappingURL=component-screen-container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_jsxRuntime","ComponentScreenContainer","children","jsx","View","style","styles","container","exports","StyleSheet","create","flex"],"sourceRoot":"../../../../src","sources":["component-stack/components/component-screen-container.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAgD,IAAAC,WAAA,GAAAD,OAAA;AAMzC,MAAME,wBAAwB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAAK;EAChE,oBAAO,IAAAF,WAAA,CAAAG,GAAA,EAACL,YAAA,CAAAM,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAL,QAAA,EAAEA;EAAQ,CAAO,CAAC;AACxD,CAAC;AAACM,OAAA,CAAAP,wBAAA,GAAAA,wBAAA;AAEF,MAAMK,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAChCH,SAAS,EAAE;IACVI,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.NativeStackScreenLifecycleController = void 0;
7
- var _react = require("react");
8
- var _reactNativeReanimated = require("react-native-reanimated");
9
- var _useHighRefreshRate = require("../../shared/hooks/animation/use-high-refresh-rate");
10
- var _useSharedValueState = require("../../shared/hooks/reanimated/use-shared-value-state");
11
- var _useStableCallback = _interopRequireDefault(require("../../shared/hooks/use-stable-callback"));
12
- var _gestures = require("../../shared/providers/gestures.provider");
13
- var _keys = require("../../shared/providers/screen/keys.provider");
14
- var _animation = require("../../shared/stores/animation.store");
15
- var _state = require("../../shared/types/state.types");
16
- var _startScreenTransition = require("../../shared/utils/animation/start-screen-transition");
17
- var _resetStoresForScreen = require("../../shared/utils/reset-stores-for-screen");
18
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
- /** biome-ignore-all lint/style/noNonNullAssertion: <Lifecycles are rendered right under the gesture provider> */
20
-
21
- /**
22
- * Lifecycle controller built out for Native Stack implementation.
23
- */
24
- const NativeStackScreenLifecycleController = ({
25
- children
26
- }) => {
27
- const {
28
- current
29
- } = (0, _keys.useKeys)();
30
- const {
31
- ancestorContext
32
- } = (0, _gestures.useGestureContext)();
33
- const isAncestorDismissingViaGesture = (0, _useSharedValueState.useSharedValueState)((0, _reactNativeReanimated.useDerivedValue)(() => {
34
- "worklet";
35
-
36
- return ancestorContext?.gestureAnimationValues.isDismissing?.value ?? false;
37
- }));
38
- const animations = _animation.AnimationStore.getAll(current.route.key);
39
- const {
40
- deactivateHighRefreshRate,
41
- activateHighRefreshRate
42
- } = (0, _useHighRefreshRate.useHighRefreshRate)(current);
43
- const handleBeforeRemove = (0, _useStableCallback.default)(e => {
44
- const isEnabled = current.options.enableTransitions;
45
- const isFirstScreen = current.navigation.getState().index === 0;
46
-
47
- // If transitions are disabled, or an ancestor is dismissing via gesture, or this is the first screen of the stack, reset the stores
48
- if (!isEnabled || isAncestorDismissingViaGesture || isFirstScreen) {
49
- animations.closing.set(_state.TRUE);
50
- (0, _resetStoresForScreen.resetStoresForScreen)(current);
51
- return;
52
- }
53
- e.preventDefault();
54
- activateHighRefreshRate();
55
- const onAnimationFinish = finished => {
56
- deactivateHighRefreshRate();
57
- if (finished) {
58
- current.navigation.dispatch(e.data.action);
59
-
60
- // we'll ensure the dispatch is complete before resetting stores
61
- requestAnimationFrame(() => {
62
- (0, _resetStoresForScreen.resetStoresForScreen)(current);
63
- });
64
- }
65
- };
66
- (0, _startScreenTransition.startScreenTransition)({
67
- target: "close",
68
- spec: current.options.transitionSpec,
69
- onAnimationFinish,
70
- animations
71
- });
72
- });
73
- const handleInitialize = (0, _useStableCallback.default)(() => {
74
- activateHighRefreshRate();
75
- (0, _startScreenTransition.startScreenTransition)({
76
- target: "open",
77
- spec: current.options.transitionSpec,
78
- animations,
79
- onAnimationFinish: deactivateHighRefreshRate
80
- });
81
- });
82
- (0, _react.useEffect)(() => {
83
- const unsubscribe = current.navigation.addListener("beforeRemove", handleBeforeRemove);
84
- return unsubscribe;
85
- }, [current.navigation, handleBeforeRemove]);
86
- (0, _react.useLayoutEffect)(handleInitialize, []);
87
- return children;
88
- };
89
- exports.NativeStackScreenLifecycleController = NativeStackScreenLifecycleController;
90
- //# sourceMappingURL=native-stack-lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactNativeReanimated","_useHighRefreshRate","_useSharedValueState","_useStableCallback","_interopRequireDefault","_gestures","_keys","_animation","_state","_startScreenTransition","_resetStoresForScreen","e","__esModule","default","NativeStackScreenLifecycleController","children","current","useKeys","ancestorContext","useGestureContext","isAncestorDismissingViaGesture","useSharedValueState","useDerivedValue","gestureAnimationValues","isDismissing","value","animations","AnimationStore","getAll","route","key","deactivateHighRefreshRate","activateHighRefreshRate","useHighRefreshRate","handleBeforeRemove","useStableCallback","isEnabled","options","enableTransitions","isFirstScreen","navigation","getState","index","closing","set","TRUE","resetStoresForScreen","preventDefault","onAnimationFinish","finished","dispatch","data","action","requestAnimationFrame","startScreenTransition","target","spec","transitionSpec","handleInitialize","useEffect","unsubscribe","addListener","useLayoutEffect","exports"],"sourceRoot":"../../../../src","sources":["native-stack/controllers/native-stack-lifecycle.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ManagedLifecycle = void 0;
7
- var _react = require("react");
8
- var _reactNativeReanimated = require("react-native-reanimated");
9
- var _useHighRefreshRate = require("../hooks/animation/use-high-refresh-rate");
10
- var _useStableCallback = _interopRequireDefault(require("../hooks/use-stable-callback"));
11
- var _keys = require("../providers/screen/keys.provider");
12
- var _managed = require("../providers/stack/managed.provider");
13
- var _animation = require("../stores/animation.store");
14
- var _startScreenTransition = require("../utils/animation/start-screen-transition");
15
- var _resetStoresForScreen = require("../utils/reset-stores-for-screen");
16
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- /**
18
- * Lifecycle controller built out for Blank Stack implementation.
19
- */
20
- const ManagedLifecycle = ({
21
- children
22
- }) => {
23
- const {
24
- current
25
- } = (0, _keys.useKeys)();
26
- const {
27
- handleCloseRoute,
28
- closingRouteKeysShared
29
- } = (0, _managed.useManagedStackContext)();
30
- const animations = _animation.AnimationStore.getAll(current.route.key);
31
- const {
32
- deactivateHighRefreshRate,
33
- activateHighRefreshRate
34
- } = (0, _useHighRefreshRate.useHighRefreshRate)(current);
35
- const handleInitialize = (0, _useStableCallback.default)(() => {
36
- activateHighRefreshRate();
37
- (0, _startScreenTransition.startScreenTransition)({
38
- target: "open",
39
- spec: current.options.transitionSpec,
40
- animations,
41
- onAnimationFinish: deactivateHighRefreshRate
42
- });
43
- });
44
- const handleCloseEnd = (0, _useStableCallback.default)(finished => {
45
- if (!finished) {
46
- return;
47
- }
48
- handleCloseRoute({
49
- route: current.route
50
- });
51
- requestAnimationFrame(() => {
52
- deactivateHighRefreshRate();
53
- (0, _resetStoresForScreen.resetStoresForScreen)(current);
54
- });
55
- });
56
- (0, _reactNativeReanimated.useAnimatedReaction)(() => ({
57
- keys: closingRouteKeysShared.value
58
- }), ({
59
- keys
60
- }) => {
61
- if (!keys.includes(current.route.key)) {
62
- return;
63
- }
64
- (0, _reactNativeReanimated.runOnJS)(activateHighRefreshRate)();
65
- (0, _startScreenTransition.startScreenTransition)({
66
- target: "close",
67
- spec: current.options.transitionSpec,
68
- animations,
69
- onAnimationFinish: handleCloseEnd
70
- });
71
- });
72
- (0, _react.useLayoutEffect)(() => {
73
- handleInitialize();
74
- }, [handleInitialize]);
75
- return children;
76
- };
77
- exports.ManagedLifecycle = ManagedLifecycle;
78
- //# sourceMappingURL=managed-lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactNativeReanimated","_useHighRefreshRate","_useStableCallback","_interopRequireDefault","_keys","_managed","_animation","_startScreenTransition","_resetStoresForScreen","e","__esModule","default","ManagedLifecycle","children","current","useKeys","handleCloseRoute","closingRouteKeysShared","useManagedStackContext","animations","AnimationStore","getAll","route","key","deactivateHighRefreshRate","activateHighRefreshRate","useHighRefreshRate","handleInitialize","useStableCallback","startScreenTransition","target","spec","options","transitionSpec","onAnimationFinish","handleCloseEnd","finished","requestAnimationFrame","resetStoresForScreen","useAnimatedReaction","keys","value","includes","runOnJS","useLayoutEffect","exports"],"sourceRoot":"../../../../src","sources":["shared/controller/managed-lifecycle.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAEA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,sBAAA,GAAAR,OAAA;AACA,IAAAS,qBAAA,GAAAT,OAAA;AAAwE,SAAAI,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAMxE;AACA;AACA;AACO,MAAMG,gBAAgB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAAK;EACxD,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,aAAO,EAAuB,CAAC;EACnD,MAAM;IAAEC,gBAAgB;IAAEC;EAAuB,CAAC,GAAG,IAAAC,+BAAsB,EAAC,CAAC;EAE7E,MAAMC,UAAU,GAAGC,yBAAc,CAACC,MAAM,CAACP,OAAO,CAACQ,KAAK,CAACC,GAAG,CAAC;EAE3D,MAAM;IAAEC,yBAAyB;IAAEC;EAAwB,CAAC,GAC3D,IAAAC,sCAAkB,EAACZ,OAAO,CAAC;EAE5B,MAAMa,gBAAgB,GAAG,IAAAC,0BAAiB,EAAC,MAAM;IAChDH,uBAAuB,CAAC,CAAC;IACzB,IAAAI,4CAAqB,EAAC;MACrBC,MAAM,EAAE,MAAM;MACdC,IAAI,EAAEjB,OAAO,CAACkB,OAAO,CAACC,cAAc;MACpCd,UAAU;MACVe,iBAAiB,EAAEV;IACpB,CAAC,CAAC;EACH,CAAC,CAAC;EAEF,MAAMW,cAAc,GAAG,IAAAP,0BAAiB,EAAEQ,QAAiB,IAAK;IAC/D,IAAI,CAACA,QAAQ,EAAE;MACd;IACD;IACApB,gBAAgB,CAAC;MAAEM,KAAK,EAAER,OAAO,CAACQ;IAAM,CAAC,CAAC;IAC1Ce,qBAAqB,CAAC,MAAM;MAC3Bb,yBAAyB,CAAC,CAAC;MAC3B,IAAAc,0CAAoB,EAACxB,OAAO,CAAC;IAC9B,CAAC,CAAC;EACH,CAAC,CAAC;EAEF,IAAAyB,0CAAmB,EAClB,OAAO;IACNC,IAAI,EAAEvB,sBAAsB,CAACwB;EAC9B,CAAC,CAAC,EACF,CAAC;IAAED;EAAK,CAAC,KAAK;IACb,IAAI,CAACA,IAAI,CAACE,QAAQ,CAAC5B,OAAO,CAACQ,KAAK,CAACC,GAAG,CAAC,EAAE;MACtC;IACD;IAEA,IAAAoB,8BAAO,EAAClB,uBAAuB,CAAC,CAAC,CAAC;IAClC,IAAAI,4CAAqB,EAAC;MACrBC,MAAM,EAAE,OAAO;MACfC,IAAI,EAAEjB,OAAO,CAACkB,OAAO,CAACC,cAAc;MACpCd,UAAU;MACVe,iBAAiB,EAAEC;IACpB,CAAC,CAAC;EACH,CACD,CAAC;EAED,IAAAS,sBAAe,EAAC,MAAM;IACrBjB,gBAAgB,CAAC,CAAC;EACnB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB,OAAOd,QAAQ;AAChB,CAAC;AAACgC,OAAA,CAAAjC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TRUE = exports.FALSE = void 0;
7
- const TRUE = exports.TRUE = 1;
8
- const FALSE = exports.FALSE = 0;
9
- //# sourceMappingURL=state.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["TRUE","exports","FALSE"],"sourceRoot":"../../../../src","sources":["shared/types/state.types.ts"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG,CAAC;AACd,MAAME,KAAK,GAAAD,OAAA,CAAAC,KAAA,GAAG,CAAC","ignoreList":[]}
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- import { StyleSheet, View } from "react-native";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- export const ComponentScreenContainer = ({
6
- children
7
- }) => {
8
- return /*#__PURE__*/_jsx(View, {
9
- style: styles.container,
10
- children: children
11
- });
12
- };
13
- const styles = StyleSheet.create({
14
- container: {
15
- flex: 1
16
- }
17
- });
18
- //# sourceMappingURL=component-screen-container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["StyleSheet","View","jsx","_jsx","ComponentScreenContainer","children","style","styles","container","create","flex"],"sourceRoot":"../../../../src","sources":["component-stack/components/component-screen-container.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMhD,OAAO,MAAMC,wBAAwB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAAK;EAChE,oBAAOF,IAAA,CAACF,IAAI;IAACK,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAH,QAAA,EAAEA;EAAQ,CAAO,CAAC;AACxD,CAAC;AAED,MAAME,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAChCD,SAAS,EAAE;IACVE,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
@@ -1,83 +0,0 @@
1
- "use strict";
2
-
3
- /** biome-ignore-all lint/style/noNonNullAssertion: <Lifecycles are rendered right under the gesture provider> */
4
- import { useEffect, useLayoutEffect } from "react";
5
- import { useDerivedValue } from "react-native-reanimated";
6
- import { useHighRefreshRate } from "../../shared/hooks/animation/use-high-refresh-rate";
7
- import { useSharedValueState } from "../../shared/hooks/reanimated/use-shared-value-state";
8
- import useStableCallback from "../../shared/hooks/use-stable-callback";
9
- import { useGestureContext } from "../../shared/providers/gestures.provider";
10
- import { useKeys } from "../../shared/providers/screen/keys.provider";
11
- import { AnimationStore } from "../../shared/stores/animation.store";
12
- import { TRUE } from "../../shared/types/state.types";
13
- import { startScreenTransition } from "../../shared/utils/animation/start-screen-transition";
14
- import { resetStoresForScreen } from "../../shared/utils/reset-stores-for-screen";
15
- /**
16
- * Lifecycle controller built out for Native Stack implementation.
17
- */
18
- export const NativeStackScreenLifecycleController = ({
19
- children
20
- }) => {
21
- const {
22
- current
23
- } = useKeys();
24
- const {
25
- ancestorContext
26
- } = useGestureContext();
27
- const isAncestorDismissingViaGesture = useSharedValueState(useDerivedValue(() => {
28
- "worklet";
29
-
30
- return ancestorContext?.gestureAnimationValues.isDismissing?.value ?? false;
31
- }));
32
- const animations = AnimationStore.getAll(current.route.key);
33
- const {
34
- deactivateHighRefreshRate,
35
- activateHighRefreshRate
36
- } = useHighRefreshRate(current);
37
- const handleBeforeRemove = useStableCallback(e => {
38
- const isEnabled = current.options.enableTransitions;
39
- const isFirstScreen = current.navigation.getState().index === 0;
40
-
41
- // If transitions are disabled, or an ancestor is dismissing via gesture, or this is the first screen of the stack, reset the stores
42
- if (!isEnabled || isAncestorDismissingViaGesture || isFirstScreen) {
43
- animations.closing.set(TRUE);
44
- resetStoresForScreen(current);
45
- return;
46
- }
47
- e.preventDefault();
48
- activateHighRefreshRate();
49
- const onAnimationFinish = finished => {
50
- deactivateHighRefreshRate();
51
- if (finished) {
52
- current.navigation.dispatch(e.data.action);
53
-
54
- // we'll ensure the dispatch is complete before resetting stores
55
- requestAnimationFrame(() => {
56
- resetStoresForScreen(current);
57
- });
58
- }
59
- };
60
- startScreenTransition({
61
- target: "close",
62
- spec: current.options.transitionSpec,
63
- onAnimationFinish,
64
- animations
65
- });
66
- });
67
- const handleInitialize = useStableCallback(() => {
68
- activateHighRefreshRate();
69
- startScreenTransition({
70
- target: "open",
71
- spec: current.options.transitionSpec,
72
- animations,
73
- onAnimationFinish: deactivateHighRefreshRate
74
- });
75
- });
76
- useEffect(() => {
77
- const unsubscribe = current.navigation.addListener("beforeRemove", handleBeforeRemove);
78
- return unsubscribe;
79
- }, [current.navigation, handleBeforeRemove]);
80
- useLayoutEffect(handleInitialize, []);
81
- return children;
82
- };
83
- //# sourceMappingURL=native-stack-lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useLayoutEffect","useDerivedValue","useHighRefreshRate","useSharedValueState","useStableCallback","useGestureContext","useKeys","AnimationStore","TRUE","startScreenTransition","resetStoresForScreen","NativeStackScreenLifecycleController","children","current","ancestorContext","isAncestorDismissingViaGesture","gestureAnimationValues","isDismissing","value","animations","getAll","route","key","deactivateHighRefreshRate","activateHighRefreshRate","handleBeforeRemove","e","isEnabled","options","enableTransitions","isFirstScreen","navigation","getState","index","closing","set","preventDefault","onAnimationFinish","finished","dispatch","data","action","requestAnimationFrame","target","spec","transitionSpec","handleInitialize","unsubscribe","addListener"],"sourceRoot":"../../../../src","sources":["native-stack/controllers/native-stack-lifecycle.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- import { useLayoutEffect } from "react";
4
- import { runOnJS, useAnimatedReaction } from "react-native-reanimated";
5
- import { useHighRefreshRate } from "../hooks/animation/use-high-refresh-rate";
6
- import useStableCallback from "../hooks/use-stable-callback";
7
- import { useKeys } from "../providers/screen/keys.provider";
8
- import { useManagedStackContext } from "../providers/stack/managed.provider";
9
- import { AnimationStore } from "../stores/animation.store";
10
- import { startScreenTransition } from "../utils/animation/start-screen-transition";
11
- import { resetStoresForScreen } from "../utils/reset-stores-for-screen";
12
- /**
13
- * Lifecycle controller built out for Blank Stack implementation.
14
- */
15
- export const ManagedLifecycle = ({
16
- children
17
- }) => {
18
- const {
19
- current
20
- } = useKeys();
21
- const {
22
- handleCloseRoute,
23
- closingRouteKeysShared
24
- } = useManagedStackContext();
25
- const animations = AnimationStore.getAll(current.route.key);
26
- const {
27
- deactivateHighRefreshRate,
28
- activateHighRefreshRate
29
- } = useHighRefreshRate(current);
30
- const handleInitialize = useStableCallback(() => {
31
- activateHighRefreshRate();
32
- startScreenTransition({
33
- target: "open",
34
- spec: current.options.transitionSpec,
35
- animations,
36
- onAnimationFinish: deactivateHighRefreshRate
37
- });
38
- });
39
- const handleCloseEnd = useStableCallback(finished => {
40
- if (!finished) {
41
- return;
42
- }
43
- handleCloseRoute({
44
- route: current.route
45
- });
46
- requestAnimationFrame(() => {
47
- deactivateHighRefreshRate();
48
- resetStoresForScreen(current);
49
- });
50
- });
51
- useAnimatedReaction(() => ({
52
- keys: closingRouteKeysShared.value
53
- }), ({
54
- keys
55
- }) => {
56
- if (!keys.includes(current.route.key)) {
57
- return;
58
- }
59
- runOnJS(activateHighRefreshRate)();
60
- startScreenTransition({
61
- target: "close",
62
- spec: current.options.transitionSpec,
63
- animations,
64
- onAnimationFinish: handleCloseEnd
65
- });
66
- });
67
- useLayoutEffect(() => {
68
- handleInitialize();
69
- }, [handleInitialize]);
70
- return children;
71
- };
72
- //# sourceMappingURL=managed-lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useLayoutEffect","runOnJS","useAnimatedReaction","useHighRefreshRate","useStableCallback","useKeys","useManagedStackContext","AnimationStore","startScreenTransition","resetStoresForScreen","ManagedLifecycle","children","current","handleCloseRoute","closingRouteKeysShared","animations","getAll","route","key","deactivateHighRefreshRate","activateHighRefreshRate","handleInitialize","target","spec","options","transitionSpec","onAnimationFinish","handleCloseEnd","finished","requestAnimationFrame","keys","value","includes"],"sourceRoot":"../../../../src","sources":["shared/controller/managed-lifecycle.tsx"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,OAAO;AACvC,SAASC,OAAO,EAAEC,mBAAmB,QAAQ,yBAAyB;AAEtE,SAASC,kBAAkB,QAAQ,0CAA0C;AAC7E,OAAOC,iBAAiB,MAAM,8BAA8B;AAC5D,SAASC,OAAO,QAAQ,mCAAmC;AAC3D,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,qBAAqB,QAAQ,4CAA4C;AAClF,SAASC,oBAAoB,QAAQ,kCAAkC;AAMvE;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAAK;EACxD,MAAM;IAAEC;EAAQ,CAAC,GAAGP,OAAO,CAAuB,CAAC;EACnD,MAAM;IAAEQ,gBAAgB;IAAEC;EAAuB,CAAC,GAAGR,sBAAsB,CAAC,CAAC;EAE7E,MAAMS,UAAU,GAAGR,cAAc,CAACS,MAAM,CAACJ,OAAO,CAACK,KAAK,CAACC,GAAG,CAAC;EAE3D,MAAM;IAAEC,yBAAyB;IAAEC;EAAwB,CAAC,GAC3DjB,kBAAkB,CAACS,OAAO,CAAC;EAE5B,MAAMS,gBAAgB,GAAGjB,iBAAiB,CAAC,MAAM;IAChDgB,uBAAuB,CAAC,CAAC;IACzBZ,qBAAqB,CAAC;MACrBc,MAAM,EAAE,MAAM;MACdC,IAAI,EAAEX,OAAO,CAACY,OAAO,CAACC,cAAc;MACpCV,UAAU;MACVW,iBAAiB,EAAEP;IACpB,CAAC,CAAC;EACH,CAAC,CAAC;EAEF,MAAMQ,cAAc,GAAGvB,iBAAiB,CAAEwB,QAAiB,IAAK;IAC/D,IAAI,CAACA,QAAQ,EAAE;MACd;IACD;IACAf,gBAAgB,CAAC;MAAEI,KAAK,EAAEL,OAAO,CAACK;IAAM,CAAC,CAAC;IAC1CY,qBAAqB,CAAC,MAAM;MAC3BV,yBAAyB,CAAC,CAAC;MAC3BV,oBAAoB,CAACG,OAAO,CAAC;IAC9B,CAAC,CAAC;EACH,CAAC,CAAC;EAEFV,mBAAmB,CAClB,OAAO;IACN4B,IAAI,EAAEhB,sBAAsB,CAACiB;EAC9B,CAAC,CAAC,EACF,CAAC;IAAED;EAAK,CAAC,KAAK;IACb,IAAI,CAACA,IAAI,CAACE,QAAQ,CAACpB,OAAO,CAACK,KAAK,CAACC,GAAG,CAAC,EAAE;MACtC;IACD;IAEAjB,OAAO,CAACmB,uBAAuB,CAAC,CAAC,CAAC;IAClCZ,qBAAqB,CAAC;MACrBc,MAAM,EAAE,OAAO;MACfC,IAAI,EAAEX,OAAO,CAACY,OAAO,CAACC,cAAc;MACpCV,UAAU;MACVW,iBAAiB,EAAEC;IACpB,CAAC,CAAC;EACH,CACD,CAAC;EAED3B,eAAe,CAAC,MAAM;IACrBqB,gBAAgB,CAAC,CAAC;EACnB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB,OAAOV,QAAQ;AAChB,CAAC","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- export const TRUE = 1;
4
- export const FALSE = 0;
5
- //# sourceMappingURL=state.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["TRUE","FALSE"],"sourceRoot":"../../../../src","sources":["shared/types/state.types.ts"],"mappings":";;AAAA,OAAO,MAAMA,IAAI,GAAG,CAAC;AACrB,OAAO,MAAMC,KAAK,GAAG,CAAC","ignoreList":[]}
@@ -1,6 +0,0 @@
1
- interface Props {
2
- children: React.ReactNode;
3
- }
4
- export declare const ComponentScreenContainer: ({ children }: Props) => import("react/jsx-runtime").JSX.Element;
5
- export {};
6
- //# sourceMappingURL=component-screen-container.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component-screen-container.d.ts","sourceRoot":"","sources":["../../../../src/component-stack/components/component-screen-container.tsx"],"names":[],"mappings":"AAEA,UAAU,KAAK;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED,eAAO,MAAM,wBAAwB,GAAI,cAAc,KAAK,4CAE3D,CAAC"}