@react-navigation/stack 6.3.8 → 6.3.9

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 (186) hide show
  1. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +12 -22
  2. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
  3. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js +11 -16
  4. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
  5. package/lib/commonjs/TransitionConfigs/TransitionPresets.js +10 -19
  6. package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +1 -1
  7. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +6 -8
  8. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +1 -1
  9. package/lib/commonjs/index.js +0 -18
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/navigators/createStackNavigator.js +9 -17
  12. package/lib/commonjs/navigators/createStackNavigator.js.map +1 -1
  13. package/lib/commonjs/types.js.map +1 -1
  14. package/lib/commonjs/utils/CardAnimationContext.js +0 -5
  15. package/lib/commonjs/utils/CardAnimationContext.js.map +1 -1
  16. package/lib/commonjs/utils/GestureHandlerRefContext.js +0 -5
  17. package/lib/commonjs/utils/GestureHandlerRefContext.js.map +1 -1
  18. package/lib/commonjs/utils/ModalPresentationContext.js +0 -4
  19. package/lib/commonjs/utils/ModalPresentationContext.js.map +1 -1
  20. package/lib/commonjs/utils/conditional.js +1 -3
  21. package/lib/commonjs/utils/conditional.js.map +1 -1
  22. package/lib/commonjs/utils/debounce.js +0 -2
  23. package/lib/commonjs/utils/debounce.js.map +1 -1
  24. package/lib/commonjs/utils/getDistanceForDirection.js +0 -5
  25. package/lib/commonjs/utils/getDistanceForDirection.js.map +1 -1
  26. package/lib/commonjs/utils/getInvertedMultiplier.js +0 -5
  27. package/lib/commonjs/utils/getInvertedMultiplier.js.map +1 -1
  28. package/lib/commonjs/utils/memoize.js +0 -6
  29. package/lib/commonjs/utils/memoize.js.map +1 -1
  30. package/lib/commonjs/utils/useCardAnimation.js +0 -8
  31. package/lib/commonjs/utils/useCardAnimation.js.map +1 -1
  32. package/lib/commonjs/utils/useGestureHandlerRef.js +0 -8
  33. package/lib/commonjs/utils/useGestureHandlerRef.js.map +1 -1
  34. package/lib/commonjs/utils/useKeyboardManager.js +14 -20
  35. package/lib/commonjs/utils/useKeyboardManager.js.map +1 -1
  36. package/lib/commonjs/views/GestureHandler.android.js +0 -2
  37. package/lib/commonjs/views/GestureHandler.android.js.map +1 -1
  38. package/lib/commonjs/views/GestureHandler.ios.js +0 -2
  39. package/lib/commonjs/views/GestureHandler.ios.js.map +1 -1
  40. package/lib/commonjs/views/GestureHandler.js +0 -6
  41. package/lib/commonjs/views/GestureHandler.js.map +1 -1
  42. package/lib/commonjs/views/GestureHandlerNative.js +0 -8
  43. package/lib/commonjs/views/GestureHandlerNative.js.map +1 -1
  44. package/lib/commonjs/views/Header/Header.js +7 -18
  45. package/lib/commonjs/views/Header/Header.js.map +1 -1
  46. package/lib/commonjs/views/Header/HeaderContainer.js +10 -23
  47. package/lib/commonjs/views/Header/HeaderContainer.js.map +1 -1
  48. package/lib/commonjs/views/Header/HeaderSegment.js +6 -20
  49. package/lib/commonjs/views/Header/HeaderSegment.js.map +1 -1
  50. package/lib/commonjs/views/ModalStatusBarManager.js +1 -11
  51. package/lib/commonjs/views/ModalStatusBarManager.js.map +1 -1
  52. package/lib/commonjs/views/Screens.js +2 -16
  53. package/lib/commonjs/views/Screens.js.map +1 -1
  54. package/lib/commonjs/views/Stack/Card.js +17 -80
  55. package/lib/commonjs/views/Stack/Card.js.map +1 -1
  56. package/lib/commonjs/views/Stack/CardContainer.js +3 -30
  57. package/lib/commonjs/views/Stack/CardContainer.js.map +1 -1
  58. package/lib/commonjs/views/Stack/CardSheet.js +2 -11
  59. package/lib/commonjs/views/Stack/CardSheet.js.map +1 -1
  60. package/lib/commonjs/views/Stack/CardStack.js +23 -78
  61. package/lib/commonjs/views/Stack/CardStack.js.map +1 -1
  62. package/lib/commonjs/views/Stack/StackView.js +33 -65
  63. package/lib/commonjs/views/Stack/StackView.js.map +1 -1
  64. package/lib/module/TransitionConfigs/CardStyleInterpolators.js +12 -10
  65. package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
  66. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js +11 -9
  67. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
  68. package/lib/module/TransitionConfigs/TransitionPresets.js +10 -10
  69. package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -1
  70. package/lib/module/TransitionConfigs/TransitionSpecs.js +6 -7
  71. package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -1
  72. package/lib/module/index.js +5 -4
  73. package/lib/module/index.js.map +1 -1
  74. package/lib/module/navigators/createStackNavigator.js +9 -9
  75. package/lib/module/navigators/createStackNavigator.js.map +1 -1
  76. package/lib/module/types.js.map +1 -1
  77. package/lib/module/utils/CardAnimationContext.js.map +1 -1
  78. package/lib/module/utils/GestureHandlerRefContext.js.map +1 -1
  79. package/lib/module/utils/ModalPresentationContext.js.map +1 -1
  80. package/lib/module/utils/conditional.js +1 -1
  81. package/lib/module/utils/conditional.js.map +1 -1
  82. package/lib/module/utils/debounce.js +0 -1
  83. package/lib/module/utils/debounce.js.map +1 -1
  84. package/lib/module/utils/getDistanceForDirection.js +0 -2
  85. package/lib/module/utils/getDistanceForDirection.js.map +1 -1
  86. package/lib/module/utils/getInvertedMultiplier.js +0 -3
  87. package/lib/module/utils/getInvertedMultiplier.js.map +1 -1
  88. package/lib/module/utils/memoize.js +0 -5
  89. package/lib/module/utils/memoize.js.map +1 -1
  90. package/lib/module/utils/useCardAnimation.js +0 -2
  91. package/lib/module/utils/useCardAnimation.js.map +1 -1
  92. package/lib/module/utils/useGestureHandlerRef.js +0 -2
  93. package/lib/module/utils/useGestureHandlerRef.js.map +1 -1
  94. package/lib/module/utils/useKeyboardManager.js +14 -13
  95. package/lib/module/utils/useKeyboardManager.js.map +1 -1
  96. package/lib/module/views/GestureHandler.android.js.map +1 -1
  97. package/lib/module/views/GestureHandler.ios.js.map +1 -1
  98. package/lib/module/views/GestureHandler.js +0 -2
  99. package/lib/module/views/GestureHandler.js.map +1 -1
  100. package/lib/module/views/GestureHandlerNative.js +0 -1
  101. package/lib/module/views/GestureHandlerNative.js.map +1 -1
  102. package/lib/module/views/Header/Header.js +7 -6
  103. package/lib/module/views/Header/Header.js.map +1 -1
  104. package/lib/module/views/Header/HeaderContainer.js +10 -12
  105. package/lib/module/views/Header/HeaderContainer.js.map +1 -1
  106. package/lib/module/views/Header/HeaderSegment.js +6 -10
  107. package/lib/module/views/Header/HeaderSegment.js.map +1 -1
  108. package/lib/module/views/ModalStatusBarManager.js +1 -3
  109. package/lib/module/views/ModalStatusBarManager.js.map +1 -1
  110. package/lib/module/views/Screens.js +2 -8
  111. package/lib/module/views/Screens.js.map +1 -1
  112. package/lib/module/views/Stack/Card.js +17 -58
  113. package/lib/module/views/Stack/Card.js.map +1 -1
  114. package/lib/module/views/Stack/CardContainer.js +3 -17
  115. package/lib/module/views/Stack/CardContainer.js.map +1 -1
  116. package/lib/module/views/Stack/CardSheet.js +2 -4
  117. package/lib/module/views/Stack/CardSheet.js.map +1 -1
  118. package/lib/module/views/Stack/CardStack.js +23 -60
  119. package/lib/module/views/Stack/CardStack.js.map +1 -1
  120. package/lib/module/views/Stack/StackView.js +34 -51
  121. package/lib/module/views/Stack/StackView.js.map +1 -1
  122. package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts +1 -0
  123. package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts.map +1 -0
  124. package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts +1 -0
  125. package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts.map +1 -0
  126. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +1 -0
  127. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -0
  128. package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts +1 -0
  129. package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts.map +1 -0
  130. package/lib/typescript/src/index.d.ts +1 -0
  131. package/lib/typescript/src/index.d.ts.map +1 -0
  132. package/lib/typescript/src/navigators/createStackNavigator.d.ts +1 -0
  133. package/lib/typescript/src/navigators/createStackNavigator.d.ts.map +1 -0
  134. package/lib/typescript/src/types.d.ts +1 -0
  135. package/lib/typescript/src/types.d.ts.map +1 -0
  136. package/lib/typescript/src/utils/CardAnimationContext.d.ts +1 -0
  137. package/lib/typescript/src/utils/CardAnimationContext.d.ts.map +1 -0
  138. package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts +1 -0
  139. package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts.map +1 -0
  140. package/lib/typescript/src/utils/ModalPresentationContext.d.ts +1 -0
  141. package/lib/typescript/src/utils/ModalPresentationContext.d.ts.map +1 -0
  142. package/lib/typescript/src/utils/conditional.d.ts +1 -0
  143. package/lib/typescript/src/utils/conditional.d.ts.map +1 -0
  144. package/lib/typescript/src/utils/debounce.d.ts +1 -0
  145. package/lib/typescript/src/utils/debounce.d.ts.map +1 -0
  146. package/lib/typescript/src/utils/getDistanceForDirection.d.ts +1 -0
  147. package/lib/typescript/src/utils/getDistanceForDirection.d.ts.map +1 -0
  148. package/lib/typescript/src/utils/getInvertedMultiplier.d.ts +1 -0
  149. package/lib/typescript/src/utils/getInvertedMultiplier.d.ts.map +1 -0
  150. package/lib/typescript/src/utils/memoize.d.ts +1 -0
  151. package/lib/typescript/src/utils/memoize.d.ts.map +1 -0
  152. package/lib/typescript/src/utils/useCardAnimation.d.ts +1 -0
  153. package/lib/typescript/src/utils/useCardAnimation.d.ts.map +1 -0
  154. package/lib/typescript/src/utils/useGestureHandlerRef.d.ts +1 -0
  155. package/lib/typescript/src/utils/useGestureHandlerRef.d.ts.map +1 -0
  156. package/lib/typescript/src/utils/useKeyboardManager.d.ts +1 -0
  157. package/lib/typescript/src/utils/useKeyboardManager.d.ts.map +1 -0
  158. package/lib/typescript/src/views/GestureHandler.android.d.ts +1 -0
  159. package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -0
  160. package/lib/typescript/src/views/GestureHandler.d.ts +1 -0
  161. package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -0
  162. package/lib/typescript/src/views/GestureHandler.ios.d.ts +1 -0
  163. package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -0
  164. package/lib/typescript/src/views/GestureHandlerNative.d.ts +1 -0
  165. package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -0
  166. package/lib/typescript/src/views/Header/Header.d.ts +1 -0
  167. package/lib/typescript/src/views/Header/Header.d.ts.map +1 -0
  168. package/lib/typescript/src/views/Header/HeaderContainer.d.ts +1 -0
  169. package/lib/typescript/src/views/Header/HeaderContainer.d.ts.map +1 -0
  170. package/lib/typescript/src/views/Header/HeaderSegment.d.ts +1 -0
  171. package/lib/typescript/src/views/Header/HeaderSegment.d.ts.map +1 -0
  172. package/lib/typescript/src/views/ModalStatusBarManager.d.ts +1 -0
  173. package/lib/typescript/src/views/ModalStatusBarManager.d.ts.map +1 -0
  174. package/lib/typescript/src/views/Screens.d.ts +1 -0
  175. package/lib/typescript/src/views/Screens.d.ts.map +1 -0
  176. package/lib/typescript/src/views/Stack/Card.d.ts +1 -0
  177. package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -0
  178. package/lib/typescript/src/views/Stack/CardContainer.d.ts +1 -0
  179. package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -0
  180. package/lib/typescript/src/views/Stack/CardSheet.d.ts +1 -0
  181. package/lib/typescript/src/views/Stack/CardSheet.d.ts.map +1 -0
  182. package/lib/typescript/src/views/Stack/CardStack.d.ts +1 -0
  183. package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -0
  184. package/lib/typescript/src/views/Stack/StackView.d.ts +1 -0
  185. package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -0
  186. package/package.json +5 -5
