@react-navigation/stack 7.6.16 → 7.7.1
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.
|
@@ -19,27 +19,46 @@ const GestureHandlerWrapper = GestureHandlerRootView ?? View;
|
|
|
19
19
|
const isArrayEqual = (a, b) => a.length === b.length && a.every((it, index) => Object.is(it, b[index]));
|
|
20
20
|
export class StackView extends React.Component {
|
|
21
21
|
static getDerivedStateFromProps(props, state) {
|
|
22
|
+
const allRoutes = [...props.state.routes, ...props.state.preloadedRoutes];
|
|
23
|
+
|
|
22
24
|
// If there was no change in routes, we don't need to compute anything
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
+
if (isArrayEqual(allRoutes.map(r => r.key), state.previousRoutes.map(r => r.key)) && state.routes.length) {
|
|
26
|
+
// If there were any routes being closed or replaced,
|
|
27
|
+
// We need to make sure they are preserved in the new state from props.state
|
|
28
|
+
// So first we get all such routes from the previous state (that included the animating routes)
|
|
29
|
+
// Then we add them back to the new state if they don't already exist
|
|
30
|
+
|
|
31
|
+
const closingRoutes = state.routes.filter(r => state.closingRouteKeys.includes(r.key) && !props.state.routes.some(pr => pr.key === r.key));
|
|
32
|
+
const replacingRoutes = state.routes.filter(r => state.replacingRouteKeys.includes(r.key) && !props.state.routes.some(pr => pr.key === r.key));
|
|
33
|
+
let routes = props.state.routes.slice();
|
|
34
|
+
|
|
35
|
+
// Replacing routes go before the focused route (they're being covered)
|
|
36
|
+
if (replacingRoutes.length) {
|
|
37
|
+
routes.splice(routes.length - 1, 0, ...replacingRoutes);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Closing routes go at the end (they're animating out on top)
|
|
41
|
+
if (closingRoutes.length) {
|
|
42
|
+
routes.push(...closingRoutes);
|
|
43
|
+
}
|
|
25
44
|
let previousRoutes = state.previousRoutes;
|
|
26
45
|
let descriptors = props.descriptors;
|
|
27
46
|
let previousDescriptors = state.previousDescriptors;
|
|
28
47
|
if (props.descriptors !== state.previousDescriptors) {
|
|
29
|
-
descriptors =
|
|
48
|
+
descriptors = routes.reduce((acc, route) => {
|
|
30
49
|
acc[route.key] = props.descriptors[route.key] || state.descriptors[route.key];
|
|
31
50
|
return acc;
|
|
32
51
|
}, {});
|
|
33
52
|
previousDescriptors = props.descriptors;
|
|
34
53
|
}
|
|
35
|
-
if (
|
|
54
|
+
if (!isArrayEqual(allRoutes, state.previousRoutes)) {
|
|
36
55
|
// if any route objects have changed, we should update them
|
|
37
|
-
const map =
|
|
56
|
+
const map = allRoutes.reduce((acc, route) => {
|
|
38
57
|
acc[route.key] = route;
|
|
39
58
|
return acc;
|
|
40
59
|
}, {});
|
|
41
|
-
routes =
|
|
42
|
-
previousRoutes =
|
|
60
|
+
routes = routes.map(route => map[route.key] || route);
|
|
61
|
+
previousRoutes = allRoutes;
|
|
43
62
|
}
|
|
44
63
|
return {
|
|
45
64
|
routes,
|
|
@@ -129,6 +148,13 @@ export class StackView extends React.Component {
|
|
|
129
148
|
// After the push animation is completed, routes being replaced will be removed completely
|
|
130
149
|
routes = routes.slice();
|
|
131
150
|
routes.splice(routes.length - 1, 0, previousFocusedRoute);
|
|
151
|
+
|
|
152
|
+
// Preserve any other routes still being replaced from previous transitions
|
|
153
|
+
const previousReplacingRoutes = state.routes.filter(r => replacingRouteKeys.includes(r.key) && !routes.some(existing => existing.key === r.key));
|
|
154
|
+
if (previousReplacingRoutes.length) {
|
|
155
|
+
// Insert before the route we just added (previousFocusedRoute)
|
|
156
|
+
routes.splice(routes.length - 2, 0, ...previousReplacingRoutes);
|
|
157
|
+
}
|
|
132
158
|
}
|
|
133
159
|
}
|
|
134
160
|
}
|
|
@@ -143,13 +169,13 @@ export class StackView extends React.Component {
|
|
|
143
169
|
if (!routes.length) {
|
|
144
170
|
throw new Error('There should always be at least one route in the navigation state.');
|
|
145
171
|
}
|
|
146
|
-
const descriptors =
|
|
172
|
+
const descriptors = allRoutes.reduce((acc, route) => {
|
|
147
173
|
acc[route.key] = props.descriptors[route.key] || state.descriptors[route.key];
|
|
148
174
|
return acc;
|
|
149
175
|
}, {});
|
|
150
176
|
return {
|
|
151
177
|
routes,
|
|
152
|
-
previousRoutes: props.state.routes,
|
|
178
|
+
previousRoutes: [...props.state.routes, ...props.state.preloadedRoutes],
|
|
153
179
|
previousDescriptors: props.descriptors,
|
|
154
180
|
openingRouteKeys,
|
|
155
181
|
closingRouteKeys,
|
|
@@ -205,12 +231,20 @@ export class StackView extends React.Component {
|
|
|
205
231
|
});
|
|
206
232
|
});
|
|
207
233
|
} else {
|
|
208
|
-
this.setState(state =>
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
234
|
+
this.setState(state => {
|
|
235
|
+
const routeIndex = state.routes.findIndex(r => r.key === route.key);
|
|
236
|
+
|
|
237
|
+
// Remove replacing routes that were before the route that just opened
|
|
238
|
+
// Those were replaced by this or earlier routes and should be cleaned up
|
|
239
|
+
const replacingRoutesToRemove = new Set(state.routes.slice(0, routeIndex).filter(r => state.replacingRouteKeys.includes(r.key)).map(r => r.key));
|
|
240
|
+
const newRoutes = state.routes.filter(r => !replacingRoutesToRemove.has(r.key));
|
|
241
|
+
return {
|
|
242
|
+
routes: newRoutes,
|
|
243
|
+
openingRouteKeys: state.openingRouteKeys.filter(key => key !== route.key),
|
|
244
|
+
closingRouteKeys: state.closingRouteKeys.filter(key => key !== route.key),
|
|
245
|
+
replacingRouteKeys: state.replacingRouteKeys.filter(key => !replacingRoutesToRemove.has(key))
|
|
246
|
+
};
|
|
247
|
+
});
|
|
214
248
|
}
|
|
215
249
|
};
|
|
216
250
|
handleCloseRoute = ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HeaderShownContext","SafeAreaProviderCompat","CommonActions","StackActions","React","StyleSheet","View","SafeAreaInsetsContext","ModalPresentationContext","GestureHandlerRootView","HeaderContainer","CardStack","getAnimationEnabled","jsx","_jsx","GestureHandlerWrapper","isArrayEqual","a","b","length","every","it","index","Object","is","StackView","Component","getDerivedStateFromProps","props","state","routes","previousRoutes","map","r","key","descriptors","previousDescriptors","reduce","acc","route","slice","openingRouteKeys","closingRouteKeys","replacingRouteKeys","previousFocusedRoute","nextFocusedRoute","isAnimationEnabled","descriptor","options","animation","getAnimationTypeForReplace","animationTypeForReplace","some","includes","filter","splice","Error","getPreviousRoute","findIndex","renderHeader","handleOpenRoute","navigation","routeNames","name","dispatch","reset","setState","handleCloseRoute","pop","source","target","handleTransitionStart","closing","emit","type","data","handleTransitionEnd","handleGestureStart","handleGestureEnd","handleGestureCancel","render","_","rest","preloadedDescriptors","preloadedRoutes","describe","style","styles","container","children","Consumer","insets","isParentModal","isParentHeaderShown","onOpenRoute","onCloseRoute","onTransitionStart","onTransitionEnd","onGestureStart","onGestureEnd","onGestureCancel","create","flex"],"sourceRoot":"../../../../src","sources":["views/Stack/StackView.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["HeaderShownContext","SafeAreaProviderCompat","CommonActions","StackActions","React","StyleSheet","View","SafeAreaInsetsContext","ModalPresentationContext","GestureHandlerRootView","HeaderContainer","CardStack","getAnimationEnabled","jsx","_jsx","GestureHandlerWrapper","isArrayEqual","a","b","length","every","it","index","Object","is","StackView","Component","getDerivedStateFromProps","props","state","allRoutes","routes","preloadedRoutes","map","r","key","previousRoutes","closingRoutes","filter","closingRouteKeys","includes","some","pr","replacingRoutes","replacingRouteKeys","slice","splice","push","descriptors","previousDescriptors","reduce","acc","route","openingRouteKeys","previousFocusedRoute","nextFocusedRoute","isAnimationEnabled","descriptor","options","animation","getAnimationTypeForReplace","animationTypeForReplace","previousReplacingRoutes","existing","Error","getPreviousRoute","findIndex","renderHeader","handleOpenRoute","navigation","routeNames","name","dispatch","reset","setState","routeIndex","replacingRoutesToRemove","Set","newRoutes","has","handleCloseRoute","pop","source","target","handleTransitionStart","closing","emit","type","data","handleTransitionEnd","handleGestureStart","handleGestureEnd","handleGestureCancel","render","_","rest","preloadedDescriptors","describe","style","styles","container","children","Consumer","insets","isParentModal","isParentHeaderShown","onOpenRoute","onCloseRoute","onTransitionStart","onTransitionEnd","onGestureStart","onGestureEnd","onGestureCancel","create","flex"],"sourceRoot":"../../../../src","sources":["views/Stack/StackView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackView.d.ts","sourceRoot":"","sources":["../../../../../src/views/Stack/StackView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AASrB,KAAK,KAAK,GAAG,qBAAqB,GAAG;IACnC,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,sBAAsB,CAAC;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,CACR,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,EAC/B,WAAW,EAAE,OAAO,KACjB,eAAe,CAAC;CACtB,CAAC;AAEF,KAAK,KAAK,GAAG;IAEX,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAExB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAEhC,mBAAmB,EAAE,kBAAkB,CAAC;IAExC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAG7B,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAWF,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC1D,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"StackView.d.ts","sourceRoot":"","sources":["../../../../../src/views/Stack/StackView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AASrB,KAAK,KAAK,GAAG,qBAAqB,GAAG;IACnC,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,sBAAsB,CAAC;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,CACR,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,EAC/B,WAAW,EAAE,OAAO,KACjB,eAAe,CAAC;CACtB,CAAC;AAEF,KAAK,KAAK,GAAG;IAEX,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAExB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAEhC,mBAAmB,EAAE,kBAAkB,CAAC;IAExC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAG7B,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAWF,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC1D,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;IA6PxB,KAAK,EAAE,KAAK,CAQV;IAEF,OAAO,CAAC,gBAAgB,CAYtB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,eAAe,CAuDrB;IAEF,OAAO,CAAC,gBAAgB,CAwBtB;IAEF,OAAO,CAAC,qBAAqB,CAQxB;IAEL,OAAO,CAAC,mBAAmB,CAQtB;IAEL,OAAO,CAAC,kBAAkB,CAKxB;IAEF,OAAO,CAAC,gBAAgB,CAKtB;IAEF,OAAO,CAAC,mBAAmB,CAKzB;IAEF,MAAM;CAyDP"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/stack",
|
|
3
3
|
"description": "Stack navigator component for iOS and Android with animated transitions and gestures",
|
|
4
|
-
"version": "7.
|
|
4
|
+
"version": "7.7.1",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native-component",
|
|
7
7
|
"react-component",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"react-native-builder-bob": "^0.40.17",
|
|
62
62
|
"react-native-gesture-handler": "~2.28.0",
|
|
63
63
|
"react-native-safe-area-context": "~5.6.0",
|
|
64
|
-
"react-native-screens": "^4.
|
|
64
|
+
"react-native-screens": "^4.21.0",
|
|
65
65
|
"react-test-renderer": "19.1.0",
|
|
66
66
|
"typescript": "^5.9.2"
|
|
67
67
|
},
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
]
|
|
92
92
|
]
|
|
93
93
|
},
|
|
94
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "25cf8cf0dfdf2cf1991191a04d18681530e659cb"
|
|
95
95
|
}
|
|
@@ -72,22 +72,51 @@ export class StackView extends React.Component<Props, State> {
|
|
|
72
72
|
props: Readonly<Props>,
|
|
73
73
|
state: Readonly<State>
|
|
74
74
|
) {
|
|
75
|
+
const allRoutes = [...props.state.routes, ...props.state.preloadedRoutes];
|
|
76
|
+
|
|
75
77
|
// If there was no change in routes, we don't need to compute anything
|
|
76
78
|
if (
|
|
77
|
-
(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
)) &&
|
|
79
|
+
isArrayEqual(
|
|
80
|
+
allRoutes.map((r) => r.key),
|
|
81
|
+
state.previousRoutes.map((r) => r.key)
|
|
82
|
+
) &&
|
|
82
83
|
state.routes.length
|
|
83
84
|
) {
|
|
84
|
-
|
|
85
|
+
// If there were any routes being closed or replaced,
|
|
86
|
+
// We need to make sure they are preserved in the new state from props.state
|
|
87
|
+
// So first we get all such routes from the previous state (that included the animating routes)
|
|
88
|
+
// Then we add them back to the new state if they don't already exist
|
|
89
|
+
|
|
90
|
+
const closingRoutes = state.routes.filter(
|
|
91
|
+
(r) =>
|
|
92
|
+
state.closingRouteKeys.includes(r.key) &&
|
|
93
|
+
!props.state.routes.some((pr) => pr.key === r.key)
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
const replacingRoutes = state.routes.filter(
|
|
97
|
+
(r) =>
|
|
98
|
+
state.replacingRouteKeys.includes(r.key) &&
|
|
99
|
+
!props.state.routes.some((pr) => pr.key === r.key)
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
let routes: Route<string>[] = props.state.routes.slice();
|
|
103
|
+
|
|
104
|
+
// Replacing routes go before the focused route (they're being covered)
|
|
105
|
+
if (replacingRoutes.length) {
|
|
106
|
+
routes.splice(routes.length - 1, 0, ...replacingRoutes);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Closing routes go at the end (they're animating out on top)
|
|
110
|
+
if (closingRoutes.length) {
|
|
111
|
+
routes.push(...closingRoutes);
|
|
112
|
+
}
|
|
113
|
+
|
|
85
114
|
let previousRoutes = state.previousRoutes;
|
|
86
115
|
let descriptors = props.descriptors;
|
|
87
116
|
let previousDescriptors = state.previousDescriptors;
|
|
88
117
|
|
|
89
118
|
if (props.descriptors !== state.previousDescriptors) {
|
|
90
|
-
descriptors =
|
|
119
|
+
descriptors = routes.reduce<StackDescriptorMap>((acc, route) => {
|
|
91
120
|
acc[route.key] =
|
|
92
121
|
props.descriptors[route.key] || state.descriptors[route.key];
|
|
93
122
|
|
|
@@ -97,9 +126,9 @@ export class StackView extends React.Component<Props, State> {
|
|
|
97
126
|
previousDescriptors = props.descriptors;
|
|
98
127
|
}
|
|
99
128
|
|
|
100
|
-
if (
|
|
129
|
+
if (!isArrayEqual(allRoutes, state.previousRoutes)) {
|
|
101
130
|
// if any route objects have changed, we should update them
|
|
102
|
-
const map =
|
|
131
|
+
const map = allRoutes.reduce<Record<string, Route<string>>>(
|
|
103
132
|
(acc, route) => {
|
|
104
133
|
acc[route.key] = route;
|
|
105
134
|
return acc;
|
|
@@ -107,8 +136,8 @@ export class StackView extends React.Component<Props, State> {
|
|
|
107
136
|
{}
|
|
108
137
|
);
|
|
109
138
|
|
|
110
|
-
routes =
|
|
111
|
-
previousRoutes =
|
|
139
|
+
routes = routes.map((route) => map[route.key] || route);
|
|
140
|
+
previousRoutes = allRoutes;
|
|
112
141
|
}
|
|
113
142
|
|
|
114
143
|
return {
|
|
@@ -240,6 +269,18 @@ export class StackView extends React.Component<Props, State> {
|
|
|
240
269
|
// After the push animation is completed, routes being replaced will be removed completely
|
|
241
270
|
routes = routes.slice();
|
|
242
271
|
routes.splice(routes.length - 1, 0, previousFocusedRoute);
|
|
272
|
+
|
|
273
|
+
// Preserve any other routes still being replaced from previous transitions
|
|
274
|
+
const previousReplacingRoutes = state.routes.filter(
|
|
275
|
+
(r) =>
|
|
276
|
+
replacingRouteKeys.includes(r.key) &&
|
|
277
|
+
!routes.some((existing) => existing.key === r.key)
|
|
278
|
+
);
|
|
279
|
+
|
|
280
|
+
if (previousReplacingRoutes.length) {
|
|
281
|
+
// Insert before the route we just added (previousFocusedRoute)
|
|
282
|
+
routes.splice(routes.length - 2, 0, ...previousReplacingRoutes);
|
|
283
|
+
}
|
|
243
284
|
}
|
|
244
285
|
}
|
|
245
286
|
}
|
|
@@ -264,7 +305,7 @@ export class StackView extends React.Component<Props, State> {
|
|
|
264
305
|
);
|
|
265
306
|
}
|
|
266
307
|
|
|
267
|
-
const descriptors =
|
|
308
|
+
const descriptors = allRoutes.reduce<StackDescriptorMap>((acc, route) => {
|
|
268
309
|
acc[route.key] =
|
|
269
310
|
props.descriptors[route.key] || state.descriptors[route.key];
|
|
270
311
|
|
|
@@ -273,7 +314,7 @@ export class StackView extends React.Component<Props, State> {
|
|
|
273
314
|
|
|
274
315
|
return {
|
|
275
316
|
routes,
|
|
276
|
-
previousRoutes: props.state.routes,
|
|
317
|
+
previousRoutes: [...props.state.routes, ...props.state.preloadedRoutes],
|
|
277
318
|
previousDescriptors: props.descriptors,
|
|
278
319
|
openingRouteKeys,
|
|
279
320
|
closingRouteKeys,
|
|
@@ -335,20 +376,35 @@ export class StackView extends React.Component<Props, State> {
|
|
|
335
376
|
});
|
|
336
377
|
});
|
|
337
378
|
} else {
|
|
338
|
-
this.setState((state) =>
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
379
|
+
this.setState((state) => {
|
|
380
|
+
const routeIndex = state.routes.findIndex((r) => r.key === route.key);
|
|
381
|
+
|
|
382
|
+
// Remove replacing routes that were before the route that just opened
|
|
383
|
+
// Those were replaced by this or earlier routes and should be cleaned up
|
|
384
|
+
const replacingRoutesToRemove = new Set(
|
|
385
|
+
state.routes
|
|
386
|
+
.slice(0, routeIndex)
|
|
387
|
+
.filter((r) => state.replacingRouteKeys.includes(r.key))
|
|
388
|
+
.map((r) => r.key)
|
|
389
|
+
);
|
|
390
|
+
|
|
391
|
+
const newRoutes = state.routes.filter(
|
|
392
|
+
(r) => !replacingRoutesToRemove.has(r.key)
|
|
393
|
+
);
|
|
394
|
+
|
|
395
|
+
return {
|
|
396
|
+
routes: newRoutes,
|
|
397
|
+
openingRouteKeys: state.openingRouteKeys.filter(
|
|
398
|
+
(key) => key !== route.key
|
|
399
|
+
),
|
|
400
|
+
closingRouteKeys: state.closingRouteKeys.filter(
|
|
401
|
+
(key) => key !== route.key
|
|
402
|
+
),
|
|
403
|
+
replacingRouteKeys: state.replacingRouteKeys.filter(
|
|
404
|
+
(key) => !replacingRoutesToRemove.has(key)
|
|
405
|
+
),
|
|
406
|
+
};
|
|
407
|
+
});
|
|
352
408
|
}
|
|
353
409
|
};
|
|
354
410
|
|