@react-navigation/stack 7.2.9 → 7.2.10

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 (70) hide show
  1. package/package.json +7 -5
  2. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +0 -407
  3. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +0 -1
  4. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js +0 -271
  5. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +0 -1
  6. package/lib/commonjs/TransitionConfigs/TransitionPresets.js +0 -156
  7. package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +0 -1
  8. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +0 -128
  9. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +0 -1
  10. package/lib/commonjs/index.js +0 -68
  11. package/lib/commonjs/index.js.map +0 -1
  12. package/lib/commonjs/navigators/createStackNavigator.js +0 -75
  13. package/lib/commonjs/navigators/createStackNavigator.js.map +0 -1
  14. package/lib/commonjs/package.json +0 -1
  15. package/lib/commonjs/types.js +0 -6
  16. package/lib/commonjs/types.js.map +0 -1
  17. package/lib/commonjs/utils/CardAnimationContext.js +0 -11
  18. package/lib/commonjs/utils/CardAnimationContext.js.map +0 -1
  19. package/lib/commonjs/utils/GestureHandlerRefContext.js +0 -11
  20. package/lib/commonjs/utils/GestureHandlerRefContext.js.map +0 -1
  21. package/lib/commonjs/utils/ModalPresentationContext.js +0 -11
  22. package/lib/commonjs/utils/ModalPresentationContext.js.map +0 -1
  23. package/lib/commonjs/utils/conditional.js +0 -32
  24. package/lib/commonjs/utils/conditional.js.map +0 -1
  25. package/lib/commonjs/utils/findLastIndex.js +0 -15
  26. package/lib/commonjs/utils/findLastIndex.js.map +0 -1
  27. package/lib/commonjs/utils/getDistanceForDirection.js +0 -19
  28. package/lib/commonjs/utils/getDistanceForDirection.js.map +0 -1
  29. package/lib/commonjs/utils/getInvertedMultiplier.js +0 -19
  30. package/lib/commonjs/utils/getInvertedMultiplier.js.map +0 -1
  31. package/lib/commonjs/utils/getModalRoutesKeys.js +0 -17
  32. package/lib/commonjs/utils/getModalRoutesKeys.js.map +0 -1
  33. package/lib/commonjs/utils/getShadowStyle.js +0 -29
  34. package/lib/commonjs/utils/getShadowStyle.js.map +0 -1
  35. package/lib/commonjs/utils/memoize.js +0 -33
  36. package/lib/commonjs/utils/memoize.js.map +0 -1
  37. package/lib/commonjs/utils/throttle.js +0 -18
  38. package/lib/commonjs/utils/throttle.js.map +0 -1
  39. package/lib/commonjs/utils/useCardAnimation.js +0 -18
  40. package/lib/commonjs/utils/useCardAnimation.js.map +0 -1
  41. package/lib/commonjs/utils/useGestureHandlerRef.js +0 -18
  42. package/lib/commonjs/utils/useGestureHandlerRef.js.map +0 -1
  43. package/lib/commonjs/utils/useKeyboardManager.js +0 -96
  44. package/lib/commonjs/utils/useKeyboardManager.js.map +0 -1
  45. package/lib/commonjs/views/GestureHandler.android.js +0 -17
  46. package/lib/commonjs/views/GestureHandler.android.js.map +0 -1
  47. package/lib/commonjs/views/GestureHandler.ios.js +0 -17
  48. package/lib/commonjs/views/GestureHandler.ios.js.map +0 -1
  49. package/lib/commonjs/views/GestureHandler.js +0 -27
  50. package/lib/commonjs/views/GestureHandler.js.map +0 -1
  51. package/lib/commonjs/views/GestureHandlerNative.js +0 -35
  52. package/lib/commonjs/views/GestureHandlerNative.js.map +0 -1
  53. package/lib/commonjs/views/Header/Header.js +0 -62
  54. package/lib/commonjs/views/Header/Header.js.map +0 -1
  55. package/lib/commonjs/views/Header/HeaderContainer.js +0 -135
  56. package/lib/commonjs/views/Header/HeaderContainer.js.map +0 -1
  57. package/lib/commonjs/views/Header/HeaderSegment.js +0 -149
  58. package/lib/commonjs/views/Header/HeaderSegment.js.map +0 -1
  59. package/lib/commonjs/views/Screens.js +0 -50
  60. package/lib/commonjs/views/Screens.js.map +0 -1
  61. package/lib/commonjs/views/Stack/Card.js +0 -496
  62. package/lib/commonjs/views/Stack/Card.js.map +0 -1
  63. package/lib/commonjs/views/Stack/CardContainer.js +0 -282
  64. package/lib/commonjs/views/Stack/CardContainer.js.map +0 -1
  65. package/lib/commonjs/views/Stack/CardSheet.js +0 -88
  66. package/lib/commonjs/views/Stack/CardSheet.js.map +0 -1
  67. package/lib/commonjs/views/Stack/CardStack.js +0 -484
  68. package/lib/commonjs/views/Stack/CardStack.js.map +0 -1
  69. package/lib/commonjs/views/Stack/StackView.js +0 -346
  70. package/lib/commonjs/views/Stack/StackView.js.map +0 -1