@@ -4,35 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _elements = require("@react-navigation/elements");
9
-
10
8
  var _color = _interopRequireDefault(require("color"));
11
-
12
9
  var React = _interopRequireWildcard(require("react"));
13
-
14
10
  var _reactNative = require("react-native");
15
-
16
11
  var _CardStyleInterpolators = require("../../TransitionConfigs/CardStyleInterpolators");
17
-
18
12
  var _TransitionPresets = require("../../TransitionConfigs/TransitionPresets");
19
-
20
13
  var _getDistanceForDirection = _interopRequireDefault(require("../../utils/getDistanceForDirection"));
21
-
22
14
  var _Screens = require("../Screens");
23
-
24
15
  var _Card = require("./Card");
25
-
26
16
  var _CardContainer = _interopRequireDefault(require("./CardContainer"));
27
-
28
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
-
34
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
35
-
20
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
22
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
36
23
  const EPSILON = 1e-5;
37
24
  const STATE_INACTIVE = 0;
38
25
  const STATE_TRANSITIONING_OR_BELOW_TOP = 1;
@@ -40,34 +27,27 @@ const STATE_ON_TOP = 2;
40
27
  const FALLBACK_DESCRIPTOR = Object.freeze({
41
28
  options: {}
42
29
  });
43
-
44
30
  const getInterpolationIndex = (scenes, index) => {
45
31
  const {
46
32
  cardStyleInterpolator
47
- } = scenes[index].descriptor.options; // Start from current card and count backwards the number of cards with same interpolation
33
+ } = scenes[index].descriptor.options;
48
34
 
