@react-navigation/stack 8.0.0-alpha.2 → 8.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/utils/useCardAnimation.js +1 -1
- package/lib/module/utils/useCardAnimation.js.map +1 -1
- package/lib/module/utils/useGestureHandlerRef.js +1 -1
- package/lib/module/utils/useGestureHandlerRef.js.map +1 -1
- package/lib/module/utils/useKeyboardManager.js +50 -26
- package/lib/module/utils/useKeyboardManager.js.map +1 -1
- package/lib/module/views/Header/Header.js +2 -2
- package/lib/module/views/Header/Header.js.map +1 -1
- package/lib/module/views/Header/HeaderContainer.js +8 -4
- package/lib/module/views/Header/HeaderContainer.js.map +1 -1
- package/lib/module/views/Header/HeaderSegment.js +2 -2
- package/lib/module/views/Header/HeaderSegment.js.map +1 -1
- package/lib/module/views/Stack/Card.js +25 -20
- package/lib/module/views/Stack/Card.js.map +1 -1
- package/lib/module/views/Stack/CardA11yWrapper.js +1 -2
- package/lib/module/views/Stack/CardA11yWrapper.js.map +1 -1
- package/lib/module/views/Stack/CardContainer.js +17 -19
- package/lib/module/views/Stack/CardContainer.js.map +1 -1
- package/lib/module/views/Stack/CardStack.js +72 -117
- package/lib/module/views/Stack/CardStack.js.map +1 -1
- package/lib/module/views/Stack/StackView.js +59 -23
- package/lib/module/views/Stack/StackView.js.map +1 -1
- package/lib/typescript/src/types.d.ts +46 -47
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/gestureActivationCriteria.d.ts +1 -1
- package/lib/typescript/src/utils/gestureActivationCriteria.d.ts.map +1 -1
- package/lib/typescript/src/utils/useKeyboardManager.d.ts +9 -2
- package/lib/typescript/src/utils/useKeyboardManager.d.ts.map +1 -1
- package/lib/typescript/src/views/Header/Header.d.ts +1 -1
- package/lib/typescript/src/views/Header/Header.d.ts.map +1 -1
- package/lib/typescript/src/views/Header/HeaderContainer.d.ts.map +1 -1
- package/lib/typescript/src/views/Header/HeaderSegment.d.ts +2 -2
- package/lib/typescript/src/views/Header/HeaderSegment.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/Card.d.ts +3 -3
- package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/CardA11yWrapper.d.ts +0 -1
- package/lib/typescript/src/views/Stack/CardA11yWrapper.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/CardContainer.d.ts +2 -2
- package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/CardStack.d.ts +1 -1
- package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/StackView.d.ts +6 -6
- package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -1
- package/package.json +16 -16
- package/src/types.tsx +73 -67
- package/src/utils/gestureActivationCriteria.tsx +1 -1
- package/src/utils/useCardAnimation.tsx +1 -1
- package/src/utils/useGestureHandlerRef.tsx +1 -1
- package/src/utils/useKeyboardManager.tsx +67 -33
- package/src/views/Header/Header.tsx +2 -2
- package/src/views/Header/HeaderContainer.tsx +8 -3
- package/src/views/Header/HeaderSegment.tsx +4 -4
- package/src/views/Stack/Card.tsx +32 -23
- package/src/views/Stack/CardA11yWrapper.tsx +2 -14
- package/src/views/Stack/CardContainer.tsx +9 -21
- package/src/views/Stack/CardStack.tsx +102 -155
- package/src/views/Stack/StackView.tsx +106 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","useLinkBuilder","useLocale","useTheme","React","StyleSheet","View","ModalPresentationContext","useKeyboardManager","Card","CardA11yWrapper","jsx","_jsx","jsxs","_jsxs","EPSILON","CardContainerInner","interpolationIndex","index","active","opening","closing","gesture","focused","modal","getPreviousScene","getFocusedRoute","hasAbsoluteFloatHeader","headerHeight","onHeaderHeightChange","isParentHeaderShown","isNextScreenTransparent","
|
|
1
|
+
{"version":3,"names":["getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","useLinkBuilder","useLocale","useTheme","React","StyleSheet","View","ModalPresentationContext","useKeyboardManager","Card","CardA11yWrapper","jsx","_jsx","jsxs","_jsxs","EPSILON","CardContainerInner","interpolationIndex","index","active","opening","closing","gesture","focused","modal","getPreviousScene","getFocusedRoute","hasAbsoluteFloatHeader","headerHeight","onHeaderHeightChange","isParentHeaderShown","isNextScreenTransparent","layout","onCloseRoute","onOpenRoute","onGestureCancel","onGestureEnd","onGestureStart","onTransitionEnd","onTransitionStart","preloaded","renderHeader","safeAreaInsetBottom","safeAreaInsetLeft","safeAreaInsetRight","safeAreaInsetTop","scene","children","wrapperRef","useRef","direction","parentHeaderHeight","use","options","descriptor","enabled","keyboardHandlingEnabled","onPageChangeStart","onPageChangeCancel","onPageChangeConfirm","handleOpen","route","handleClose","handleGestureBegin","handleGestureCanceled","handleGestureEnd","handleTransition","current","setInert","insets","top","right","bottom","left","colors","useEffect","listener","progress","next","addListener","value","removeListener","presentation","animation","cardOverlay","cardOverlayEnabled","cardShadowEnabled","cardStyle","cardStyleInterpolator","gestureDirection","gestureEnabled","gestureResponseDistance","gestureVelocityImpact","headerMode","headerShown","transitionSpec","buildHref","previousScene","backTitle","href","name","params","canGoBack","headerBack","useMemo","title","undefined","animated","ref","onOpen","onClose","overlay","overlayEnabled","shadowEnabled","onTransition","onGestureBegin","onGestureCanceled","styleInterpolator","pageOverflowEnabled","containerStyle","marginTop","contentStyle","backgroundColor","background","style","styles","container","Provider","mode","scenes","onContentHeightChange","header","CardContainer","memo","create","flex","zIndex"],"sourceRoot":"../../../../src","sources":["views/Stack/CardContainer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { getDefaultHeaderHeight } from '@react-navigation/elements';
|
|
4
|
-
import { SafeAreaProviderCompat } from '@react-navigation/elements/internal';
|
|
4
|
+
import { ActivityView, SafeAreaProviderCompat } from '@react-navigation/elements/internal';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { Animated, Platform, StyleSheet, View } from 'react-native';
|
|
7
|
-
import { Screen, ScreenContainer } from 'react-native-screens';
|
|
8
7
|
import { forModalPresentationIOS, forNoAnimation as forNoAnimationCard } from "../../TransitionConfigs/CardStyleInterpolators.js";
|
|
9
8
|
import { BottomSheetAndroid, DefaultTransition, FadeFromBottomAndroid, FadeFromRightAndroid, ModalFadeTransition, ModalSlideFromBottomIOS, ModalTransition, RevealFromBottomAndroid, ScaleFromCenterAndroid, SlideFromLeftIOS, SlideFromRightIOS } from "../../TransitionConfigs/TransitionPresets.js";
|
|
10
|
-
import { findLastIndex } from "../../utils/findLastIndex.js";
|
|
11
9
|
import { getDistanceForDirection } from "../../utils/getDistanceForDirection.js";
|
|
12
10
|
import { getModalRouteKeys } from "../../utils/getModalRoutesKeys.js";
|
|
13
11
|
import { CardContainer } from "./CardContainer.js";
|
|
@@ -27,10 +25,6 @@ const NAMED_TRANSITIONS_PRESETS = {
|
|
|
27
25
|
default: BottomSheetAndroid
|
|
28
26
|
})
|
|
29
27
|
};
|
|
30
|
-
const EPSILON = 1e-5;
|
|
31
|
-
const STATE_INACTIVE = 0;
|
|
32
|
-
const STATE_TRANSITIONING_OR_BELOW_TOP = 1;
|
|
33
|
-
const STATE_ON_TOP = 2;
|
|
34
28
|
const FALLBACK_DESCRIPTOR = Object.freeze({
|
|
35
29
|
options: {}
|
|
36
30
|
});
|
|
@@ -200,65 +194,11 @@ export class CardStack extends React.Component {
|
|
|
200
194
|
}
|
|
201
195
|
return scene;
|
|
202
196
|
});
|
|
203
|
-
let activeStates = state.activeStates;
|
|
204
|
-
if (props.routes.length !== state.routes.length) {
|
|
205
|
-
let activeScreensLimit = 1;
|
|
206
|
-
for (let i = props.routes.length - 1; i >= 0; i--) {
|
|
207
|
-
const {
|
|
208
|
-
options
|
|
209
|
-
} = scenes[i].descriptor;
|
|
210
|
-
const {
|
|
211
|
-
// By default, we don't want to detach the previous screen of the active one for modals
|
|
212
|
-
detachPreviousScreen = options.presentation === 'transparentModal' ? false : getIsModalPresentation(options.cardStyleInterpolator) ? i !== findLastIndex(scenes, scene => {
|
|
213
|
-
const {
|
|
214
|
-
cardStyleInterpolator
|
|
215
|
-
} = scene.descriptor.options;
|
|
216
|
-
return cardStyleInterpolator === forModalPresentationIOS || cardStyleInterpolator?.name === 'forModalPresentationIOS';
|
|
217
|
-
}) : true
|
|
218
|
-
} = options;
|
|
219
|
-
if (detachPreviousScreen === false) {
|
|
220
|
-
activeScreensLimit++;
|
|
221
|
-
} else {
|
|
222
|
-
// Check at least last 2 screens before stopping
|
|
223
|
-
// This will make sure that screen isn't detached when another screen is animating on top of the transparent one
|
|
224
|
-
// e.g. opaque -> transparent -> opaque
|
|
225
|
-
if (i <= props.routes.length - 2) {
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
activeStates = props.routes.map((_, index, self) => {
|
|
231
|
-
// The activity state represents state of the screen:
|
|
232
|
-
// 0 - inactive, the screen is detached
|
|
233
|
-
// 1 - transitioning or below the top screen, the screen is mounted but interaction is disabled
|
|
234
|
-
// 2 - on top of the stack, the screen is mounted and interaction is enabled
|
|
235
|
-
let activityState;
|
|
236
|
-
const lastActiveState = state.activeStates[index];
|
|
237
|
-
const activeAfterTransition = index >= self.length - activeScreensLimit;
|
|
238
|
-
if (lastActiveState === STATE_INACTIVE && !activeAfterTransition) {
|
|
239
|
-
// screen was inactive before and it will still be inactive after the transition
|
|
240
|
-
activityState = STATE_INACTIVE;
|
|
241
|
-
} else {
|
|
242
|
-
const sceneForActivity = scenes[self.length - 1];
|
|
243
|
-
const outputValue = index === self.length - 1 ? STATE_ON_TOP // the screen is on top after the transition
|
|
244
|
-
: activeAfterTransition ? STATE_TRANSITIONING_OR_BELOW_TOP // the screen should stay active after the transition, it is not on top but is in activeLimit
|
|
245
|
-
: STATE_INACTIVE; // the screen should be active only during the transition, it is at the edge of activeLimit
|
|
246
|
-
|
|
247
|
-
activityState = sceneForActivity ? sceneForActivity.progress.current.interpolate({
|
|
248
|
-
inputRange: [0, 1 - EPSILON, 1],
|
|
249
|
-
outputRange: [1, 1, outputValue],
|
|
250
|
-
extrapolate: 'clamp'
|
|
251
|
-
}) : STATE_TRANSITIONING_OR_BELOW_TOP;
|
|
252
|
-
}
|
|
253
|
-
return activityState;
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
197
|
return {
|
|
257
198
|
routes: props.routes,
|
|
258
199
|
scenes,
|
|
259
200
|
gestures,
|
|
260
201
|
descriptors: props.descriptors,
|
|
261
|
-
activeStates,
|
|
262
202
|
headerHeights: getHeaderHeights(scenes, props.insets, props.isParentHeaderShown, props.isParentModal, state.layout, state.headerHeights)
|
|
263
203
|
};
|
|
264
204
|
}
|
|
@@ -270,7 +210,6 @@ export class CardStack extends React.Component {
|
|
|
270
210
|
gestures: {},
|
|
271
211
|
layout: SafeAreaProviderCompat.initialMetrics.frame,
|
|
272
212
|
descriptors: this.props.descriptors,
|
|
273
|
-
activeStates: [],
|
|
274
213
|
// Used when card's header is null and mode is float to make transition
|
|
275
214
|
// between screens with headers and those without headers smooth.
|
|
276
215
|
// This is not a great heuristic here. We don't know synchronously
|
|
@@ -348,23 +287,22 @@ export class CardStack extends React.Component {
|
|
|
348
287
|
routes,
|
|
349
288
|
openingRouteKeys,
|
|
350
289
|
closingRouteKeys,
|
|
290
|
+
replacingRouteKeys,
|
|
351
291
|
onOpenRoute,
|
|
352
292
|
onCloseRoute,
|
|
293
|
+
onGestureStart,
|
|
294
|
+
onGestureEnd,
|
|
295
|
+
onGestureCancel,
|
|
353
296
|
renderHeader,
|
|
354
297
|
isParentHeaderShown,
|
|
355
298
|
isParentModal,
|
|
356
299
|
onTransitionStart,
|
|
357
|
-
onTransitionEnd
|
|
358
|
-
onGestureStart,
|
|
359
|
-
onGestureEnd,
|
|
360
|
-
onGestureCancel,
|
|
361
|
-
detachInactiveScreens = Platform.OS === 'web' || Platform.OS === 'android' || Platform.OS === 'ios'
|
|
300
|
+
onTransitionEnd
|
|
362
301
|
} = this.props;
|
|
363
302
|
const {
|
|
364
303
|
scenes,
|
|
365
304
|
layout,
|
|
366
305
|
gestures,
|
|
367
|
-
activeStates,
|
|
368
306
|
headerHeights
|
|
369
307
|
} = this.state;
|
|
370
308
|
const focusedRoute = state.routes[state.index];
|
|
@@ -395,11 +333,10 @@ export class CardStack extends React.Component {
|
|
|
395
333
|
isFloatHeaderFocused && {
|
|
396
334
|
height: headerHeights[focusedRoute.key]
|
|
397
335
|
}]]
|
|
398
|
-
}), /*#__PURE__*/_jsx(
|
|
399
|
-
enabled: detachInactiveScreens,
|
|
336
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
400
337
|
style: styles.container,
|
|
401
338
|
onLayout: this.handleLayout,
|
|
402
|
-
children: [...routes, ...state.preloadedRoutes].map((route, index) => {
|
|
339
|
+
children: [...routes, ...state.preloadedRoutes].map((route, index, self) => {
|
|
403
340
|
const focused = focusedRoute.key === route.key;
|
|
404
341
|
const gesture = gestures[route.key];
|
|
405
342
|
const scene = scenes[index];
|
|
@@ -412,10 +349,9 @@ export class CardStack extends React.Component {
|
|
|
412
349
|
return null;
|
|
413
350
|
}
|
|
414
351
|
const {
|
|
352
|
+
inactiveBehavior = 'pause',
|
|
415
353
|
headerShown = true,
|
|
416
|
-
headerTransparent
|
|
417
|
-
freezeOnBlur,
|
|
418
|
-
autoHideHomeIndicator
|
|
354
|
+
headerTransparent
|
|
419
355
|
} = scene.descriptor.options;
|
|
420
356
|
const safeAreaInsetTop = insets.top;
|
|
421
357
|
const safeAreaInsetRight = insets.right;
|
|
@@ -427,49 +363,68 @@ export class CardStack extends React.Component {
|
|
|
427
363
|
const interpolationIndex = getInterpolationIndex(scenes, index);
|
|
428
364
|
const isModal = getIsModal(scene, interpolationIndex, isParentModal);
|
|
429
365
|
const isNextScreenTransparent = scenes[index + 1]?.descriptor.options.presentation === 'transparentModal';
|
|
430
|
-
const
|
|
431
|
-
const
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
366
|
+
const isRemoving = replacingRouteKeys.includes(route.key) || closingRouteKeys.includes(route.key);
|
|
367
|
+
const isFocusing = openingRouteKeys.includes(route.key) || [...closingRouteKeys, ...replacingRouteKeys].includes(self[index + 1]?.key);
|
|
368
|
+
const isBeforeLast = index === routes.length - 2;
|
|
369
|
+
|
|
370
|
+
// Keep animating, preloaded & last two screens visible for smoother transitions
|
|
371
|
+
const isVisible = focused || isFocusing || isRemoving || isPreloaded || isNextScreenTransparent || index >= routes.length - 2;
|
|
372
|
+
const activityMode =
|
|
373
|
+
// Render focused and animating screens normally
|
|
374
|
+
focused || isFocusing ? 'normal' : inactiveBehavior === 'none' ||
|
|
375
|
+
// Unpause preloaded screens so updates are visible
|
|
376
|
+
// This lets preloaded screens initialize
|
|
377
|
+
isPreloaded ||
|
|
378
|
+
// Keep the screen before transparent screen active
|
|
379
|
+
// This lets the screen under the transparent screen update and animate
|
|
380
|
+
isNextScreenTransparent ||
|
|
381
|
+
// Keep the screen before last screen active
|
|
382
|
+
// Otherwise it breaks animation when going back
|
|
383
|
+
isBeforeLast ? 'inert' : inactiveBehavior === 'unmount' &&
|
|
384
|
+
// Don't unmount screens that needs to stay visible
|
|
385
|
+
!isVisible &&
|
|
386
|
+
// Don't unmount screens with nested navigators
|
|
387
|
+
// So we don't lose their state
|
|
388
|
+
!('state' in route && route.state) ? 'unmounted' : 'paused';
|
|
389
|
+
if (activityMode === 'unmounted') {
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
return /*#__PURE__*/_jsx(CardContainer, {
|
|
393
|
+
index: index,
|
|
394
|
+
interpolationIndex: interpolationIndex,
|
|
395
|
+
modal: isModal,
|
|
396
|
+
active: index === routes.length - 1,
|
|
397
|
+
focused: focused,
|
|
398
|
+
opening: openingRouteKeys.includes(route.key),
|
|
399
|
+
closing: closingRouteKeys.includes(route.key),
|
|
400
|
+
layout: layout,
|
|
401
|
+
gesture: gesture,
|
|
402
|
+
scene: scene,
|
|
403
|
+
safeAreaInsetTop: safeAreaInsetTop,
|
|
404
|
+
safeAreaInsetRight: safeAreaInsetRight,
|
|
405
|
+
safeAreaInsetBottom: safeAreaInsetBottom,
|
|
406
|
+
safeAreaInsetLeft: safeAreaInsetLeft,
|
|
407
|
+
onGestureStart: onGestureStart,
|
|
408
|
+
onGestureCancel: onGestureCancel,
|
|
409
|
+
onGestureEnd: onGestureEnd,
|
|
410
|
+
headerHeight: headerHeight,
|
|
411
|
+
isParentHeaderShown: isParentHeaderShown,
|
|
412
|
+
onHeaderHeightChange: this.handleHeaderLayout,
|
|
413
|
+
getPreviousScene: this.getPreviousScene,
|
|
414
|
+
getFocusedRoute: this.getFocusedRoute,
|
|
415
|
+
hasAbsoluteFloatHeader: isFloatHeaderAbsolute && !headerTransparent,
|
|
416
|
+
renderHeader: renderHeader,
|
|
417
|
+
onOpenRoute: onOpenRoute,
|
|
418
|
+
onCloseRoute: onCloseRoute,
|
|
419
|
+
onTransitionStart: onTransitionStart,
|
|
420
|
+
onTransitionEnd: onTransitionEnd,
|
|
421
|
+
isNextScreenTransparent: isNextScreenTransparent,
|
|
422
|
+
preloaded: isPreloaded,
|
|
423
|
+
children: /*#__PURE__*/_jsx(ActivityView, {
|
|
424
|
+
mode: activityMode,
|
|
425
|
+
visible: isVisible,
|
|
426
|
+
style: StyleSheet.absoluteFill,
|
|
427
|
+
children: scene.descriptor.render()
|
|
473
428
|
})
|
|
474
429
|
}, route.key);
|
|
475
430
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getDefaultHeaderHeight","SafeAreaProviderCompat","React","Animated","Platform","StyleSheet","View","Screen","ScreenContainer","forModalPresentationIOS","forNoAnimation","forNoAnimationCard","BottomSheetAndroid","DefaultTransition","FadeFromBottomAndroid","FadeFromRightAndroid","ModalFadeTransition","ModalSlideFromBottomIOS","ModalTransition","RevealFromBottomAndroid","ScaleFromCenterAndroid","SlideFromLeftIOS","SlideFromRightIOS","findLastIndex","getDistanceForDirection","getModalRouteKeys","CardContainer","jsx","_jsx","jsxs","_jsxs","NAMED_TRANSITIONS_PRESETS","default","fade","fade_from_bottom","fade_from_right","none","reveal_from_bottom","scale_from_center","slide_from_left","slide_from_right","slide_from_bottom","select","ios","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","FALLBACK_DESCRIPTOR","Object","freeze","options","getInterpolationIndex","scenes","index","cardStyleInterpolator","descriptor","interpolationIndex","i","cardStyleInterpolatorCurrent","getIsModalPresentation","name","getIsModal","scene","isParentModal","isModalPresentation","isModal","getHeaderHeights","insets","isParentHeaderShown","layout","previous","reduce","acc","curr","headerStatusBarHeight","top","headerStyle","style","flatten","height","route","key","landscape","width","modalPresentation","topInset","getDistanceFromOptions","isRTL","gestureDirection","defaultGestureDirection","presentation","animation","getProgressFromGesture","gesture","distance","Math","max","interpolate","inputRange","outputRange","getDefaultAnimation","excludedPlatforms","OS","getAnimationEnabled","CardStack","Component","getDerivedStateFromProps","props","state","routes","descriptors","gestures","preloadedRoutes","Value","openingRouteKeys","includes","direction","modalRouteKeys","map","self","isPreloaded","previousRoute","undefined","nextRoute","oldScene","currentGesture","previousGesture","nextGesture","nextOptions","previousOptions","optionsForTransitionConfig","length","isAnimationEnabled","transitionPreset","gestureEnabled","transitionSpec","headerStyleInterpolator","cardOverlayEnabled","headerMode","header","progress","current","next","__memo","every","it","activeStates","activeScreensLimit","detachPreviousScreen","_","activityState","lastActiveState","activeAfterTransition","sceneForActivity","outputValue","extrapolate","headerHeights","constructor","initialMetrics","frame","handleLayout","e","nativeEvent","setState","handleHeaderLayout","previousHeight","getFocusedRoute","getPreviousScene","getPreviousRoute","previousScene","find","render","closingRouteKeys","onOpenRoute","onCloseRoute","renderHeader","onTransitionStart","onTransitionEnd","onGestureStart","onGestureEnd","onGestureCancel","detachInactiveScreens","focusedRoute","isFloatHeaderAbsolute","slice","some","headerTransparent","headerShown","isFloatHeaderFocused","findLast","styles","container","children","mode","onContentHeightChange","absolute","enabled","onLayout","focused","freezeOnBlur","autoHideHomeIndicator","safeAreaInsetTop","safeAreaInsetRight","right","safeAreaInsetBottom","bottom","safeAreaInsetLeft","left","headerHeight","isNextScreenTransparent","detachCurrentScreen","absoluteFill","pointerEvents","shouldFreeze","homeIndicatorHidden","modal","active","opening","closing","onHeaderHeightChange","hasAbsoluteFloatHeader","preloaded","create","flex","position","start","end","zIndex"],"sourceRoot":"../../../../src","sources":["views/Stack/CardStack.tsx"],"mappings":";;AAAA,SAASA,sBAAsB,QAAQ,4BAA4B;AACnE,SAASC,sBAAsB,QAAQ,qCAAqC;AAO5E,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SACEC,QAAQ,EAERC,QAAQ,EACRC,UAAU,EACVC,IAAI,QACC,cAAc;AAErB,SAASC,MAAM,EAAEC,eAAe,QAAQ,sBAAsB;AAE9D,SACEC,uBAAuB,EACvBC,cAAc,IAAIC,kBAAkB,QAC/B,mDAAgD;AACvD,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,qBAAqB,EACrBC,oBAAoB,EACpBC,mBAAmB,EACnBC,uBAAuB,EACvBC,eAAe,EACfC,uBAAuB,EACvBC,sBAAsB,EACtBC,gBAAgB,EAChBC,iBAAiB,QACZ,8CAA2C;AAWlD,SAASC,aAAa,QAAQ,8BAA2B;AACzD,SAASC,uBAAuB,QAAQ,wCAAqC;AAC7E,SAASC,iBAAiB,QAAQ,mCAAgC;AAElE,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA2ChD,MAAMC,yBAAyB,GAAG;EAChCC,OAAO,EAAEnB,iBAAiB;EAC1BoB,IAAI,EAAEjB,mBAAmB;EACzBkB,gBAAgB,EAAEpB,qBAAqB;EACvCqB,eAAe,EAAEpB,oBAAoB;EACrCqB,IAAI,EAAEvB,iBAAiB;EACvBwB,kBAAkB,EAAElB,uBAAuB;EAC3CmB,iBAAiB,EAAElB,sBAAsB;EACzCmB,eAAe,EAAElB,gBAAgB;EACjCmB,gBAAgB,EAAElB,iBAAiB;EACnCmB,iBAAiB,EAAErC,QAAQ,CAACsC,MAAM,CAAC;IACjCC,GAAG,EAAE1B,uBAAuB;IAC5Be,OAAO,EAAEpB;EACX,CAAC;AACH,CAAiE;AAEjE,MAAMgC,OAAO,GAAG,IAAI;AAEpB,MAAMC,cAAc,GAAG,CAAC;AACxB,MAAMC,gCAAgC,GAAG,CAAC;AAC1C,MAAMC,YAAY,GAAG,CAAC;AAEtB,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,MAAM,CAAC;EAAEC,OAAO,EAAE,CAAC;AAAE,CAAC,CAAC;AAE1D,MAAMC,qBAAqB,GAAGA,CAACC,MAAe,EAAEC,KAAa,KAAK;EAChE,MAAM;IAAEC;EAAsB,CAAC,GAAGF,MAAM,CAACC,KAAK,CAAC,CAACE,UAAU,CAACL,OAAO;;EAElE;EACA,IAAIM,kBAAkB,GAAG,CAAC;EAE1B,KAAK,IAAIC,CAAC,GAAGJ,KAAK,GAAG,CAAC,EAAEI,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACnC,MAAMC,4BAA4B,GAChCN,MAAM,CAACK,CAAC,CAAC,EAAEF,UAAU,CAACL,OAAO,CAACI,qBAAqB;IAErD,IAAII,4BAA4B,KAAKJ,qBAAqB,EAAE;MAC1D;IACF;IAEAE,kBAAkB,EAAE;EACtB;EAEA,OAAOA,kBAAkB;AAC3B,CAAC;AAED,MAAMG,sBAAsB,GAC1BL,qBAAiD,IAC9C;EACH,OACEA,qBAAqB,KAAK9C,uBAAuB;EACjD;EACA8C,qBAAqB,CAACM,IAAI,KAAK,yBAAyB;AAE5D,CAAC;AAED,MAAMC,UAAU,GAAGA,CACjBC,KAAY,EACZN,kBAA0B,EAC1BO,aAAsB,KACnB;EACH,IAAIA,aAAa,EAAE;IACjB,OAAO,IAAI;EACb;EAEA,MAAM;IAAET;EAAsB,CAAC,GAAGQ,KAAK,CAACP,UAAU,CAACL,OAAO;EAC1D,MAAMc,mBAAmB,GAAGL,sBAAsB,CAACL,qBAAqB,CAAC;EACzE,MAAMW,OAAO,GAAGD,mBAAmB,IAAIR,kBAAkB,KAAK,CAAC;EAE/D,OAAOS,OAAO;AAChB,CAAC;AAED,MAAMC,gBAAgB,GAAGA,CACvBd,MAAe,EACfe,MAAkB,EAClBC,mBAA4B,EAC5BL,aAAsB,EACtBM,MAAc,EACdC,QAAgC,KAC7B;EACH,OAAOlB,MAAM,CAACmB,MAAM,CAAyB,CAACC,GAAG,EAAEC,IAAI,EAAEpB,KAAK,KAAK;IACjE,MAAM;MACJqB,qBAAqB,GAAGN,mBAAmB,GAAG,CAAC,GAAGD,MAAM,CAACQ,GAAG;MAC5DC;IACF,CAAC,GAAGH,IAAI,CAAClB,UAAU,CAACL,OAAO;IAE3B,MAAM2B,KAAK,GAAGzE,UAAU,CAAC0E,OAAO,CAACF,WAAW,IAAI,CAAC,CAAC,CAAC;IAEnD,MAAMG,MAAM,GACV,QAAQ,IAAIF,KAAK,IAAI,OAAOA,KAAK,CAACE,MAAM,KAAK,QAAQ,GACjDF,KAAK,CAACE,MAAM,GACZT,QAAQ,CAACG,IAAI,CAACO,KAAK,CAACC,GAAG,CAAC;IAE9B,MAAMzB,kBAAkB,GAAGL,qBAAqB,CAACC,MAAM,EAAEC,KAAK,CAAC;IAC/D,MAAMY,OAAO,GAAGJ,UAAU,CAACY,IAAI,EAAEjB,kBAAkB,EAAEO,aAAa,CAAC;IAEnES,GAAG,CAACC,IAAI,CAACO,KAAK,CAACC,GAAG,CAAC,GACjB,OAAOF,MAAM,KAAK,QAAQ,GACtBA,MAAM,GACNhF,sBAAsB,CAAC;MACrBmF,SAAS,EAAEb,MAAM,CAACc,KAAK,GAAGd,MAAM,CAACU,MAAM;MACvCK,iBAAiB,EAAEnB,OAAO;MAC1BoB,QAAQ,EAAEX;IACZ,CAAC,CAAC;IAER,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAMc,sBAAsB,GAAGA,CAC7BjB,MAAc,EACdnB,OAA2C,EAC3CqC,KAAc,KACX;EACH,IAAIrC,OAAO,EAAEsC,gBAAgB,EAAE;IAC7B,OAAOjE,uBAAuB,CAAC8C,MAAM,EAAEnB,OAAO,CAACsC,gBAAgB,EAAED,KAAK,CAAC;EACzE;EAEA,MAAME,uBAAuB,GAC3BvC,OAAO,EAAEwC,YAAY,KAAK,OAAO,GAC7BzE,eAAe,CAACuE,gBAAgB,GAChC5E,iBAAiB,CAAC4E,gBAAgB;EAExC,MAAMA,gBAAgB,GAAGtC,OAAO,EAAEyC,SAAS,GACvC7D,yBAAyB,CAACoB,OAAO,EAAEyC,SAAS,CAAC,EAAEH,gBAAgB,GAC/DC,uBAAuB;EAE3B,OAAOlE,uBAAuB,CAAC8C,MAAM,EAAEmB,gBAAgB,EAAED,KAAK,CAAC;AACjE,CAAC;AAED,MAAMK,sBAAsB,GAAGA,CAC7BC,OAAuB,EACvBxB,MAAc,EACdnB,OAA2C,EAC3CqC,KAAc,KACX;EACH,MAAMO,QAAQ,GAAGR,sBAAsB,CACrC;IACE;IACA;IACAH,KAAK,EAAEY,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE3B,MAAM,CAACc,KAAK,CAAC;IAChCJ,MAAM,EAAEgB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE3B,MAAM,CAACU,MAAM;EACnC,CAAC,EACD7B,OAAO,EACPqC,KACF,CAAC;EAED,IAAIO,QAAQ,GAAG,CAAC,EAAE;IAChB,OAAOD,OAAO,CAACI,WAAW,CAAC;MACzBC,UAAU,EAAE,CAAC,CAAC,EAAEJ,QAAQ,CAAC;MACzBK,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;IACpB,CAAC,CAAC;EACJ;EAEA,OAAON,OAAO,CAACI,WAAW,CAAC;IACzBC,UAAU,EAAE,CAACJ,QAAQ,EAAE,CAAC,CAAC;IACzBK,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;EACpB,CAAC,CAAC;AACJ,CAAC;AAED,SAASC,mBAAmBA,CAACT,SAAyC,EAAE;EACtE;EACA,MAAMU,iBAAiB,GACrBlG,QAAQ,CAACmG,EAAE,KAAK,KAAK,IACrBnG,QAAQ,CAACmG,EAAE,KAAK,SAAS,IACzBnG,QAAQ,CAACmG,EAAE,KAAK,OAAO;EAEzB,OAAOX,SAAS,KAAKU,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC;AAC9D;AAEA,OAAO,SAASE,mBAAmBA,CAACZ,SAAyC,EAAE;EAC7E,OAAOS,mBAAmB,CAACT,SAAS,CAAC,KAAK,MAAM;AAClD;AAEA,OAAO,MAAMa,SAAS,SAASvG,KAAK,CAACwG,SAAS,CAAe;EAC3D,OAAOC,wBAAwBA,CAC7BC,KAAY,EACZC,KAAY,EACW;IACvB,IACED,KAAK,CAACE,MAAM,KAAKD,KAAK,CAACC,MAAM,IAC7BF,KAAK,CAACG,WAAW,KAAKF,KAAK,CAACE,WAAW,EACvC;MACA,OAAO,IAAI;IACb;IAEA,MAAMC,QAAQ,GAAG,CACf,GAAGJ,KAAK,CAACE,MAAM,EACf,GAAGF,KAAK,CAACC,KAAK,CAACI,eAAe,CAC/B,CAACzC,MAAM,CAAgB,CAACC,GAAG,EAAEC,IAAI,KAAK;MACrC,MAAMlB,UAAU,GAAGoD,KAAK,CAACG,WAAW,CAACrC,IAAI,CAACQ,GAAG,CAAC;MAC9C,MAAM;QAAEU;MAAU,CAAC,GAAGpC,UAAU,EAAEL,OAAO,IAAI,CAAC,CAAC;MAE/CsB,GAAG,CAACC,IAAI,CAACQ,GAAG,CAAC,GACX2B,KAAK,CAACG,QAAQ,CAACtC,IAAI,CAACQ,GAAG,CAAC,IACxB,IAAI/E,QAAQ,CAAC+G,KAAK,CACfN,KAAK,CAACO,gBAAgB,CAACC,QAAQ,CAAC1C,IAAI,CAACQ,GAAG,CAAC,IACxCsB,mBAAmB,CAACZ,SAAS,CAAC,IAChCgB,KAAK,CAACC,KAAK,CAACI,eAAe,CAACG,QAAQ,CAAC1C,IAAI,CAAC,GACtCa,sBAAsB,CACpBsB,KAAK,CAACvC,MAAM,EACZd,UAAU,EAAEL,OAAO,EACnByD,KAAK,CAACS,SAAS,KAAK,KACtB,CAAC,GACD,CACN,CAAC;MAEH,OAAO5C,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,MAAM6C,cAAc,GAAG7F,iBAAiB,CACtC,CAAC,GAAGmF,KAAK,CAACE,MAAM,EAAE,GAAGF,KAAK,CAACC,KAAK,CAACI,eAAe,CAAC,EACjDL,KAAK,CAACG,WACR,CAAC;IAED,MAAM1D,MAAM,GAAG,CAAC,GAAGuD,KAAK,CAACE,MAAM,EAAE,GAAGF,KAAK,CAACC,KAAK,CAACI,eAAe,CAAC,CAACM,GAAG,CAClE,CAACtC,KAAK,EAAE3B,KAAK,EAAEkE,IAAI,KAAK;MACtB;MACA,MAAMC,WAAW,GAAGb,KAAK,CAACC,KAAK,CAACI,eAAe,CAACG,QAAQ,CAACnC,KAAK,CAAC;MAC/D,MAAMyC,aAAa,GAAGD,WAAW,GAAGE,SAAS,GAAGH,IAAI,CAAClE,KAAK,GAAG,CAAC,CAAC;MAC/D,MAAMsE,SAAS,GAAGH,WAAW,GAAGE,SAAS,GAAGH,IAAI,CAAClE,KAAK,GAAG,CAAC,CAAC;MAE3D,MAAMuE,QAAQ,GAAGhB,KAAK,CAACxD,MAAM,CAACC,KAAK,CAAC;MAEpC,MAAMwE,cAAc,GAAGd,QAAQ,CAAC/B,KAAK,CAACC,GAAG,CAAC;MAC1C,MAAM6C,eAAe,GAAGL,aAAa,GACjCV,QAAQ,CAACU,aAAa,CAACxC,GAAG,CAAC,GAC3ByC,SAAS;MACb,MAAMK,WAAW,GAAGJ,SAAS,GAAGZ,QAAQ,CAACY,SAAS,CAAC1C,GAAG,CAAC,GAAGyC,SAAS;MAEnE,MAAMnE,UAAU,GACdoD,KAAK,CAACG,WAAW,CAAC9B,KAAK,CAACC,GAAG,CAAC,IAC5B2B,KAAK,CAACE,WAAW,CAAC9B,KAAK,CAACC,GAAG,CAAC,KAC3B2C,QAAQ,GAAGA,QAAQ,CAACrE,UAAU,GAAGR,mBAAmB,CAAC;MAExD,MAAMiF,WAAW,GACfL,SAAS,IACT,CACEhB,KAAK,CAACG,WAAW,CAACa,SAAS,EAAE1C,GAAG,CAAC,IACjC2B,KAAK,CAACE,WAAW,CAACa,SAAS,EAAE1C,GAAG,CAAC,GAChC/B,OAAO;MAEZ,MAAM+E,eAAe,GACnBR,aAAa,IACb,CACEd,KAAK,CAACG,WAAW,CAACW,aAAa,EAAExC,GAAG,CAAC,IACrC2B,KAAK,CAACE,WAAW,CAACW,aAAa,EAAExC,GAAG,CAAC,GACpC/B,OAAO;;MAEZ;MACA;MACA;MACA;MACA;MACA;MACA,MAAMgF,0BAA0B,GAC9B7E,KAAK,KAAKkE,IAAI,CAACY,MAAM,GAAG,CAAC,IACzBH,WAAW,IACXA,WAAW,EAAEtC,YAAY,KAAK,kBAAkB,GAC5CsC,WAAW,GACXzE,UAAU,CAACL,OAAO;;MAExB;MACA;MACA,MAAMe,OAAO,GAAGoD,cAAc,CAACF,QAAQ,CAACnC,KAAK,CAACC,GAAG,CAAC;MAElD,MAAMU,SAAS,GAAGS,mBAAmB,CACnC8B,0BAA0B,CAACvC,SAC7B,CAAC;MAED,MAAMyC,kBAAkB,GAAG7B,mBAAmB,CAACZ,SAAS,CAAC;MAEzD,MAAM0C,gBAAgB,GACpB1C,SAAS,KAAK,SAAS,GACnB7D,yBAAyB,CAAC6D,SAAS,CAAC,GACpCuC,0BAA0B,CAACxC,YAAY,KAAK,kBAAkB,GAC5D3E,mBAAmB,GACnBmH,0BAA0B,CAACxC,YAAY,KAAK,OAAO,IAAIzB,OAAO,GAC5DhD,eAAe,GACfL,iBAAiB;MAE3B,MAAM;QACJ0H,cAAc,GAAGnI,QAAQ,CAACmG,EAAE,KAAK,KAAK,IAAI8B,kBAAkB;QAC5D5C,gBAAgB,GAAG6C,gBAAgB,CAAC7C,gBAAgB;QACpD+C,cAAc,GAAGF,gBAAgB,CAACE,cAAc;QAChDjF,qBAAqB,GAAG8E,kBAAkB,GACtCC,gBAAgB,CAAC/E,qBAAqB,GACtC5C,kBAAkB;QACtB8H,uBAAuB,GAAGH,gBAAgB,CAACG,uBAAuB;QAClEC,kBAAkB,GAAItI,QAAQ,CAACmG,EAAE,KAAK,KAAK,IACzC4B,0BAA0B,CAACxC,YAAY,KAAK,kBAAkB,IAC9D/B,sBAAsB,CAACL,qBAAqB;MAChD,CAAC,GAAG4E,0BAA0B;MAE9B,MAAMQ,UAA2B,GAC/BnF,UAAU,CAACL,OAAO,CAACwF,UAAU,KAC5B,EACCR,0BAA0B,CAACxC,YAAY,KAAK,OAAO,IACnDwC,0BAA0B,CAACxC,YAAY,KAAK,kBAAkB,IAC9DsC,WAAW,EAAEtC,YAAY,KAAK,OAAO,IACrCsC,WAAW,EAAEtC,YAAY,KAAK,kBAAkB,IAChD/B,sBAAsB,CAACL,qBAAqB,CAAC,CAC9C,IACDnD,QAAQ,CAACmG,EAAE,KAAK,KAAK,IACrB/C,UAAU,CAACL,OAAO,CAACyF,MAAM,KAAKjB,SAAS,GACnC,OAAO,GACP,QAAQ,CAAC;MAEf,MAAMnC,KAAK,GAAGoB,KAAK,CAACS,SAAS,KAAK,KAAK;MAEvC,MAAMtD,KAAK,GAAG;QACZkB,KAAK;QACLzB,UAAU,EAAE;UACV,GAAGA,UAAU;UACbL,OAAO,EAAE;YACP,GAAGK,UAAU,CAACL,OAAO;YACrByC,SAAS;YACT8C,kBAAkB;YAClBnF,qBAAqB;YACrBkC,gBAAgB;YAChB8C,cAAc;YACdE,uBAAuB;YACvBD,cAAc;YACdG;UACF;QACF,CAAC;QACDE,QAAQ,EAAE;UACRC,OAAO,EAAEjD,sBAAsB,CAC7BiC,cAAc,EACdjB,KAAK,CAACvC,MAAM,EACZd,UAAU,CAACL,OAAO,EAClBqC,KACF,CAAC;UACDuD,IAAI,EACFf,WAAW,IAAIC,WAAW,EAAEtC,YAAY,KAAK,kBAAkB,GAC3DE,sBAAsB,CACpBmC,WAAW,EACXnB,KAAK,CAACvC,MAAM,EACZ2D,WAAW,EACXzC,KACF,CAAC,GACDmC,SAAS;UACfpD,QAAQ,EAAEwD,eAAe,GACrBlC,sBAAsB,CACpBkC,eAAe,EACflB,KAAK,CAACvC,MAAM,EACZ4D,eAAe,EACf1C,KACF,CAAC,GACDmC;QACN,CAAC;QACDqB,MAAM,EAAE,CACNnC,KAAK,CAACvC,MAAM,EACZd,UAAU,EACVyE,WAAW,EACXC,eAAe,EACfJ,cAAc,EACdE,WAAW,EACXD,eAAe;MAEnB,CAAC;MAED,IACEF,QAAQ,IACR9D,KAAK,CAACiF,MAAM,CAACC,KAAK,CAAC,CAACC,EAAE,EAAExF,CAAC,KAAK;QAC5B;QACA,OAAOmE,QAAQ,CAACmB,MAAM,CAACtF,CAAC,CAAC,KAAKwF,EAAE;MAClC,CAAC,CAAC,EACF;QACA,OAAOrB,QAAQ;MACjB;MAEA,OAAO9D,KAAK;IACd,CACF,CAAC;IAED,IAAIoF,YAAY,GAAGtC,KAAK,CAACsC,YAAY;IAErC,IAAIvC,KAAK,CAACE,MAAM,CAACsB,MAAM,KAAKvB,KAAK,CAACC,MAAM,CAACsB,MAAM,EAAE;MAC/C,IAAIgB,kBAAkB,GAAG,CAAC;MAE1B,KAAK,IAAI1F,CAAC,GAAGkD,KAAK,CAACE,MAAM,CAACsB,MAAM,GAAG,CAAC,EAAE1E,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACjD,MAAM;UAAEP;QAAQ,CAAC,GAAGE,MAAM,CAACK,CAAC,CAAC,CAACF,UAAU;QAExC,MAAM;UACJ;UACA6F,oBAAoB,GAAGlG,OAAO,CAACwC,YAAY,KAAK,kBAAkB,GAC9D,KAAK,GACL/B,sBAAsB,CAACT,OAAO,CAACI,qBAAqB,CAAC,GACnDG,CAAC,KACDnC,aAAa,CAAC8B,MAAM,EAAGU,KAAK,IAAK;YAC/B,MAAM;cAAER;YAAsB,CAAC,GAAGQ,KAAK,CAACP,UAAU,CAACL,OAAO;YAE1D,OACEI,qBAAqB,KAAK9C,uBAAuB,IACjD8C,qBAAqB,EAAEM,IAAI,KAAK,yBAAyB;UAE7D,CAAC,CAAC,GACF;QACR,CAAC,GAAGV,OAAO;QAEX,IAAIkG,oBAAoB,KAAK,KAAK,EAAE;UAClCD,kBAAkB,EAAE;QACtB,CAAC,MAAM;UACL;UACA;UACA;UACA,IAAI1F,CAAC,IAAIkD,KAAK,CAACE,MAAM,CAACsB,MAAM,GAAG,CAAC,EAAE;YAChC;UACF;QACF;MACF;MAEAe,YAAY,GAAGvC,KAAK,CAACE,MAAM,CAACS,GAAG,CAAC,CAAC+B,CAAC,EAAEhG,KAAK,EAAEkE,IAAI,KAAK;QAClD;QACA;QACA;QACA;QACA,IAAI+B,aAIC;QAEL,MAAMC,eAAe,GAAG3C,KAAK,CAACsC,YAAY,CAAC7F,KAAK,CAAC;QACjD,MAAMmG,qBAAqB,GAAGnG,KAAK,IAAIkE,IAAI,CAACY,MAAM,GAAGgB,kBAAkB;QAEvE,IAAII,eAAe,KAAK3G,cAAc,IAAI,CAAC4G,qBAAqB,EAAE;UAChE;UACAF,aAAa,GAAG1G,cAAc;QAChC,CAAC,MAAM;UACL,MAAM6G,gBAAgB,GAAGrG,MAAM,CAACmE,IAAI,CAACY,MAAM,GAAG,CAAC,CAAC;UAChD,MAAMuB,WAAW,GACfrG,KAAK,KAAKkE,IAAI,CAACY,MAAM,GAAG,CAAC,GACrBrF,YAAY,CAAC;UAAA,EACb0G,qBAAqB,GACnB3G,gCAAgC,CAAC;UAAA,EACjCD,cAAc,CAAC,CAAC;;UAExB0G,aAAa,GAAGG,gBAAgB,GAC5BA,gBAAgB,CAACb,QAAQ,CAACC,OAAO,CAAC5C,WAAW,CAAC;YAC5CC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,GAAGvD,OAAO,EAAE,CAAC,CAAC;YAC/BwD,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEuD,WAAW,CAAC;YAChCC,WAAW,EAAE;UACf,CAAC,CAAC,GACF9G,gCAAgC;QACtC;QAEA,OAAOyG,aAAa;MACtB,CAAC,CAAC;IACJ;IAEA,OAAO;MACLzC,MAAM,EAAEF,KAAK,CAACE,MAAM;MACpBzD,MAAM;MACN2D,QAAQ;MACRD,WAAW,EAAEH,KAAK,CAACG,WAAW;MAC9BoC,YAAY;MACZU,aAAa,EAAE1F,gBAAgB,CAC7Bd,MAAM,EACNuD,KAAK,CAACxC,MAAM,EACZwC,KAAK,CAACvC,mBAAmB,EACzBuC,KAAK,CAAC5C,aAAa,EACnB6C,KAAK,CAACvC,MAAM,EACZuC,KAAK,CAACgD,aACR;IACF,CAAC;EACH;EAEAC,WAAWA,CAAClD,KAAY,EAAE;IACxB,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,KAAK,GAAG;MACXC,MAAM,EAAE,EAAE;MACVzD,MAAM,EAAE,EAAE;MACV2D,QAAQ,EAAE,CAAC,CAAC;MACZ1C,MAAM,EAAErE,sBAAsB,CAAC8J,cAAc,CAACC,KAAK;MACnDjD,WAAW,EAAE,IAAI,CAACH,KAAK,CAACG,WAAW;MACnCoC,YAAY,EAAE,EAAE;MAChB;MACA;MACA;MACA;MACA;MACAU,aAAa,EAAE,CAAC;IAClB,CAAC;EACH;EAEQI,YAAY,GAAIC,CAAoB,IAAK;IAC/C,MAAM;MAAElF,MAAM;MAAEI;IAAM,CAAC,GAAG8E,CAAC,CAACC,WAAW,CAAC7F,MAAM;IAE9C,MAAMA,MAAM,GAAG;MAAEc,KAAK;MAAEJ;IAAO,CAAC;IAEhC,IAAI,CAACoF,QAAQ,CAAC,CAACvD,KAAK,EAAED,KAAK,KAAK;MAC9B,IAAI5B,MAAM,KAAK6B,KAAK,CAACvC,MAAM,CAACU,MAAM,IAAII,KAAK,KAAKyB,KAAK,CAACvC,MAAM,CAACc,KAAK,EAAE;QAClE,OAAO,IAAI;MACb;MAEA,OAAO;QACLd,MAAM;QACNuF,aAAa,EAAE1F,gBAAgB,CAC7B0C,KAAK,CAACxD,MAAM,EACZuD,KAAK,CAACxC,MAAM,EACZwC,KAAK,CAACvC,mBAAmB,EACzBuC,KAAK,CAAC5C,aAAa,EACnBM,MAAM,EACNuC,KAAK,CAACgD,aACR;MACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAEOQ,kBAAkB,GAAGA,CAAC;IAC5BpF,KAAK;IACLD;EAIF,CAAC,KAAK;IACJ,IAAI,CAACoF,QAAQ,CAAC,CAAC;MAAEP;IAAc,CAAC,KAAK;MACnC,MAAMS,cAAc,GAAGT,aAAa,CAAC5E,KAAK,CAACC,GAAG,CAAC;MAE/C,IAAIoF,cAAc,KAAKtF,MAAM,EAAE;QAC7B,OAAO,IAAI;MACb;MAEA,OAAO;QACL6E,aAAa,EAAE;UACb,GAAGA,aAAa;UAChB,CAAC5E,KAAK,CAACC,GAAG,GAAGF;QACf;MACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAEOuF,eAAe,GAAGA,CAAA,KAAM;IAC9B,MAAM;MAAE1D;IAAM,CAAC,GAAG,IAAI,CAACD,KAAK;IAE5B,OAAOC,KAAK,CAACC,MAAM,CAACD,KAAK,CAACvD,KAAK,CAAC;EAClC,CAAC;EAEOkH,gBAAgB,GAAGA,CAAC;IAAEvF;EAAgC,CAAC,KAAK;IAClE,MAAM;MAAEwF;IAAiB,CAAC,GAAG,IAAI,CAAC7D,KAAK;IACvC,MAAM;MAAEvD;IAAO,CAAC,GAAG,IAAI,CAACwD,KAAK;IAE7B,MAAMa,aAAa,GAAG+C,gBAAgB,CAAC;MAAExF;IAAM,CAAC,CAAC;IAEjD,IAAIyC,aAAa,EAAE;MACjB,MAAMgD,aAAa,GAAGrH,MAAM,CAACsH,IAAI,CAC9B5G,KAAK,IAAKA,KAAK,CAACP,UAAU,CAACyB,KAAK,CAACC,GAAG,KAAKwC,aAAa,CAACxC,GAC1D,CAAC;MAED,OAAOwF,aAAa;IACtB;IAEA,OAAO/C,SAAS;EAClB,CAAC;EAEDiD,MAAMA,CAAA,EAAG;IACP,MAAM;MACJxG,MAAM;MACNyC,KAAK;MACLC,MAAM;MACNK,gBAAgB;MAChB0D,gBAAgB;MAChBC,WAAW;MACXC,YAAY;MACZC,YAAY;MACZ3G,mBAAmB;MACnBL,aAAa;MACbiH,iBAAiB;MACjBC,eAAe;MACfC,cAAc;MACdC,YAAY;MACZC,eAAe;MACfC,qBAAqB,GAAGlL,QAAQ,CAACmG,EAAE,KAAK,KAAK,IAC3CnG,QAAQ,CAACmG,EAAE,KAAK,SAAS,IACzBnG,QAAQ,CAACmG,EAAE,KAAK;IACpB,CAAC,GAAG,IAAI,CAACK,KAAK;IAEd,MAAM;MAAEvD,MAAM;MAAEiB,MAAM;MAAE0C,QAAQ;MAAEmC,YAAY;MAAEU;IAAc,CAAC,GAC7D,IAAI,CAAChD,KAAK;IAEZ,MAAM0E,YAAY,GAAG1E,KAAK,CAACC,MAAM,CAACD,KAAK,CAACvD,KAAK,CAAC;IAE9C,MAAMkI,qBAAqB,GAAGnI,MAAM,CAACoI,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,IAAI,CAAE3H,KAAK,IAAK;MAC7D,MAAMZ,OAAO,GAAGY,KAAK,CAACP,UAAU,CAACL,OAAO,IAAI,CAAC,CAAC;MAC9C,MAAM;QAAEwF,UAAU;QAAEgD,iBAAiB;QAAEC,WAAW,GAAG;MAAK,CAAC,GAAGzI,OAAO;MAErE,IACEwI,iBAAiB,IACjBC,WAAW,KAAK,KAAK,IACrBjD,UAAU,KAAK,QAAQ,EACvB;QACA,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC,CAAC;IAEF,MAAMkD,oBAAoB,GACxBxI,MAAM,CAACyI,QAAQ,CAAE/H,KAAK,IAAKA,KAAK,CAACkB,KAAK,CAACC,GAAG,KAAKqG,YAAY,CAACrG,GAAG,CAAC,EAC5D1B,UAAU,CAACL,OAAO,CAACwF,UAAU,KAAK,OAAO;IAE/C,oBACE7G,KAAA,CAACxB,IAAI;MAACwE,KAAK,EAAEiH,MAAM,CAACC,SAAU;MAAAC,QAAA,GAC3BjB,YAAY,CAAC;QACZkB,IAAI,EAAE,OAAO;QACb7I,MAAM;QACNmH,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;QACvCD,eAAe,EAAE,IAAI,CAACA,eAAe;QACrC4B,qBAAqB,EAAE,IAAI,CAAC9B,kBAAkB;QAC9CvF,KAAK,EAAE,CACL0G,qBAAqB,IAAI,CACvBO,MAAM,CAACK,QAAQ;QACf;QACA;QACAP,oBAAoB,IAAI;UACtB7G,MAAM,EAAE6E,aAAa,CAAC0B,YAAY,CAACrG,GAAG;QACxC,CAAC,CACF;MAEL,CAAC,CAAC,eACFtD,IAAA,CAACpB,eAAe;QACd6L,OAAO,EAAEf,qBAAsB;QAC/BxG,KAAK,EAAEiH,MAAM,CAACC,SAAU;QACxBM,QAAQ,EAAE,IAAI,CAACrC,YAAa;QAAAgC,QAAA,EAE3B,CAAC,GAAGnF,MAAM,EAAE,GAAGD,KAAK,CAACI,eAAe,CAAC,CAACM,GAAG,CAAC,CAACtC,KAAK,EAAE3B,KAAK,KAAK;UAC3D,MAAMiJ,OAAO,GAAGhB,YAAY,CAACrG,GAAG,KAAKD,KAAK,CAACC,GAAG;UAC9C,MAAMY,OAAO,GAAGkB,QAAQ,CAAC/B,KAAK,CAACC,GAAG,CAAC;UACnC,MAAMnB,KAAK,GAAGV,MAAM,CAACC,KAAK,CAAC;UAC3B;UACA;UACA;UACA;UACA,MAAMmE,WAAW,GACfZ,KAAK,CAACI,eAAe,CAACG,QAAQ,CAACnC,KAAK,CAAC,IAAI,CAAC6B,MAAM,CAACM,QAAQ,CAACnC,KAAK,CAAC;UAClE,IACE4B,KAAK,CAACI,eAAe,CAACG,QAAQ,CAACnC,KAAK,CAAC,IACrC6B,MAAM,CAACM,QAAQ,CAACnC,KAAK,CAAC,IACtB3B,KAAK,IAAIwD,MAAM,CAACsB,MAAM,EACtB;YACA,OAAO,IAAI;UACb;UAEA,MAAM;YACJwD,WAAW,GAAG,IAAI;YAClBD,iBAAiB;YACjBa,YAAY;YACZC;UACF,CAAC,GAAG1I,KAAK,CAACP,UAAU,CAACL,OAAO;UAE5B,MAAMuJ,gBAAgB,GAAGtI,MAAM,CAACQ,GAAG;UACnC,MAAM+H,kBAAkB,GAAGvI,MAAM,CAACwI,KAAK;UACvC,MAAMC,mBAAmB,GAAGzI,MAAM,CAAC0I,MAAM;UACzC,MAAMC,iBAAiB,GAAG3I,MAAM,CAAC4I,IAAI;UAErC,MAAMC,YAAY,GAChBrB,WAAW,KAAK,KAAK,GAAG/B,aAAa,CAAC5E,KAAK,CAACC,GAAG,CAAC,GAAG,CAAC;;UAEtD;UACA,MAAMzB,kBAAkB,GAAGL,qBAAqB,CAACC,MAAM,EAAEC,KAAK,CAAC;UAC/D,MAAMY,OAAO,GAAGJ,UAAU,CACxBC,KAAK,EACLN,kBAAkB,EAClBO,aACF,CAAC;UAED,MAAMkJ,uBAAuB,GAC3B7J,MAAM,CAACC,KAAK,GAAG,CAAC,CAAC,EAAEE,UAAU,CAACL,OAAO,CAACwC,YAAY,KAClD,kBAAkB;UAEpB,MAAMwH,mBAAmB,GACvB9J,MAAM,CAACC,KAAK,GAAG,CAAC,CAAC,EAAEE,UAAU,CAACL,OAAO,CAACkG,oBAAoB,KAC1D,KAAK;UAEP,MAAME,aAAa,GAAG9B,WAAW,GAC7B5E,cAAc,GACdsG,YAAY,CAAC7F,KAAK,CAAC;UAEvB,oBACE1B,IAAA,CAACrB,MAAM;YAELuE,KAAK,EAAE,CAACzE,UAAU,CAAC+M,YAAY,EAAE;cAAEC,aAAa,EAAE;YAAW,CAAC,CAAE;YAChEhB,OAAO,EAAEf,qBAAsB;YAC/B/B,aAAa,EAAEA,aAAc;YAC7BiD,YAAY,EAAEA,YAAa;YAC3Bc,YAAY,EAAE/D,aAAa,KAAK1G,cAAc,IAAI,CAAC4E,WAAY;YAC/D8F,mBAAmB,EAAEd,qBAAsB;YAAAR,QAAA,eAE3CrK,IAAA,CAACF,aAAa;cACZ4B,KAAK,EAAEA,KAAM;cACbG,kBAAkB,EAAEA,kBAAmB;cACvC+J,KAAK,EAAEtJ,OAAQ;cACfuJ,MAAM,EAAEnK,KAAK,KAAKwD,MAAM,CAACsB,MAAM,GAAG,CAAE;cACpCmE,OAAO,EAAEA,OAAQ;cACjBmB,OAAO,EAAEvG,gBAAgB,CAACC,QAAQ,CAACnC,KAAK,CAACC,GAAG,CAAE;cAC9CyI,OAAO,EAAE9C,gBAAgB,CAACzD,QAAQ,CAACnC,KAAK,CAACC,GAAG,CAAE;cAC9CZ,MAAM,EAAEA,MAAO;cACfwB,OAAO,EAAEA,OAAQ;cACjB/B,KAAK,EAAEA,KAAM;cACb2I,gBAAgB,EAAEA,gBAAiB;cACnCC,kBAAkB,EAAEA,kBAAmB;cACvCE,mBAAmB,EAAEA,mBAAoB;cACzCE,iBAAiB,EAAEA,iBAAkB;cACrC5B,cAAc,EAAEA,cAAe;cAC/BE,eAAe,EAAEA,eAAgB;cACjCD,YAAY,EAAEA,YAAa;cAC3B6B,YAAY,EAAEA,YAAa;cAC3B5I,mBAAmB,EAAEA,mBAAoB;cACzCuJ,oBAAoB,EAAE,IAAI,CAACvD,kBAAmB;cAC9CG,gBAAgB,EAAE,IAAI,CAACA,gBAAiB;cACxCD,eAAe,EAAE,IAAI,CAACA,eAAgB;cACtCsD,sBAAsB,EACpBrC,qBAAqB,IAAI,CAACG,iBAC3B;cACDX,YAAY,EAAEA,YAAa;cAC3BF,WAAW,EAAEA,WAAY;cACzBC,YAAY,EAAEA,YAAa;cAC3BE,iBAAiB,EAAEA,iBAAkB;cACrCC,eAAe,EAAEA,eAAgB;cACjCgC,uBAAuB,EAAEA,uBAAwB;cACjDC,mBAAmB,EAAEA,mBAAoB;cACzCW,SAAS,EAAErG;YAAY,CACxB;UAAC,GA1CGxC,KAAK,CAACC,GA2CL,CAAC;QAEb,CAAC;MAAC,CACa,CAAC;IAAA,CACd,CAAC;EAEX;AACF;AAEA,MAAM6G,MAAM,GAAG1L,UAAU,CAAC0N,MAAM,CAAC;EAC/B/B,SAAS,EAAE;IACTgC,IAAI,EAAE;EACR,CAAC;EACD5B,QAAQ,EAAE;IACR6B,QAAQ,EAAE,UAAU;IACpBrJ,GAAG,EAAE,CAAC;IACNsJ,KAAK,EAAE,CAAC;IACRC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["getDefaultHeaderHeight","ActivityView","SafeAreaProviderCompat","React","Animated","Platform","StyleSheet","View","forModalPresentationIOS","forNoAnimation","forNoAnimationCard","BottomSheetAndroid","DefaultTransition","FadeFromBottomAndroid","FadeFromRightAndroid","ModalFadeTransition","ModalSlideFromBottomIOS","ModalTransition","RevealFromBottomAndroid","ScaleFromCenterAndroid","SlideFromLeftIOS","SlideFromRightIOS","getDistanceForDirection","getModalRouteKeys","CardContainer","jsx","_jsx","jsxs","_jsxs","NAMED_TRANSITIONS_PRESETS","default","fade","fade_from_bottom","fade_from_right","none","reveal_from_bottom","scale_from_center","slide_from_left","slide_from_right","slide_from_bottom","select","ios","FALLBACK_DESCRIPTOR","Object","freeze","options","getInterpolationIndex","scenes","index","cardStyleInterpolator","descriptor","interpolationIndex","i","cardStyleInterpolatorCurrent","getIsModalPresentation","name","getIsModal","scene","isParentModal","isModalPresentation","isModal","getHeaderHeights","insets","isParentHeaderShown","layout","previous","reduce","acc","curr","headerStatusBarHeight","top","headerStyle","style","flatten","height","route","key","landscape","width","modalPresentation","topInset","getDistanceFromOptions","isRTL","gestureDirection","defaultGestureDirection","presentation","animation","getProgressFromGesture","gesture","distance","Math","max","interpolate","inputRange","outputRange","getDefaultAnimation","excludedPlatforms","OS","getAnimationEnabled","CardStack","Component","getDerivedStateFromProps","props","state","routes","descriptors","gestures","preloadedRoutes","Value","openingRouteKeys","includes","direction","modalRouteKeys","map","self","isPreloaded","previousRoute","undefined","nextRoute","oldScene","currentGesture","previousGesture","nextGesture","nextOptions","previousOptions","optionsForTransitionConfig","length","isAnimationEnabled","transitionPreset","gestureEnabled","transitionSpec","headerStyleInterpolator","cardOverlayEnabled","headerMode","header","progress","current","next","__memo","every","it","headerHeights","constructor","initialMetrics","frame","handleLayout","e","nativeEvent","setState","handleHeaderLayout","previousHeight","getFocusedRoute","getPreviousScene","getPreviousRoute","previousScene","find","render","closingRouteKeys","replacingRouteKeys","onOpenRoute","onCloseRoute","onGestureStart","onGestureEnd","onGestureCancel","renderHeader","onTransitionStart","onTransitionEnd","focusedRoute","isFloatHeaderAbsolute","slice","some","headerTransparent","headerShown","isFloatHeaderFocused","findLast","styles","container","children","mode","onContentHeightChange","absolute","onLayout","focused","inactiveBehavior","safeAreaInsetTop","safeAreaInsetRight","right","safeAreaInsetBottom","bottom","safeAreaInsetLeft","left","headerHeight","isNextScreenTransparent","isRemoving","isFocusing","isBeforeLast","isVisible","activityMode","modal","active","opening","closing","onHeaderHeightChange","hasAbsoluteFloatHeader","preloaded","visible","absoluteFill","create","flex","position","start","end","zIndex"],"sourceRoot":"../../../../src","sources":["views/Stack/CardStack.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,32 +21,48 @@ const isArrayEqual = (a, b) => a.length === b.length && a.every((it, index) => O
|
|
|
21
21
|
export class StackView extends React.Component {
|
|
22
22
|
static getDerivedStateFromProps(props, state) {
|
|
23
23
|
const allRoutes = [...props.state.routes, ...props.state.preloadedRoutes];
|
|
24
|
+
const previousRoutes = state.previousState ? [...state.previousState.routes, ...state.previousState.preloadedRoutes] : [];
|
|
24
25
|
|
|
25
26
|
// If there was no change in routes, we don't need to compute anything
|
|
26
|
-
if (isArrayEqual(allRoutes.map(r => r.key),
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
if (isArrayEqual(allRoutes.map(r => r.key), previousRoutes.map(r => r.key)) && state.routes.length) {
|
|
28
|
+
// If there were any routes being closed or replaced,
|
|
29
|
+
// We need to make sure they are preserved in the new state from props.state
|
|
30
|
+
// So first we get all such routes from the previous state (that included the animating routes)
|
|
31
|
+
// Then we add them back to the new state if they don't already exist
|
|
32
|
+
|
|
33
|
+
const closingRoutes = state.routes.filter(r => state.closingRouteKeys.includes(r.key) && !props.state.routes.some(pr => pr.key === r.key));
|
|
34
|
+
const replacingRoutes = state.routes.filter(r => state.replacingRouteKeys.includes(r.key) && !props.state.routes.some(pr => pr.key === r.key));
|
|
35
|
+
let routes = props.state.routes.slice();
|
|
36
|
+
|
|
37
|
+
// Replacing routes go before the focused route (they're being covered)
|
|
38
|
+
if (replacingRoutes.length) {
|
|
39
|
+
routes.splice(routes.length - 1, 0, ...replacingRoutes);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Closing routes go at the end (they're animating out on top)
|
|
43
|
+
if (closingRoutes.length) {
|
|
44
|
+
routes.push(...closingRoutes);
|
|
45
|
+
}
|
|
29
46
|
let descriptors = props.descriptors;
|
|
30
47
|
let previousDescriptors = state.previousDescriptors;
|
|
31
48
|
if (props.descriptors !== state.previousDescriptors) {
|
|
32
|
-
descriptors =
|
|
49
|
+
descriptors = routes.reduce((acc, route) => {
|
|
33
50
|
acc[route.key] = props.descriptors[route.key] || state.descriptors[route.key];
|
|
34
51
|
return acc;
|
|
35
52
|
}, {});
|
|
36
53
|
previousDescriptors = props.descriptors;
|
|
37
54
|
}
|
|
38
|
-
if (!isArrayEqual(allRoutes,
|
|
55
|
+
if (!isArrayEqual(allRoutes, previousRoutes)) {
|
|
39
56
|
// if any route objects have changed, we should update them
|
|
40
57
|
const map = allRoutes.reduce((acc, route) => {
|
|
41
58
|
acc[route.key] = route;
|
|
42
59
|
return acc;
|
|
43
60
|
}, {});
|
|
44
|
-
routes =
|
|
45
|
-
previousRoutes = allRoutes;
|
|
61
|
+
routes = routes.map(route => map[route.key] || route);
|
|
46
62
|
}
|
|
47
63
|
return {
|
|
48
64
|
routes,
|
|
49
|
-
|
|
65
|
+
previousState: props.state,
|
|
50
66
|
descriptors,
|
|
51
67
|
previousDescriptors
|
|
52
68
|
};
|
|
@@ -59,17 +75,20 @@ export class StackView extends React.Component {
|
|
|
59
75
|
// Remove any extra routes from the state
|
|
60
76
|
// The last visible route should be the focused route, i.e. at current index
|
|
61
77
|
props.state.routes.slice(0, props.state.index + 1) : props.state.routes;
|
|
62
|
-
|
|
63
|
-
// Now we need to determine which routes were added and removed
|
|
64
|
-
const {
|
|
65
|
-
previousRoutes
|
|
66
|
-
} = state;
|
|
67
78
|
let {
|
|
68
79
|
openingRouteKeys,
|
|
69
80
|
closingRouteKeys,
|
|
70
81
|
replacingRouteKeys
|
|
71
82
|
} = state;
|
|
72
|
-
|
|
83
|
+
|
|
84
|
+
// If a route that was closing or being replaced is now back in the routes,
|
|
85
|
+
// it was added back before the animation finished, so stop tracking it
|
|
86
|
+
closingRouteKeys = closingRouteKeys.filter(key => !routes.some(r => r.key === key));
|
|
87
|
+
replacingRouteKeys = replacingRouteKeys.filter(key => !routes.some(r => r.key === key));
|
|
88
|
+
|
|
89
|
+
// Get previous focused route from previousState (actual focused route, not last in previousRoutes
|
|
90
|
+
// which can be a preloaded route that was never focused)
|
|
91
|
+
const previousFocusedRoute = state.previousState ? state.previousState.routes[state.previousState.index] : undefined;
|
|
73
92
|
const nextFocusedRoute = routes[routes.length - 1];
|
|
74
93
|
const isAnimationEnabled = key => {
|
|
75
94
|
const descriptor = props.descriptors[key] || state.descriptors[key];
|
|
@@ -132,6 +151,13 @@ export class StackView extends React.Component {
|
|
|
132
151
|
// After the push animation is completed, routes being replaced will be removed completely
|
|
133
152
|
routes = routes.slice();
|
|
134
153
|
routes.splice(routes.length - 1, 0, previousFocusedRoute);
|
|
154
|
+
|
|
155
|
+
// Preserve any other routes still being replaced from previous transitions
|
|
156
|
+
const previousReplacingRoutes = state.routes.filter(r => replacingRouteKeys.includes(r.key) && !routes.some(existing => existing.key === r.key));
|
|
157
|
+
if (previousReplacingRoutes.length) {
|
|
158
|
+
// Insert before the route we just added (previousFocusedRoute)
|
|
159
|
+
routes.splice(routes.length - 2, 0, ...previousReplacingRoutes);
|
|
160
|
+
}
|
|
135
161
|
}
|
|
136
162
|
}
|
|
137
163
|
}
|
|
@@ -152,7 +178,7 @@ export class StackView extends React.Component {
|
|
|
152
178
|
}, {});
|
|
153
179
|
return {
|
|
154
180
|
routes,
|
|
155
|
-
|
|
181
|
+
previousState: props.state,
|
|
156
182
|
previousDescriptors: props.descriptors,
|
|
157
183
|
openingRouteKeys,
|
|
158
184
|
closingRouteKeys,
|
|
@@ -162,7 +188,7 @@ export class StackView extends React.Component {
|
|
|
162
188
|
}
|
|
163
189
|
state = {
|
|
164
190
|
routes: [],
|
|
165
|
-
|
|
191
|
+
previousState: undefined,
|
|
166
192
|
previousDescriptors: {},
|
|
167
193
|
openingRouteKeys: [],
|
|
168
194
|
closingRouteKeys: [],
|
|
@@ -208,12 +234,20 @@ export class StackView extends React.Component {
|
|
|
208
234
|
});
|
|
209
235
|
});
|
|
210
236
|
} else {
|
|
211
|
-
this.setState(state =>
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
237
|
+
this.setState(state => {
|
|
238
|
+
const routeIndex = state.routes.findIndex(r => r.key === route.key);
|
|
239
|
+
|
|
240
|
+
// Remove replacing routes that were before the route that just opened
|
|
241
|
+
// Those were replaced by this or earlier routes and should be cleaned up
|
|
242
|
+
const replacingRoutesToRemove = new Set(state.routes.slice(0, routeIndex).filter(r => state.replacingRouteKeys.includes(r.key)).map(r => r.key));
|
|
243
|
+
const newRoutes = state.routes.filter(r => !replacingRoutesToRemove.has(r.key));
|
|
244
|
+
return {
|
|
245
|
+
routes: newRoutes,
|
|
246
|
+
openingRouteKeys: state.openingRouteKeys.filter(key => key !== route.key),
|
|
247
|
+
closingRouteKeys: state.closingRouteKeys.filter(key => key !== route.key),
|
|
248
|
+
replacingRouteKeys: state.replacingRouteKeys.filter(key => !replacingRoutesToRemove.has(key))
|
|
249
|
+
};
|
|
250
|
+
});
|
|
217
251
|
}
|
|
218
252
|
};
|
|
219
253
|
handleCloseRoute = ({
|
|
@@ -294,7 +328,8 @@ export class StackView extends React.Component {
|
|
|
294
328
|
routes,
|
|
295
329
|
descriptors,
|
|
296
330
|
openingRouteKeys,
|
|
297
|
-
closingRouteKeys
|
|
331
|
+
closingRouteKeys,
|
|
332
|
+
replacingRouteKeys
|
|
298
333
|
} = this.state;
|
|
299
334
|
return /*#__PURE__*/_jsx(GestureHandlerWrapper, {
|
|
300
335
|
style: styles.container,
|
|
@@ -310,6 +345,7 @@ export class StackView extends React.Component {
|
|
|
310
345
|
routes: routes,
|
|
311
346
|
openingRouteKeys: openingRouteKeys,
|
|
312
347
|
closingRouteKeys: closingRouteKeys,
|
|
348
|
+
replacingRouteKeys: replacingRouteKeys,
|
|
313
349
|
onOpenRoute: this.handleOpenRoute,
|
|
314
350
|
onCloseRoute: this.handleCloseRoute,
|
|
315
351
|
onTransitionStart: this.handleTransitionStart,
|