@@ -1,484 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CardStack = void 0;
7
- var _elements = require("@react-navigation/elements");
8
- var React = _interopRequireWildcard(require("react"));
9
- var _reactNative = require("react-native");
10
- var _CardStyleInterpolators = require("../../TransitionConfigs/CardStyleInterpolators.js");
11
- var _TransitionPresets = require("../../TransitionConfigs/TransitionPresets.js");
12
- var _findLastIndex = require("../../utils/findLastIndex.js");
13
- var _getDistanceForDirection = require("../../utils/getDistanceForDirection.js");
14
- var _getModalRoutesKeys = require("../../utils/getModalRoutesKeys.js");
15
- var _Screens = require("../Screens.js");
16
- var _CardContainer = require("./CardContainer.js");
17
- var _jsxRuntime = require("react/jsx-runtime");
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
- const NAMED_TRANSITIONS_PRESETS = {
21
- default: _TransitionPresets.DefaultTransition,
22
- fade: _TransitionPresets.ModalFadeTransition,
23
- fade_from_bottom: _TransitionPresets.FadeFromBottomAndroid,
24
- fade_from_right: _TransitionPresets.FadeFromRightAndroid,
25
- none: _TransitionPresets.DefaultTransition,
26
- reveal_from_bottom: _TransitionPresets.RevealFromBottomAndroid,
27
- scale_from_center: _TransitionPresets.ScaleFromCenterAndroid,
28
- slide_from_left: _TransitionPresets.SlideFromLeftIOS,
29
- slide_from_right: _TransitionPresets.SlideFromRightIOS,
30
- slide_from_bottom: _reactNative.Platform.select({
31
- ios: _TransitionPresets.ModalSlideFromBottomIOS,
32
- default: _TransitionPresets.BottomSheetAndroid
33
- })
34
- };
35
- const EPSILON = 1e-5;
36
- const STATE_INACTIVE = 0;
37
- const STATE_TRANSITIONING_OR_BELOW_TOP = 1;
38
- const STATE_ON_TOP = 2;
39
- const FALLBACK_DESCRIPTOR = Object.freeze({
40
- options: {}
41
- });
42
- const getInterpolationIndex = (scenes, index) => {
43
- const {
44
- cardStyleInterpolator
45
- } = scenes[index].descriptor.options;
46
-
47
- // Start from current card and count backwards the number of cards with same interpolation
48
- let interpolationIndex = 0;
49
- for (let i = index - 1; i >= 0; i--) {
50
- const cardStyleInterpolatorCurrent = scenes[i]?.descriptor.options.cardStyleInterpolator;
51
- if (cardStyleInterpolatorCurrent !== cardStyleInterpolator) {
52
- break;
53
- }
54
- interpolationIndex++;
55
- }
56
- return interpolationIndex;
57
- };
58
- const getIsModalPresentation = cardStyleInterpolator => {
59
- return cardStyleInterpolator === _CardStyleInterpolators.forModalPresentationIOS ||
60
- // Handle custom modal presentation interpolators as well
61
- cardStyleInterpolator.name === 'forModalPresentationIOS';
62
- };
63
- const getIsModal = (scene, interpolationIndex, isParentModal) => {
64
- if (isParentModal) {
65
- return true;
66
- }
67
- const {
68
- cardStyleInterpolator
69
- } = scene.descriptor.options;
70
- const isModalPresentation = getIsModalPresentation(cardStyleInterpolator);
71
- const isModal = isModalPresentation && interpolationIndex !== 0;
72
- return isModal;
73
- };
74
- const getHeaderHeights = (scenes, insets, isParentHeaderShown, isParentModal, layout, previous) => {
75
- return scenes.reduce((acc, curr, index) => {
76
- const {
77
- headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,
78
- headerStyle
79
- } = curr.descriptor.options;
80
- const style = _reactNative.StyleSheet.flatten(headerStyle || {});
81
- const height = 'height' in style && typeof style.height === 'number' ? style.height : previous[curr.route.key];
82
- const interpolationIndex = getInterpolationIndex(scenes, index);
83
- const isModal = getIsModal(curr, interpolationIndex, isParentModal);
84
- acc[curr.route.key] = typeof height === 'number' ? height : (0, _elements.getDefaultHeaderHeight)(layout, isModal, headerStatusBarHeight);
85
- return acc;
86
- }, {});
87
- };
88
- const getDistanceFromOptions = (layout, descriptor, isRTL) => {
89
- if (descriptor?.options.gestureDirection) {
90
- return (0, _getDistanceForDirection.getDistanceForDirection)(layout, descriptor?.options.gestureDirection, isRTL);
91
- }
92
- const defaultGestureDirection = descriptor?.options.presentation === 'modal' ? _TransitionPresets.ModalTransition.gestureDirection : _TransitionPresets.DefaultTransition.gestureDirection;
93
- const gestureDirection = descriptor?.options.animation ? NAMED_TRANSITIONS_PRESETS[descriptor?.options.animation]?.gestureDirection : defaultGestureDirection;
94
- return (0, _getDistanceForDirection.getDistanceForDirection)(layout, gestureDirection, isRTL);
95
- };
96
- const getProgressFromGesture = (gesture, layout, descriptor, isRTL) => {
97
- const distance = getDistanceFromOptions({
98
- // Make sure that we have a non-zero distance, otherwise there will be incorrect progress
99
- // This causes blank screen on web if it was previously inside container with display: none
100
- width: Math.max(1, layout.width),
101
- height: Math.max(1, layout.height)
102
- }, descriptor, isRTL);
103
- if (distance > 0) {
104
- return gesture.interpolate({
105
- inputRange: [0, distance],
106
- outputRange: [1, 0]
107
- });
108
- }
109
- return gesture.interpolate({
110
- inputRange: [distance, 0],
111
- outputRange: [0, 1]
112
- });
113
- };
114
- class CardStack extends React.Component {
115
- static getDerivedStateFromProps(props, state) {
116
- if (props.routes === state.routes && props.descriptors === state.descriptors) {
117
- return null;
118
- }
119
- const gestures = [...props.routes, ...props.state.preloadedRoutes].reduce((acc, curr) => {
120
- const descriptor = props.descriptors[curr.key] || props.preloadedDescriptors[curr.key];
121
- const {
122
- animation
123
- } = descriptor?.options || {};
124
- acc[curr.key] = state.gestures[curr.key] || new _reactNative.Animated.Value(props.openingRouteKeys.includes(curr.key) && animation !== 'none' || props.state.preloadedRoutes.includes(curr) ? getDistanceFromOptions(state.layout, descriptor, props.direction === 'rtl') : 0);
125
- return acc;
126
- }, {});
127
- const modalRouteKeys = (0, _getModalRoutesKeys.getModalRouteKeys)([...props.routes, ...props.state.preloadedRoutes], {
128
- ...props.descriptors,
129
- ...props.preloadedDescriptors
130
- });
131
- const scenes = [...props.routes, ...props.state.preloadedRoutes].map((route, index, self) => {
132
- // For preloaded screens, we don't care about the previous and the next screen
133
- const isPreloaded = props.state.preloadedRoutes.includes(route);
134
- const previousRoute = isPreloaded ? undefined : self[index - 1];
135
- const nextRoute = isPreloaded ? undefined : self[index + 1];
136
- const oldScene = state.scenes[index];
137
- const currentGesture = gestures[route.key];
138
- const previousGesture = previousRoute ? gestures[previousRoute.key] : undefined;
139
- const nextGesture = nextRoute ? gestures[nextRoute.key] : undefined;
140
- const descriptor = (isPreloaded ? props.preloadedDescriptors : props.descriptors)[route.key] || state.descriptors[route.key] || (oldScene ? oldScene.descriptor : FALLBACK_DESCRIPTOR);
141
- const nextDescriptor = nextRoute && (props.descriptors[nextRoute?.key] || state.descriptors[nextRoute?.key]);
142
- const previousDescriptor = previousRoute && (props.descriptors[previousRoute?.key] || state.descriptors[previousRoute?.key]);
143
-
144
- // When a screen is not the last, it should use next screen's transition config
145
- // Many transitions also animate the previous screen, so using 2 different transitions doesn't look right
146
- // For example combining a slide and a modal transition would look wrong otherwise
147
- // With this approach, combining different transition styles in the same navigator mostly looks right
148
- // This will still be broken when 2 transitions have different idle state (e.g. modal presentation),
149
- // but the majority of the transitions look alright
150
- const optionsForTransitionConfig = index !== self.length - 1 && nextDescriptor && nextDescriptor.options.presentation !== 'transparentModal' ? nextDescriptor.options : descriptor.options;
151
-
152
- // Assume modal if there are already modal screens in the stack
153
- // or current screen is a modal when no presentation is specified
154
- const isModal = modalRouteKeys.includes(route.key);
155
-
156
- // Disable screen transition animation by default on web, windows and macos to match the native behavior
157
- const excludedPlatforms = _reactNative.Platform.OS !== 'web' && _reactNative.Platform.OS !== 'windows' && _reactNative.Platform.OS !== 'macos';
158
- const animation = optionsForTransitionConfig.animation ?? (excludedPlatforms ? 'default' : 'none');
159
- const isAnimationEnabled = animation !== 'none';
160
- const transitionPreset = animation !== 'default' ? NAMED_TRANSITIONS_PRESETS[animation] : isModal || optionsForTransitionConfig.presentation === 'modal' ? _TransitionPresets.ModalTransition : optionsForTransitionConfig.presentation === 'transparentModal' ? _TransitionPresets.ModalFadeTransition : _TransitionPresets.DefaultTransition;
161
- const {
162
- gestureEnabled = _reactNative.Platform.OS === 'ios' && isAnimationEnabled,
163
- gestureDirection = transitionPreset.gestureDirection,
164
- transitionSpec = transitionPreset.transitionSpec,
165
- cardStyleInterpolator = isAnimationEnabled ? transitionPreset.cardStyleInterpolator : _CardStyleInterpolators.forNoAnimation,
166
- headerStyleInterpolator = transitionPreset.headerStyleInterpolator,
167
- cardOverlayEnabled = _reactNative.Platform.OS !== 'ios' && optionsForTransitionConfig.presentation !== 'transparentModal' || getIsModalPresentation(cardStyleInterpolator)
168
- } = optionsForTransitionConfig;
169
- const headerMode = descriptor.options.headerMode ?? (!(optionsForTransitionConfig.presentation === 'modal' || optionsForTransitionConfig.presentation === 'transparentModal' || nextDescriptor?.options.presentation === 'modal' || nextDescriptor?.options.presentation === 'transparentModal' || getIsModalPresentation(cardStyleInterpolator)) && _reactNative.Platform.OS === 'ios' && descriptor.options.header === undefined ? 'float' : 'screen');
170
- const isRTL = props.direction === 'rtl';
171
- const scene = {
172
- route,
173
- descriptor: {
174
- ...descriptor,
175
- options: {
176
- ...descriptor.options,
177
- animation,
178
- cardOverlayEnabled,
179
- cardStyleInterpolator,
180
- gestureDirection,
181
- gestureEnabled,
182
- headerStyleInterpolator,
183
- transitionSpec,
184
- headerMode
185
- }
186
- },
187
- progress: {
188
- current: getProgressFromGesture(currentGesture, state.layout, descriptor, isRTL),
189
- next: nextGesture && nextDescriptor?.options.presentation !== 'transparentModal' ? getProgressFromGesture(nextGesture, state.layout, nextDescriptor, isRTL) : undefined,
190
- previous: previousGesture ? getProgressFromGesture(previousGesture, state.layout, previousDescriptor, isRTL) : undefined
191
- },
192
- __memo: [state.layout, descriptor, nextDescriptor, previousDescriptor, currentGesture, nextGesture, previousGesture]
193
- };
194
- if (oldScene && scene.__memo.every((it, i) => {
195
- // @ts-expect-error: we haven't added __memo to the annotation to prevent usage elsewhere
196
- return oldScene.__memo[i] === it;
197
- })) {
198
- return oldScene;
199
- }
200
- return scene;
201
- });
202
- return {
203
- routes: props.routes,
204
- scenes,
205
- gestures,
206
- descriptors: props.descriptors,
207
- headerHeights: getHeaderHeights(scenes, props.insets, props.isParentHeaderShown, props.isParentModal, state.layout, state.headerHeights)
208
- };
209
- }
210
- constructor(props) {
211
- super(props);
212
- this.state = {
213
- routes: [],
214
- scenes: [],
215
- gestures: {},
216
- layout: _elements.SafeAreaProviderCompat.initialMetrics.frame,
217
- descriptors: this.props.descriptors,
218
- // Used when card's header is null and mode is float to make transition
219
- // between screens with headers and those without headers smooth.
220
- // This is not a great heuristic here. We don't know synchronously
221
- // on mount what the header height is so we have just used the most
222
- // common cases here.
223
- headerHeights: {}
224
- };
225
- }
226
- handleLayout = e => {
227
- const {
228
- height,
229
- width
230
- } = e.nativeEvent.layout;
231
- const layout = {
232
- width,
233
- height
234
- };
235
- this.setState((state, props) => {
236
- if (height === state.layout.height && width === state.layout.width) {
237
- return null;
238
- }
239
- return {
240
- layout,
241
- headerHeights: getHeaderHeights(state.scenes, props.insets, props.isParentHeaderShown, props.isParentModal, layout, state.headerHeights)
242
- };
243
- });
244
- };
245
- handleHeaderLayout = ({
246
- route,
247
- height
248
- }) => {
249
- this.setState(({
250
- headerHeights
251
- }) => {
252
- const previousHeight = headerHeights[route.key];
253
- if (previousHeight === height) {
254
- return null;
255
- }
256
- return {
257
- headerHeights: {
258
- ...headerHeights,
259
- [route.key]: height
260
- }
261
- };
262
- });
263
- };
264
- getFocusedRoute = () => {
265
- const {
266
- state
267
- } = this.props;
268
- return state.routes[state.index];
269
- };
270
- getPreviousScene = ({
271
- route
272
- }) => {
273
- const {
274
- getPreviousRoute
275
- } = this.props;
276
- const {
277
- scenes
278
- } = this.state;
279
- const previousRoute = getPreviousRoute({
280
- route
281
- });
282
- if (previousRoute) {
283
- const previousScene = scenes.find(scene => scene.descriptor.route.key === previousRoute.key);
284
- return previousScene;
285
- }
286
- return undefined;
287
- };
288
- render() {
289
- const {
290
- insets,
291
- state,
292
- routes,
293
- openingRouteKeys,
294
- closingRouteKeys,
295
- onOpenRoute,
296
- onCloseRoute,
297
- renderHeader,
298
- isParentHeaderShown,
299
- isParentModal,
300
- onTransitionStart,
301
- onTransitionEnd,
302
- onGestureStart,
303
- onGestureEnd,
304
- onGestureCancel,
305
- detachInactiveScreens = _reactNative.Platform.OS === 'web' || _reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'ios'
306
- } = this.props;
307
- const {
308
- scenes,
309
- layout,
310
- gestures,
311
- headerHeights
312
- } = this.state;
313
- const focusedRoute = state.routes[state.index];
314
- const focusedHeaderHeight = headerHeights[focusedRoute.key];
315
- const isFloatHeaderAbsolute = this.state.scenes.slice(-2).some(scene => {
316
- const options = scene.descriptor.options ?? {};
317
- const {
318
- headerMode,
319
- headerTransparent,
320
- headerShown = true
321
- } = options;
322
- if (headerTransparent || headerShown === false || headerMode === 'screen') {
323
- return true;
324
- }
325
- return false;
326
- });
327
- let activeScreensLimit = 1;
328
- for (let i = scenes.length - 1; i >= 0; i--) {
329
- const {
330
- options
331
- } = scenes[i].descriptor;
332
- const {
333
- // By default, we don't want to detach the previous screen of the active one for modals
334
- detachPreviousScreen = options.presentation === 'transparentModal' ? false : getIsModalPresentation(options.cardStyleInterpolator) ? i !== (0, _findLastIndex.findLastIndex)(scenes, scene => {
335
- const {
336
- cardStyleInterpolator
337
- } = scene.descriptor.options;
338
- return cardStyleInterpolator === _CardStyleInterpolators.forModalPresentationIOS || cardStyleInterpolator?.name === 'forModalPresentationIOS';
339
- }) : true
340
- } = options;
341
- if (detachPreviousScreen === false) {
342
- activeScreensLimit++;
343
- } else {
344
- // Check at least last 2 screens before stopping
345
- // This will make sure that screen isn't detached when another screen is animating on top of the transparent one
346
- // For example, (Opaque -> Transparent -> Opaque)
347
- if (i <= scenes.length - 2) {
348
- break;
349
- }
350
- }
351
- }
352
- const floatingHeader = /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
353
- children: renderHeader({
354
- mode: 'float',
355
- layout,
356
- scenes,
357
- getPreviousScene: this.getPreviousScene,
358
- getFocusedRoute: this.getFocusedRoute,
359
- onContentHeightChange: this.handleHeaderLayout,
360
- style: [styles.floating, isFloatHeaderAbsolute && [
361
- // Without this, the header buttons won't be touchable on Android when headerTransparent: true
362
- {
363
- height: focusedHeaderHeight
364
- }, styles.absolute]]
365
- })
366
- }, "header");
367
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
368
- style: styles.container,
369
- children: [isFloatHeaderAbsolute ? null : floatingHeader, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Screens.MaybeScreenContainer, {
370
- enabled: detachInactiveScreens,
371
- style: styles.container,
372
- onLayout: this.handleLayout,
373
- children: [...routes, ...state.preloadedRoutes].map((route, index) => {
374
- const focused = focusedRoute.key === route.key;
375
- const gesture = gestures[route.key];
376
- const scene = scenes[index];
377
- // It is possible that for a short period the route appears in both arrays.
378
- // Particularly, if the screen is removed with `retain`, then it needs a moment to execute the animation.
379
- // However, due to the router action, it immediately populates the `preloadedRoutes` array.
380
- // Practically, the logic below takes care that it is rendered only once.
381
- const isPreloaded = state.preloadedRoutes.includes(route) && !routes.includes(route);
382
- if (state.preloadedRoutes.includes(route) && routes.includes(route) && index >= routes.length) {
383
- return null;
384
- }
385
-
386
- // For the screens that shouldn't be active, the value is 0
387
- // For those that should be active, but are not the top screen, the value is 1
388
- // For those on top of the stack and with interaction enabled, the value is 2
389
- // For the old implementation, it stays the same it was
390
- let isScreenActive = 1;
391
- if (index < routes.length - activeScreensLimit - 1 || isPreloaded) {
392
- // screen should be inactive because it is too deep in the stack
393
- isScreenActive = STATE_INACTIVE;
394
- } else {
395
- const sceneForActivity = scenes[routes.length - 1];
396
- const outputValue = index === routes.length - 1 ? STATE_ON_TOP // the screen is on top after the transition
397
- : index >= routes.length - activeScreensLimit ? STATE_TRANSITIONING_OR_BELOW_TOP // the screen should stay active after the transition, it is not on top but is in activeLimit
398
- : STATE_INACTIVE; // the screen should be active only during the transition, it is at the edge of activeLimit
399
- isScreenActive = sceneForActivity ? sceneForActivity.progress.current.interpolate({
400
- inputRange: [0, 1 - EPSILON, 1],
401
- outputRange: [1, 1, outputValue],
402
- extrapolate: 'clamp'
403
- }) : STATE_TRANSITIONING_OR_BELOW_TOP;
404
- }
405
- const {
406
- headerShown = true,
407
- headerTransparent,
408
- freezeOnBlur,
409
- autoHideHomeIndicator
410
- } = scene.descriptor.options;
411
- const safeAreaInsetTop = insets.top;
412
- const safeAreaInsetRight = insets.right;
413
- const safeAreaInsetBottom = insets.bottom;
414
- const safeAreaInsetLeft = insets.left;
415
- const headerHeight = headerShown !== false ? headerHeights[route.key] : 0;
416
-
417
- // Start from current card and count backwards the number of cards with same interpolation
418
- const interpolationIndex = getInterpolationIndex(scenes, index);
419
- const isModal = getIsModal(scene, interpolationIndex, isParentModal);
420
- const isNextScreenTransparent = scenes[index + 1]?.descriptor.options.presentation === 'transparentModal';
421
- const detachCurrentScreen = scenes[index + 1]?.descriptor.options.detachPreviousScreen !== false;
422
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Screens.MaybeScreen, {
423
- style: [_reactNative.StyleSheet.absoluteFill],
424
- enabled: detachInactiveScreens,
425
- active: isScreenActive,
426
- freezeOnBlur: freezeOnBlur,
427
- shouldFreeze: isScreenActive === STATE_INACTIVE && !isPreloaded,
428
- homeIndicatorHidden: autoHideHomeIndicator,
429
- pointerEvents: "box-none",
430
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardContainer.CardContainer, {
431
- index: index,
432
- interpolationIndex: interpolationIndex,
433
- modal: isModal,
434
- active: index === routes.length - 1,
435
- focused: focused,
436
- opening: openingRouteKeys.includes(route.key),
437
- closing: closingRouteKeys.includes(route.key),
438
- layout: layout,
439
- gesture: gesture,
440
- scene: scene,
441
- safeAreaInsetTop: safeAreaInsetTop,
442
- safeAreaInsetRight: safeAreaInsetRight,
443
- safeAreaInsetBottom: safeAreaInsetBottom,
444
- safeAreaInsetLeft: safeAreaInsetLeft,
445
- onGestureStart: onGestureStart,
446
- onGestureCancel: onGestureCancel,
447
- onGestureEnd: onGestureEnd,
448
- headerHeight: headerHeight,
449
- isParentHeaderShown: isParentHeaderShown,
450
- onHeaderHeightChange: this.handleHeaderLayout,
451
- getPreviousScene: this.getPreviousScene,
452
- getFocusedRoute: this.getFocusedRoute,
453
- hasAbsoluteFloatHeader: isFloatHeaderAbsolute && !headerTransparent,
454
- renderHeader: renderHeader,
455
- onOpenRoute: onOpenRoute,
456
- onCloseRoute: onCloseRoute,
457
- onTransitionStart: onTransitionStart,
458
- onTransitionEnd: onTransitionEnd,
459
- isNextScreenTransparent: isNextScreenTransparent,
460
- detachCurrentScreen: detachCurrentScreen,
461
- preloaded: isPreloaded
462
- })
463
- }, route.key);
464
- })
465
- }), isFloatHeaderAbsolute ? floatingHeader : null]
466
- });
467
- }
468
- }
469
- exports.CardStack = CardStack;
470
- const styles = _reactNative.StyleSheet.create({
471
- container: {
472
- flex: 1
473
- },
474
- absolute: {
475
- position: 'absolute',
476
- top: 0,
477
- start: 0,
478
- end: 0
479
- },
480
- floating: {
481
- zIndex: 1
482
- }
483
- });
484
- //# sourceMappingURL=CardStack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_elements","require","React","_interopRequireWildcard","_reactNative","_CardStyleInterpolators","_TransitionPresets","_findLastIndex","_getDistanceForDirection","_getModalRoutesKeys","_Screens","_CardContainer","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NAMED_TRANSITIONS_PRESETS","DefaultTransition","fade","ModalFadeTransition","fade_from_bottom","FadeFromBottomAndroid","fade_from_right","FadeFromRightAndroid","none","reveal_from_bottom","RevealFromBottomAndroid","scale_from_center","ScaleFromCenterAndroid","slide_from_left","SlideFromLeftIOS","slide_from_right","SlideFromRightIOS","slide_from_bottom","Platform","select","ios","ModalSlideFromBottomIOS","BottomSheetAndroid","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","FALLBACK_DESCRIPTOR","freeze","options","getInterpolationIndex","scenes","index","cardStyleInterpolator","descriptor","interpolationIndex","cardStyleInterpolatorCurrent","getIsModalPresentation","forModalPresentationIOS","name","getIsModal","scene","isParentModal","isModalPresentation","isModal","getHeaderHeights","insets","isParentHeaderShown","layout","previous","reduce","acc","curr","headerStatusBarHeight","top","headerStyle","style","StyleSheet","flatten","height","route","key","getDefaultHeaderHeight","getDistanceFromOptions","isRTL","gestureDirection","getDistanceForDirection","defaultGestureDirection","presentation","ModalTransition","animation","getProgressFromGesture","gesture","distance","width","Math","max","interpolate","inputRange","outputRange","CardStack","Component","getDerivedStateFromProps","props","state","routes","descriptors","gestures","preloadedRoutes","preloadedDescriptors","Animated","Value","openingRouteKeys","includes","direction","modalRouteKeys","getModalRouteKeys","map","self","isPreloaded","previousRoute","undefined","nextRoute","oldScene","currentGesture","previousGesture","nextGesture","nextDescriptor","previousDescriptor","optionsForTransitionConfig","length","excludedPlatforms","OS","isAnimationEnabled","transitionPreset","gestureEnabled","transitionSpec","forNoAnimationCard","headerStyleInterpolator","cardOverlayEnabled","headerMode","header","progress","current","next","__memo","every","it","headerHeights","constructor","SafeAreaProviderCompat","initialMetrics","frame","handleLayout","nativeEvent","setState","handleHeaderLayout","previousHeight","getFocusedRoute","getPreviousScene","getPreviousRoute","previousScene","find","render","closingRouteKeys","onOpenRoute","onCloseRoute","renderHeader","onTransitionStart","onTransitionEnd","onGestureStart","onGestureEnd","onGestureCancel","detachInactiveScreens","focusedRoute","focusedHeaderHeight","isFloatHeaderAbsolute","slice","some","headerTransparent","headerShown","activeScreensLimit","detachPreviousScreen","findLastIndex","floatingHeader","jsx","Fragment","children","mode","onContentHeightChange","styles","floating","absolute","jsxs","View","container","MaybeScreenContainer","enabled","onLayout","focused","isScreenActive","sceneForActivity","outputValue","extrapolate","freezeOnBlur","autoHideHomeIndicator","safeAreaInsetTop","safeAreaInsetRight","right","safeAreaInsetBottom","bottom","safeAreaInsetLeft","left","headerHeight","isNextScreenTransparent","detachCurrentScreen","MaybeScreen","absoluteFill","active","shouldFreeze","homeIndicatorHidden","pointerEvents","CardContainer","modal","opening","closing","onHeaderHeightChange","hasAbsoluteFloatHeader","preloaded","exports","create","flex","position","start","end","zIndex"],"sourceRoot":"../../../../src","sources":["views/Stack/CardStack.tsx"],"mappings":"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","ignoreList":[]}