35
+ // Start from current card and count backwards the number of cards with same interpolation
49
36
  let interpolationIndex = 0;
50
-
51
37
  for (let i = index - 1; i >= 0; i--) {
52
38
  var _scenes$i;
53
-
54
39
  const cardStyleInterpolatorCurrent = (_scenes$i = scenes[i]) === null || _scenes$i === void 0 ? void 0 : _scenes$i.descriptor.options.cardStyleInterpolator;
55
-
56
40
  if (cardStyleInterpolatorCurrent !== cardStyleInterpolator) {
57
41
  break;
58
42
  }
59
-
60
43
  interpolationIndex++;
61
44
  }
62
-
63
45
  return interpolationIndex;
64
46
  };
65
-
66
47
  const getIsModal = (scene, interpolationIndex, isParentModal) => {
67
48
  if (isParentModal) {
68
49
  return true;
69
50
  }
70
-
71
51
  const {
72
52
  cardStyleInterpolator
73
53
  } = scene.descriptor.options;
@@ -75,16 +55,13 @@ const getIsModal = (scene, interpolationIndex, isParentModal) => {
75
55
  const isModal = isModalPresentation && interpolationIndex !== 0;
76
56
  return isModal;
77
57
  };
78
-
79
58
  const getHeaderHeights = (scenes, insets, isParentHeaderShown, isParentModal, layout, previous) => {
80
59
  return scenes.reduce((acc, curr, index) => {
81
60
  const {
82
61
  headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,
83
62
  headerStyle
84
63
  } = curr.descriptor.options;
85
-
86
64
  const style = _reactNative.StyleSheet.flatten(headerStyle || {});
87
-
88
65
  const height = 'height' in style && typeof style.height === 'number' ? style.height : previous[curr.route.key];
89
66
  const interpolationIndex = getInterpolationIndex(scenes, index);
90
67
  const isModal = getIsModal(curr, interpolationIndex, isParentModal);
@@ -92,7 +69,6 @@ const getHeaderHeights = (scenes, insets, isParentHeaderShown, isParentModal, la
92
69
  return acc;
93
70
  }, {});
94
71
  };
95
-
96
72
  const getDistanceFromOptions = (layout, descriptor) => {
97
73
  const {
98
74
  presentation,
@@ -100,7 +76,6 @@ const getDistanceFromOptions = (layout, descriptor) => {
100
76
  } = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.options) || {};
101
77
  return (0, _getDistanceForDirection.default)(layout, gestureDirection);
102
78
  };
103
-
104
79
  const getProgressFromGesture = (gesture, layout, descriptor) => {
105
80
  const distance = getDistanceFromOptions({
106
81
  // Make sure that we have a non-zero distance, otherwise there will be incorrect progress
@@ -108,26 +83,22 @@ const getProgressFromGesture = (gesture, layout, descriptor) => {
108
83
  width: Math.max(1, layout.width),
109
84
  height: Math.max(1, layout.height)
110
85
  }, descriptor);
111
-
112
86
  if (distance > 0) {
113
87
  return gesture.interpolate({
114
88
  inputRange: [0, distance],
115
89
  outputRange: [1, 0]
116
90
  });
117
91
  }
118
-
119
92
  return gesture.interpolate({
120
93
  inputRange: [distance, 0],
121
94
  outputRange: [0, 1]
122
95
  });
123
96
  };
124
-
125
97
  class CardStack extends React.Component {
126
98
  static getDerivedStateFromProps(props, state) {
127
99
  if (props.routes === state.routes && props.descriptors === state.descriptors) {
128
100
  return null;
129
101
  }
130
-
131
102
  const gestures = props.routes.reduce((acc, curr) => {
132
103
  const descriptor = props.descriptors[curr.key];
133
104
  const {
@@ -137,8 +108,6 @@ class CardStack extends React.Component {
137
108
  return acc;
138
109
  }, {});
139
110
  const scenes = props.routes.map((route, index, self) => {
140
- var _descriptor$options$h;
141
-
142
111
  const previousRoute = self[index - 1];
143
112
  const nextRoute = self[index + 1];
144
113
  const oldScene = state.scenes[index];
@@ -147,13 +116,14 @@ class CardStack extends React.Component {
147
116
  const nextGesture = nextRoute ? gestures[nextRoute.key] : undefined;
148
117
  const descriptor = props.descriptors[route.key] || state.descriptors[route.key] || (oldScene ? oldScene.descriptor : FALLBACK_DESCRIPTOR);
149
118
  const nextDescriptor = props.descriptors[nextRoute === null || nextRoute === void 0 ? void 0 : nextRoute.key] || state.descriptors[nextRoute === null || nextRoute === void 0 ? void 0 : nextRoute.key];
150
- const previousDescriptor = props.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key] || state.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key]; // When a screen is not the last, it should use next screen's transition config
119
+ const previousDescriptor = props.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key] || state.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key];
120
+
121
+ // When a screen is not the last, it should use next screen's transition config
151
122
  // Many transitions also animate the previous screen, so using 2 different transitions doesn't look right
152
123
  // For example combining a slide and a modal transition would look wrong otherwise
153
124
  // With this approach, combining different transition styles in the same navigator mostly looks right
154
125
  // This will still be broken when 2 transitions have different idle state (e.g. modal presentation),
155
126
  // but majority of the transitions look alright
156
-
157
127
  const optionsForTransitionConfig = index !== self.length - 1 && nextDescriptor && nextDescriptor.options.presentation !== 'transparentModal' ? nextDescriptor.options : descriptor.options;
158
128
  let defaultTransitionPreset = optionsForTransitionConfig.presentation === 'modal' ? _TransitionPresets.ModalTransition : optionsForTransitionConfig.presentation === 'transparentModal' ? _TransitionPresets.ModalFadeTransition : _TransitionPresets.DefaultTransition;
159
129
  const {
@@ -165,11 +135,13 @@ class CardStack extends React.Component {
165
135
  headerStyleInterpolator = defaultTransitionPreset.headerStyleInterpolator,
166
136
  cardOverlayEnabled = _reactNative.Platform.OS !== 'ios' && optionsForTransitionConfig.presentation !== 'transparentModal' || (0, _Card.getIsModalPresentation)(cardStyleInterpolator)
167
137
  } = optionsForTransitionConfig;
168
- const headerMode = (_descriptor$options$h = descriptor.options.headerMode) !== null && _descriptor$options$h !== void 0 ? _descriptor$options$h : !(optionsForTransitionConfig.presentation === 'modal' || optionsForTransitionConfig.presentation === 'transparentModal' || (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) === 'modal' || (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) === 'transparentModal' || (0, _Card.getIsModalPresentation)(cardStyleInterpolator)) && _reactNative.Platform.OS === 'ios' && descriptor.options.header === undefined ? 'float' : 'screen';
138
+ const headerMode = descriptor.options.headerMode ?? (!(optionsForTransitionConfig.presentation === 'modal' || optionsForTransitionConfig.presentation === 'transparentModal' || (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) === 'modal' || (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) === 'transparentModal' || (0, _Card.getIsModalPresentation)(cardStyleInterpolator)) && _reactNative.Platform.OS === 'ios' && descriptor.options.header === undefined ? 'float' : 'screen');
169
139
  const scene = {
170
140
  route,
171
- descriptor: { ...descriptor,
172
- options: { ...descriptor.options,
141
+ descriptor: {
142
+ ...descriptor,
143
+ options: {
144
+ ...descriptor.options,
173
145
  animationEnabled,
174
146
  cardOverlayEnabled,
175
147
  cardStyleInterpolator,
@@ -187,14 +159,12 @@ class CardStack extends React.Component {
187
159
  },
188
160
  __memo: [state.layout, descriptor, nextDescriptor, previousDescriptor, currentGesture, nextGesture, previousGesture]
189
161
  };
190
-
191
162
  if (oldScene && scene.__memo.every((it, i) => {
192
163
  // @ts-expect-error: we haven't added __memo to the annotation to prevent usage elsewhere
193
164
  return oldScene.__memo[i] === it;
194
165
  })) {
195
166
  return oldScene;
196
167
  }
197
-
198
168
  return scene;
199
169
  });
200
170
  return {
@@ -205,10 +175,8 @@ class CardStack extends React.Component {
205
175
  headerHeights: getHeaderHeights(scenes, props.insets, props.isParentHeaderShown, props.isParentModal, state.layout, state.headerHeights)
206
176
  };
207
177
  }
208
-
209
178
  constructor(_props) {
210
179
  super(_props);
211
-
212
180
  _defineProperty(this, "handleLayout", e => {
213
181
  const {
214
182
  height,
@@ -222,14 +190,12 @@ class CardStack extends React.Component {
222
190
  if (height === state.layout.height && width === state.layout.width) {
223
191
  return null;
224
192
  }
225
-
226
193
  return {
227
194
  layout,
228
195
  headerHeights: getHeaderHeights(state.scenes, props.insets, props.isParentHeaderShown, props.isParentModal, layout, state.headerHeights)
229
196
  };
230
197
  });
231
198
  });
232
-
233
199
  _defineProperty(this, "handleHeaderLayout", _ref => {
234
200
  let {
235
201
  route,
@@ -240,26 +206,23 @@ class CardStack extends React.Component {
240
206
  headerHeights
241
207
  } = _ref2;
242
208
  const previousHeight = headerHeights[route.key];
243
-
244
209
  if (previousHeight === height) {
245
210
  return null;
246
211
  }
247
-
248
212
  return {
249
- headerHeights: { ...headerHeights,
213
+ headerHeights: {
214
+ ...headerHeights,
250
215
  [route.key]: height
251
216
  }
252
217
  };
253
218
  });
254
219
  });
255
-
256
220
  _defineProperty(this, "getFocusedRoute", () => {
257
221
  const {
258
222
  state
259
223
  } = this.props;
260
224
  return state.routes[state.index];
261
225
  });
262
-
263
226
  _defineProperty(this, "getPreviousScene", _ref3 => {
264
227
  let {
265
228
  route
@@ -273,15 +236,12 @@ class CardStack extends React.Component {
273
236
  const previousRoute = getPreviousRoute({
274
237
  route
275
238
  });
276
-
277
239
  if (previousRoute) {
278
240
  const previousScene = scenes.find(scene => scene.descriptor.route.key === previousRoute.key);
279
241
  return previousScene;
280
242
  }
281
-
282
243
  return undefined;
283
244
  });
284
-
285
245
  this.state = {
286
246
  routes: [],
287
247
  scenes: [],
@@ -296,7 +256,6 @@ class CardStack extends React.Component {
296
256
  headerHeights: {}
297
257
  };
298
258
  }
299
-
300
259
  render() {
301
260
  const {
302
261
  insets,
@@ -325,23 +284,18 @@ class CardStack extends React.Component {
325
284
  const focusedRoute = state.routes[state.index];
326
285
  const focusedHeaderHeight = headerHeights[focusedRoute.key];
327
286
  const isFloatHeaderAbsolute = this.state.scenes.slice(-2).some(scene => {
328
- var _scene$descriptor$opt;
329
-
330
- const options = (_scene$descriptor$opt = scene.descriptor.options) !== null && _scene$descriptor$opt !== void 0 ? _scene$descriptor$opt : {};
287
+ const options = scene.descriptor.options ?? {};
331
288
  const {
332
289
  headerMode,
333
290
  headerTransparent,
334
291
  headerShown = true
335
292
  } = options;
336
-
337
293
  if (headerTransparent || headerShown === false || headerMode === 'screen') {
338
294
  return true;
339
295
  }
340
-
341
296
  return false;
342
297
  });
343
298
  let activeScreensLimit = 1;
344
-
345
299
  for (let i = scenes.length - 1; i >= 0; i--) {
346
300
  const {
347
301
  options
@@ -350,7 +304,6 @@ class CardStack extends React.Component {
350
304
  // By default, we don't want to detach the previous screen of the active one for modals
351
305
  detachPreviousScreen = options.presentation === 'transparentModal' ? false : (0, _Card.getIsModalPresentation)(options.cardStyleInterpolator) ? i !== scenes.map(scene => scene.descriptor.options.cardStyleInterpolator).lastIndexOf(_CardStyleInterpolators.forModalPresentationIOS) : true
352
306
  } = options;
353
-
354
307
  if (detachPreviousScreen === false) {
355
308
  activeScreensLimit++;
356
309
  } else {
@@ -362,7 +315,6 @@ class CardStack extends React.Component {
362
315
  }
363
316
  }
364
317
  }
365
-
366
318
  const floatingHeader = /*#__PURE__*/React.createElement(React.Fragment, {
367
319
  key: "header"
368
320
  }, renderHeader({
@@ -372,7 +324,8 @@ class CardStack extends React.Component {
372
324
  getPreviousScene: this.getPreviousScene,
373
325
  getFocusedRoute: this.getFocusedRoute,
374
326
  onContentHeightChange: this.handleHeaderLayout,
375
- style: [styles.floating, isFloatHeaderAbsolute && [// Without this, the header buttons won't be touchable on Android when headerTransparent: true
327
+ style: [styles.floating, isFloatHeaderAbsolute && [
328
+ // Without this, the header buttons won't be touchable on Android when headerTransparent: true
376
329
  {
377
330
  height: focusedHeaderHeight
378
331
  }, styles.absolute]]
@@ -383,16 +336,15 @@ class CardStack extends React.Component {
383
336
  onLayout: this.handleLayout
384
337
  }, routes.map((route, index, self) => {
385
338
  var _scenes, _scenes2;
386
-
387
339
  const focused = focusedRoute.key === route.key;
388
340
  const gesture = gestures[route.key];
389
- const scene = scenes[index]; // For the screens that shouldn't be active, the value is 0
341
+ const scene = scenes[index];
342
+
343
+ // For the screens that shouldn't be active, the value is 0
390
344
  // For those that should be active, but are not the top screen, the value is 1
391
345
  // For those on top of the stack and with interaction enabled, the value is 2
392
346
  // For the old implementation, it stays the same it was
393
-
394
347
  let isScreenActive = 1;
395
-
396
348
  if (index < self.length - activeScreensLimit - 1) {
397
349
  // screen should be inactive because it is too deep in the stack
398
350
  isScreenActive = STATE_INACTIVE;
@@ -401,14 +353,12 @@ class CardStack extends React.Component {
401
353
  const outputValue = index === self.length - 1 ? STATE_ON_TOP // the screen is on top after the transition
402
354
  : index >= self.length - activeScreensLimit ? STATE_TRANSITIONING_OR_BELOW_TOP // the screen should stay active after the transition, it is not on top but is in activeLimit
403
355
  : STATE_INACTIVE; // the screen should be active only during the transition, it is at the edge of activeLimit
404
-
405
356
  isScreenActive = sceneForActivity ? sceneForActivity.progress.current.interpolate({
406
357
  inputRange: [0, 1 - EPSILON, 1],
407
358
  outputRange: [1, 1, outputValue],
408
359
  extrapolate: 'clamp'
409
360
  }) : STATE_TRANSITIONING_OR_BELOW_TOP;
410
361
  }
411
-
412
362
  const {
413
363
  headerShown = true,
414
364
  headerTransparent,
@@ -422,20 +372,18 @@ class CardStack extends React.Component {
422
372
  const safeAreaInsetLeft = insets.left;
423
373
  const headerHeight = headerShown !== false ? headerHeights[route.key] : 0;
424
374
  let headerDarkContent;
425
-
426
375
  if (headerShown) {
427
376
  if (typeof headerTintColor === 'string') {
428
377
  headerDarkContent = (0, _color.default)(headerTintColor).isDark();
429
378
  } else {
430
379
  const flattenedHeaderStyle = _reactNative.StyleSheet.flatten(headerStyle);
431
-
432
380
  if (flattenedHeaderStyle && 'backgroundColor' in flattenedHeaderStyle && typeof flattenedHeaderStyle.backgroundColor === 'string') {
433
381
  headerDarkContent = !(0, _color.default)(flattenedHeaderStyle.backgroundColor).isDark();
434
382
  }
435
383
  }
436
- } // Start from current card and count backwards the number of cards with same interpolation
437
-
384
+ }
438
385
 
386
+ // Start from current card and count backwards the number of cards with same interpolation
439
387
  const interpolationIndex = getInterpolationIndex(scenes, index);
440
388
  const isModal = getIsModal(scene, interpolationIndex, isParentModal);
441
389
  const isNextScreenTransparent = ((_scenes = scenes[index + 1]) === null || _scenes === void 0 ? void 0 : _scenes.descriptor.options.presentation) === 'transparentModal';
@@ -482,11 +430,8 @@ class CardStack extends React.Component {
482
430
  }));
483
431
  })), isFloatHeaderAbsolute ? floatingHeader : null);
484
432
  }
485
-
486
433
  }
487
-
488
434
  exports.default = CardStack;
489
-
490
435
  const styles = _reactNative.StyleSheet.create({
491
436
  container: {
492
437
  flex: 1
@@ -1 +1 @@
1
- {"version":3,"names":["EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","FALLBACK_DESCRIPTOR","Object","freeze","options","getInterpolationIndex","scenes","index","cardStyleInterpolator","descriptor","interpolationIndex","i","cardStyleInterpolatorCurrent","getIsModal","scene","isParentModal","isModalPresentation","getIsModalPresentation","isModal","getHeaderHeights","insets","isParentHeaderShown","layout","previous","reduce","acc","curr","headerStatusBarHeight","top","headerStyle","style","StyleSheet","flatten","height","route","key","getDefaultHeaderHeight","getDistanceFromOptions","presentation","gestureDirection","ModalTransition","DefaultTransition","getDistanceForDirection","getProgressFromGesture","gesture","distance","width","Math","max","interpolate","inputRange","outputRange","CardStack","React","Component","getDerivedStateFromProps","props","state","routes","descriptors","gestures","animationEnabled","Animated","Value","openingRouteKeys","includes","map","self","previousRoute","nextRoute","oldScene","currentGesture","previousGesture","undefined","nextGesture","nextDescriptor","previousDescriptor","optionsForTransitionConfig","length","defaultTransitionPreset","ModalFadeTransition","Platform","OS","gestureEnabled","transitionSpec","forNoAnimationCard","headerStyleInterpolator","cardOverlayEnabled","headerMode","header","progress","current","next","__memo","every","it","headerHeights","constructor","e","nativeEvent","setState","previousHeight","getPreviousRoute","previousScene","find","SafeAreaProviderCompat","initialMetrics","frame","render","closingRouteKeys","onOpenRoute","onCloseRoute","renderHeader","renderScene","onTransitionStart","onTransitionEnd","onGestureStart","onGestureEnd","onGestureCancel","detachInactiveScreens","focusedRoute","focusedHeaderHeight","isFloatHeaderAbsolute","slice","some","headerTransparent","headerShown","activeScreensLimit","detachPreviousScreen","lastIndexOf","forModalPresentationIOS","floatingHeader","mode","getPreviousScene","getFocusedRoute","onContentHeightChange","handleHeaderLayout","styles","floating","absolute","container","handleLayout","focused","isScreenActive","sceneForActivity","outputValue","extrapolate","headerTintColor","freezeOnBlur","safeAreaInsetTop","safeAreaInsetRight","right","safeAreaInsetBottom","bottom","safeAreaInsetLeft","left","headerHeight","headerDarkContent","Color","isDark","flattenedHeaderStyle","backgroundColor","isNextScreenTransparent","detachCurrentScreen","absoluteFill","create","flex","position","zIndex"],"sources":["CardStack.tsx"],"sourcesContent":["import {\n Background,\n getDefaultHeaderHeight,\n SafeAreaProviderCompat,\n} from '@react-navigation/elements';\nimport type {\n ParamListBase,\n Route,\n StackNavigationState,\n} from '@react-navigation/native';\nimport Color from 'color';\nimport * as React from 'react';\nimport {\n Animated,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n} from 'react-native';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\n\nimport {\n forModalPresentationIOS,\n forNoAnimation as forNoAnimationCard,\n} from '../../TransitionConfigs/CardStyleInterpolators';\nimport {\n DefaultTransition,\n ModalFadeTransition,\n ModalTransition,\n} from '../../TransitionConfigs/TransitionPresets';\nimport type {\n Layout,\n Scene,\n StackDescriptor,\n StackDescriptorMap,\n StackHeaderMode,\n StackNavigationOptions,\n} from '../../types';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nimport type { Props as HeaderContainerProps } from '../Header/HeaderContainer';\nimport { MaybeScreen, MaybeScreenContainer } from '../Screens';\nimport { getIsModalPresentation } from './Card';\nimport CardContainer from './CardContainer';\n\ntype GestureValues = {\n [key: string]: Animated.Value;\n};\n\ntype Props = {\n insets: EdgeInsets;\n state: StackNavigationState<ParamListBase>;\n descriptors: StackDescriptorMap;\n routes: Route<string>[];\n openingRouteKeys: string[];\n closingRouteKeys: string[];\n onOpenRoute: (props: { route: Route<string> }) => void;\n onCloseRoute: (props: { route: Route<string> }) => void;\n getPreviousRoute: (props: {\n route: Route<string>;\n }) => Route<string> | undefined;\n renderHeader: (props: HeaderContainerProps) => React.ReactNode;\n renderScene: (props: { route: Route<string> }) => React.ReactNode;\n isParentHeaderShown: boolean;\n isParentModal: boolean;\n onTransitionStart: (\n props: { route: Route<string> },\n closing: boolean\n ) => void;\n onTransitionEnd: (props: { route: Route<string> }, closing: boolean) => void;\n onGestureStart: (props: { route: Route<string> }) => void;\n onGestureEnd: (props: { route: Route<string> }) => void;\n onGestureCancel: (props: { route: Route<string> }) => void;\n detachInactiveScreens?: boolean;\n};\n\ntype State = {\n routes: Route<string>[];\n descriptors: StackDescriptorMap;\n scenes: Scene[];\n gestures: GestureValues;\n layout: Layout;\n headerHeights: Record<string, number>;\n};\n\nconst EPSILON = 1e-5;\n\nconst STATE_INACTIVE = 0;\nconst STATE_TRANSITIONING_OR_BELOW_TOP = 1;\nconst STATE_ON_TOP = 2;\n\nconst FALLBACK_DESCRIPTOR = Object.freeze({ options: {} });\n\nconst getInterpolationIndex = (scenes: Scene[], index: number) => {\n const { cardStyleInterpolator } = scenes[index].descriptor.options;\n\n // Start from current card and count backwards the number of cards with same interpolation\n let interpolationIndex = 0;\n\n for (let i = index - 1; i >= 0; i--) {\n const cardStyleInterpolatorCurrent =\n scenes[i]?.descriptor.options.cardStyleInterpolator;\n\n if (cardStyleInterpolatorCurrent !== cardStyleInterpolator) {\n break;\n }\n\n interpolationIndex++;\n }\n\n return interpolationIndex;\n};\n\nconst getIsModal = (\n scene: Scene,\n interpolationIndex: number,\n isParentModal: boolean\n) => {\n if (isParentModal) {\n return true;\n }\n\n const { cardStyleInterpolator } = scene.descriptor.options;\n const isModalPresentation = getIsModalPresentation(cardStyleInterpolator);\n const isModal = isModalPresentation && interpolationIndex !== 0;\n\n return isModal;\n};\n\nconst getHeaderHeights = (\n scenes: Scene[],\n insets: EdgeInsets,\n isParentHeaderShown: boolean,\n isParentModal: boolean,\n layout: Layout,\n previous: Record<string, number>\n) => {\n return scenes.reduce<Record<string, number>>((acc, curr, index) => {\n const {\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n headerStyle,\n } = curr.descriptor.options;\n\n const style = StyleSheet.flatten(headerStyle || {});\n\n const height =\n 'height' in style && typeof style.height === 'number'\n ? style.height\n : previous[curr.route.key];\n\n const interpolationIndex = getInterpolationIndex(scenes, index);\n const isModal = getIsModal(curr, interpolationIndex, isParentModal);\n\n acc[curr.route.key] =\n typeof height === 'number'\n ? height\n : getDefaultHeaderHeight(layout, isModal, headerStatusBarHeight);\n\n return acc;\n }, {});\n};\n\nconst getDistanceFromOptions = (\n layout: Layout,\n descriptor?: StackDescriptor\n) => {\n const {\n presentation,\n gestureDirection = presentation === 'modal'\n ? ModalTransition.gestureDirection\n : DefaultTransition.gestureDirection,\n } = (descriptor?.options || {}) as StackNavigationOptions;\n\n return getDistanceForDirection(layout, gestureDirection);\n};\n\nconst getProgressFromGesture = (\n gesture: Animated.Value,\n layout: Layout,\n descriptor?: StackDescriptor\n) => {\n const distance = getDistanceFromOptions(\n {\n // Make sure that we have a non-zero distance, otherwise there will be incorrect progress\n // This causes blank screen on web if it was previously inside container with display: none\n width: Math.max(1, layout.width),\n height: Math.max(1, layout.height),\n },\n descriptor\n );\n\n if (distance > 0) {\n return gesture.interpolate({\n inputRange: [0, distance],\n outputRange: [1, 0],\n });\n }\n\n return gesture.interpolate({\n inputRange: [distance, 0],\n outputRange: [0, 1],\n });\n};\n\nexport default class CardStack extends React.Component<Props, State> {\n static getDerivedStateFromProps(\n props: Props,\n state: State\n ): Partial<State> | null {\n if (\n props.routes === state.routes &&\n props.descriptors === state.descriptors\n ) {\n return null;\n }\n\n const gestures = props.routes.reduce<GestureValues>((acc, curr) => {\n const descriptor = props.descriptors[curr.key];\n const { animationEnabled } = descriptor?.options || {};\n\n acc[curr.key] =\n state.gestures[curr.key] ||\n new Animated.Value(\n props.openingRouteKeys.includes(curr.key) &&\n animationEnabled !== false\n ? getDistanceFromOptions(state.layout, descriptor)\n : 0\n );\n\n return acc;\n }, {});\n\n const scenes = props.routes.map((route, index, self) => {\n const previousRoute = self[index - 1];\n const nextRoute = self[index + 1];\n\n const oldScene = state.scenes[index];\n\n const currentGesture = gestures[route.key];\n const previousGesture = previousRoute\n ? gestures[previousRoute.key]\n : undefined;\n const nextGesture = nextRoute ? gestures[nextRoute.key] : undefined;\n\n const descriptor =\n props.descriptors[route.key] ||\n state.descriptors[route.key] ||\n (oldScene ? oldScene.descriptor : FALLBACK_DESCRIPTOR);\n\n const nextDescriptor =\n props.descriptors[nextRoute?.key] || state.descriptors[nextRoute?.key];\n\n const previousDescriptor =\n props.descriptors[previousRoute?.key] ||\n state.descriptors[previousRoute?.key];\n\n // When a screen is not the last, it should use next screen's transition config\n // Many transitions also animate the previous screen, so using 2 different transitions doesn't look right\n // For example combining a slide and a modal transition would look wrong otherwise\n // With this approach, combining different transition styles in the same navigator mostly looks right\n // This will still be broken when 2 transitions have different idle state (e.g. modal presentation),\n // but majority of the transitions look alright\n const optionsForTransitionConfig =\n index !== self.length - 1 &&\n nextDescriptor &&\n nextDescriptor.options.presentation !== 'transparentModal'\n ? nextDescriptor.options\n : descriptor.options;\n\n let defaultTransitionPreset =\n optionsForTransitionConfig.presentation === 'modal'\n ? ModalTransition\n : optionsForTransitionConfig.presentation === 'transparentModal'\n ? ModalFadeTransition\n : DefaultTransition;\n\n const {\n animationEnabled = Platform.OS !== 'web' &&\n Platform.OS !== 'windows' &&\n Platform.OS !== 'macos',\n gestureEnabled = Platform.OS === 'ios' && animationEnabled,\n gestureDirection = defaultTransitionPreset.gestureDirection,\n transitionSpec = defaultTransitionPreset.transitionSpec,\n cardStyleInterpolator = animationEnabled === false\n ? forNoAnimationCard\n : defaultTransitionPreset.cardStyleInterpolator,\n headerStyleInterpolator = defaultTransitionPreset.headerStyleInterpolator,\n cardOverlayEnabled = (Platform.OS !== 'ios' &&\n optionsForTransitionConfig.presentation !== 'transparentModal') ||\n getIsModalPresentation(cardStyleInterpolator),\n } = optionsForTransitionConfig;\n\n const headerMode: StackHeaderMode =\n descriptor.options.headerMode ??\n (!(\n optionsForTransitionConfig.presentation === 'modal' ||\n optionsForTransitionConfig.presentation === 'transparentModal' ||\n nextDescriptor?.options.presentation === 'modal' ||\n nextDescriptor?.options.presentation === 'transparentModal' ||\n getIsModalPresentation(cardStyleInterpolator)\n ) &&\n Platform.OS === 'ios' &&\n descriptor.options.header === undefined\n ? 'float'\n : 'screen');\n\n const scene = {\n route,\n descriptor: {\n ...descriptor,\n options: {\n ...descriptor.options,\n animationEnabled,\n cardOverlayEnabled,\n cardStyleInterpolator,\n gestureDirection,\n gestureEnabled,\n headerStyleInterpolator,\n transitionSpec,\n headerMode,\n },\n },\n progress: {\n current: getProgressFromGesture(\n currentGesture,\n state.layout,\n descriptor\n ),\n next:\n nextGesture &&\n nextDescriptor?.options.presentation !== 'transparentModal'\n ? getProgressFromGesture(\n nextGesture,\n state.layout,\n nextDescriptor\n )\n : undefined,\n previous: previousGesture\n ? getProgressFromGesture(\n previousGesture,\n state.layout,\n previousDescriptor\n )\n : undefined,\n },\n __memo: [\n state.layout,\n descriptor,\n nextDescriptor,\n previousDescriptor,\n currentGesture,\n nextGesture,\n previousGesture,\n ],\n };\n\n if (\n oldScene &&\n scene.__memo.every((it, i) => {\n // @ts-expect-error: we haven't added __memo to the annotation to prevent usage elsewhere\n return oldScene.__memo[i] === it;\n })\n ) {\n return oldScene;\n }\n\n return scene;\n });\n\n return {\n routes: props.routes,\n scenes,\n gestures,\n descriptors: props.descriptors,\n headerHeights: getHeaderHeights(\n scenes,\n props.insets,\n props.isParentHeaderShown,\n props.isParentModal,\n state.layout,\n state.headerHeights\n ),\n };\n }\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n routes: [],\n scenes: [],\n gestures: {},\n layout: SafeAreaProviderCompat.initialMetrics.frame,\n descriptors: this.props.descriptors,\n // Used when card's header is null and mode is float to make transition\n // between screens with headers and those without headers smooth.\n // This is not a great heuristic here. We don't know synchronously\n // on mount what the header height is so we have just used the most\n // common cases here.\n headerHeights: {},\n };\n }\n\n private handleLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n const layout = { width, height };\n\n this.setState((state, props) => {\n if (height === state.layout.height && width === state.layout.width) {\n return null;\n }\n\n return {\n layout,\n headerHeights: getHeaderHeights(\n state.scenes,\n props.insets,\n props.isParentHeaderShown,\n props.isParentModal,\n layout,\n state.headerHeights\n ),\n };\n });\n };\n\n private handleHeaderLayout = ({\n route,\n height,\n }: {\n route: Route<string>;\n height: number;\n }) => {\n this.setState(({ headerHeights }) => {\n const previousHeight = headerHeights[route.key];\n\n if (previousHeight === height) {\n return null;\n }\n\n return {\n headerHeights: {\n ...headerHeights,\n [route.key]: height,\n },\n };\n });\n };\n\n private getFocusedRoute = () => {\n const { state } = this.props;\n\n return state.routes[state.index];\n };\n\n private getPreviousScene = ({ route }: { route: Route<string> }) => {\n const { getPreviousRoute } = this.props;\n const { scenes } = this.state;\n\n const previousRoute = getPreviousRoute({ route });\n\n if (previousRoute) {\n const previousScene = scenes.find(\n (scene) => scene.descriptor.route.key === previousRoute.key\n );\n\n return previousScene;\n }\n\n return undefined;\n };\n\n render() {\n const {\n insets,\n state,\n routes,\n closingRouteKeys,\n onOpenRoute,\n onCloseRoute,\n renderHeader,\n renderScene,\n isParentHeaderShown,\n isParentModal,\n onTransitionStart,\n onTransitionEnd,\n onGestureStart,\n onGestureEnd,\n onGestureCancel,\n detachInactiveScreens = Platform.OS === 'web' ||\n Platform.OS === 'android' ||\n Platform.OS === 'ios',\n } = this.props;\n\n const { scenes, layout, gestures, headerHeights } = this.state;\n\n const focusedRoute = state.routes[state.index];\n const focusedHeaderHeight = headerHeights[focusedRoute.key];\n\n const isFloatHeaderAbsolute = this.state.scenes.slice(-2).some((scene) => {\n const options = scene.descriptor.options ?? {};\n const { headerMode, headerTransparent, headerShown = true } = options;\n\n if (\n headerTransparent ||\n headerShown === false ||\n headerMode === 'screen'\n ) {\n return true;\n }\n\n return false;\n });\n\n let activeScreensLimit = 1;\n\n for (let i = scenes.length - 1; i >= 0; i--) {\n const { options } = scenes[i].descriptor;\n const {\n // By default, we don't want to detach the previous screen of the active one for modals\n detachPreviousScreen = options.presentation === 'transparentModal'\n ? false\n : getIsModalPresentation(options.cardStyleInterpolator)\n ? i !==\n scenes\n .map((scene) => scene.descriptor.options.cardStyleInterpolator)\n .lastIndexOf(forModalPresentationIOS)\n : true,\n } = options;\n\n if (detachPreviousScreen === false) {\n activeScreensLimit++;\n } else {\n // Check at least last 2 screens before stopping\n // This will make sure that screen isn't detached when another screen is animating on top of the transparent one\n // For example, (Opaque -> Transparent -> Opaque)\n if (i <= scenes.length - 2) {\n break;\n }\n }\n }\n\n const floatingHeader = (\n <React.Fragment key=\"header\">\n {renderHeader({\n mode: 'float',\n layout,\n scenes,\n getPreviousScene: this.getPreviousScene,\n getFocusedRoute: this.getFocusedRoute,\n onContentHeightChange: this.handleHeaderLayout,\n style: [\n styles.floating,\n isFloatHeaderAbsolute && [\n // Without this, the header buttons won't be touchable on Android when headerTransparent: true\n { height: focusedHeaderHeight },\n styles.absolute,\n ],\n ],\n })}\n </React.Fragment>\n );\n\n return (\n <Background>\n {isFloatHeaderAbsolute ? null : floatingHeader}\n <MaybeScreenContainer\n enabled={detachInactiveScreens}\n style={styles.container}\n onLayout={this.handleLayout}\n >\n {routes.map((route, index, self) => {\n const focused = focusedRoute.key === route.key;\n const gesture = gestures[route.key];\n const scene = scenes[index];\n\n // For the screens that shouldn't be active, the value is 0\n // For those that should be active, but are not the top screen, the value is 1\n // For those on top of the stack and with interaction enabled, the value is 2\n // For the old implementation, it stays the same it was\n let isScreenActive: Animated.AnimatedInterpolation | 2 | 1 | 0 = 1;\n\n if (index < self.length - activeScreensLimit - 1) {\n // screen should be inactive because it is too deep in the stack\n isScreenActive = STATE_INACTIVE;\n } else {\n const sceneForActivity = scenes[self.length - 1];\n const outputValue =\n index === self.length - 1\n ? STATE_ON_TOP // the screen is on top after the transition\n : index >= self.length - activeScreensLimit\n ? STATE_TRANSITIONING_OR_BELOW_TOP // the screen should stay active after the transition, it is not on top but is in activeLimit\n : STATE_INACTIVE; // the screen should be active only during the transition, it is at the edge of activeLimit\n isScreenActive = sceneForActivity\n ? sceneForActivity.progress.current.interpolate({\n inputRange: [0, 1 - EPSILON, 1],\n outputRange: [1, 1, outputValue],\n extrapolate: 'clamp',\n })\n : STATE_TRANSITIONING_OR_BELOW_TOP;\n }\n\n const {\n headerShown = true,\n headerTransparent,\n headerStyle,\n headerTintColor,\n freezeOnBlur,\n } = scene.descriptor.options;\n\n const safeAreaInsetTop = insets.top;\n const safeAreaInsetRight = insets.right;\n const safeAreaInsetBottom = insets.bottom;\n const safeAreaInsetLeft = insets.left;\n\n const headerHeight =\n headerShown !== false ? headerHeights[route.key] : 0;\n\n let headerDarkContent: boolean | undefined;\n\n if (headerShown) {\n if (typeof headerTintColor === 'string') {\n headerDarkContent = Color(headerTintColor).isDark();\n } else {\n const flattenedHeaderStyle = StyleSheet.flatten(headerStyle);\n\n if (\n flattenedHeaderStyle &&\n 'backgroundColor' in flattenedHeaderStyle &&\n typeof flattenedHeaderStyle.backgroundColor === 'string'\n ) {\n headerDarkContent = !Color(\n flattenedHeaderStyle.backgroundColor\n ).isDark();\n }\n }\n }\n\n // Start from current card and count backwards the number of cards with same interpolation\n const interpolationIndex = getInterpolationIndex(scenes, index);\n const isModal = getIsModal(\n scene,\n interpolationIndex,\n isParentModal\n );\n\n const isNextScreenTransparent =\n scenes[index + 1]?.descriptor.options.presentation ===\n 'transparentModal';\n\n const detachCurrentScreen =\n scenes[index + 1]?.descriptor.options.detachPreviousScreen !==\n false;\n\n return (\n <MaybeScreen\n key={route.key}\n style={StyleSheet.absoluteFill}\n enabled={detachInactiveScreens}\n active={isScreenActive}\n freezeOnBlur={freezeOnBlur}\n pointerEvents=\"box-none\"\n >\n <CardContainer\n index={index}\n interpolationIndex={interpolationIndex}\n modal={isModal}\n active={index === self.length - 1}\n focused={focused}\n closing={closingRouteKeys.includes(route.key)}\n layout={layout}\n gesture={gesture}\n scene={scene}\n safeAreaInsetTop={safeAreaInsetTop}\n safeAreaInsetRight={safeAreaInsetRight}\n safeAreaInsetBottom={safeAreaInsetBottom}\n safeAreaInsetLeft={safeAreaInsetLeft}\n onGestureStart={onGestureStart}\n onGestureCancel={onGestureCancel}\n onGestureEnd={onGestureEnd}\n headerHeight={headerHeight}\n isParentHeaderShown={isParentHeaderShown}\n onHeaderHeightChange={this.handleHeaderLayout}\n getPreviousScene={this.getPreviousScene}\n getFocusedRoute={this.getFocusedRoute}\n headerDarkContent={headerDarkContent}\n hasAbsoluteFloatHeader={\n isFloatHeaderAbsolute && !headerTransparent\n }\n renderHeader={renderHeader}\n renderScene={renderScene}\n onOpenRoute={onOpenRoute}\n onCloseRoute={onCloseRoute}\n onTransitionStart={onTransitionStart}\n onTransitionEnd={onTransitionEnd}\n isNextScreenTransparent={isNextScreenTransparent}\n detachCurrentScreen={detachCurrentScreen}\n />\n </MaybeScreen>\n );\n })}\n </MaybeScreenContainer>\n {isFloatHeaderAbsolute ? floatingHeader : null}\n </Background>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n absolute: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n floating: {\n zIndex: 1,\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","FALLBACK_DESCRIPTOR","Object","freeze","options","getInterpolationIndex","scenes","index","cardStyleInterpolator","descriptor","interpolationIndex","i","cardStyleInterpolatorCurrent","getIsModal","scene","isParentModal","isModalPresentation","getIsModalPresentation","isModal","getHeaderHeights","insets","isParentHeaderShown","layout","previous","reduce","acc","curr","headerStatusBarHeight","top","headerStyle","style","StyleSheet","flatten","height","route","key","getDefaultHeaderHeight","getDistanceFromOptions","presentation","gestureDirection","ModalTransition","DefaultTransition","getDistanceForDirection","getProgressFromGesture","gesture","distance","width","Math","max","interpolate","inputRange","outputRange","CardStack","React","Component","getDerivedStateFromProps","props","state","routes","descriptors","gestures","animationEnabled","Animated","Value","openingRouteKeys","includes","map","self","previousRoute","nextRoute","oldScene","currentGesture","previousGesture","undefined","nextGesture","nextDescriptor","previousDescriptor","optionsForTransitionConfig","length","defaultTransitionPreset","ModalFadeTransition","Platform","OS","gestureEnabled","transitionSpec","forNoAnimationCard","headerStyleInterpolator","cardOverlayEnabled","headerMode","header","progress","current","next","__memo","every","it","headerHeights","constructor","e","nativeEvent","setState","previousHeight","getPreviousRoute","previousScene","find","SafeAreaProviderCompat","initialMetrics","frame","render","closingRouteKeys","onOpenRoute","onCloseRoute","renderHeader","renderScene","onTransitionStart","onTransitionEnd","onGestureStart","onGestureEnd","onGestureCancel","detachInactiveScreens","focusedRoute","focusedHeaderHeight","isFloatHeaderAbsolute","slice","some","headerTransparent","headerShown","activeScreensLimit","detachPreviousScreen","lastIndexOf","forModalPresentationIOS","floatingHeader","mode","getPreviousScene","getFocusedRoute","onContentHeightChange","handleHeaderLayout","styles","floating","absolute","container","handleLayout","focused","isScreenActive","sceneForActivity","outputValue","extrapolate","headerTintColor","freezeOnBlur","safeAreaInsetTop","safeAreaInsetRight","right","safeAreaInsetBottom","bottom","safeAreaInsetLeft","left","headerHeight","headerDarkContent","Color","isDark","flattenedHeaderStyle","backgroundColor","isNextScreenTransparent","detachCurrentScreen","absoluteFill","create","flex","position","zIndex"],"sourceRoot":"../../src","sources":["CardStack.tsx"],"mappings":"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"}