@react-navigation/core 8.0.0-alpha.27 → 8.0.0-alpha.29
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/BaseNavigationContainer.js +5 -1
- package/lib/module/BaseNavigationContainer.js.map +1 -1
- package/lib/module/NavigationBuilderContext.js +1 -0
- package/lib/module/NavigationBuilderContext.js.map +1 -1
- package/lib/module/useDescriptors.js +4 -3
- package/lib/module/useDescriptors.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +62 -29
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useOnAction.js +20 -2
- package/lib/module/useOnAction.js.map +1 -1
- package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/NavigationBuilderContext.d.ts +2 -1
- package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationProvider.d.ts +2 -2
- package/lib/typescript/src/useDescriptors.d.ts +1 -1
- package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useOnAction.d.ts.map +1 -1
- package/lib/typescript/src/useRouteCache.d.ts +1 -1
- package/package.json +3 -3
- package/src/BaseNavigationContainer.tsx +10 -0
- package/src/NavigationBuilderContext.tsx +3 -1
- package/src/useDescriptors.tsx +3 -1
- package/src/useNavigationBuilder.tsx +93 -37
- package/src/useOnAction.tsx +25 -0
|
@@ -210,16 +210,19 @@ export function BaseNavigationContainer({
|
|
|
210
210
|
});
|
|
211
211
|
});
|
|
212
212
|
const stackRef = React.useRef(undefined);
|
|
213
|
+
const lastEmittedStateRef = React.useRef(undefined);
|
|
214
|
+
const getIsStateEmitted = useLatestCallback(() => !isFirstMountRef.current && lastEmittedStateRef.current === getState());
|
|
213
215
|
const builderContext = React.useMemo(() => ({
|
|
214
216
|
addListener,
|
|
215
217
|
addKeyedListener,
|
|
216
218
|
onDispatchAction,
|
|
217
219
|
onEmitEvent,
|
|
218
220
|
onOptionsChange,
|
|
221
|
+
getIsStateEmitted,
|
|
219
222
|
scheduleUpdate,
|
|
220
223
|
flushUpdates,
|
|
221
224
|
stackRef
|
|
222
|
-
}), [addListener, addKeyedListener, onDispatchAction, onEmitEvent, onOptionsChange, scheduleUpdate, flushUpdates]);
|
|
225
|
+
}), [addListener, addKeyedListener, onDispatchAction, onEmitEvent, onOptionsChange, getIsStateEmitted, scheduleUpdate, flushUpdates]);
|
|
223
226
|
const isInitialRef = React.useRef(true);
|
|
224
227
|
const getIsInitial = React.useCallback(() => isInitialRef.current, []);
|
|
225
228
|
const context = React.useMemo(() => ({
|
|
@@ -305,6 +308,7 @@ export function BaseNavigationContainer({
|
|
|
305
308
|
}
|
|
306
309
|
}
|
|
307
310
|
}
|
|
311
|
+
lastEmittedStateRef.current = state;
|
|
308
312
|
emitter.emit({
|
|
309
313
|
type: 'state',
|
|
310
314
|
data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","React","useLatestCallback","checkDuplicateRouteNames","checkSerializable","ConsumedParamsContext","NOT_INITIALIZED_ERROR","EnsureSingleNavigator","findFocusedRoute","NavigationBuilderContext","NavigationContainerRefContext","NavigationIndependentTreeContext","NavigationStateContext","ThemeProvider","UnhandledActionContext","useChildListeners","useEventEmitter","useKeyedChildListeners","useLazyValue","useNavigationIndependentTree","useOptionsGetters","useSyncState","jsx","_jsx","serializableWarnings","duplicateNameWarnings","getPartialState","state","undefined","key","routeNames","partialState","stale","routes","map","route","BaseNavigationContainer","initialState","onStateChange","onReady","onUnhandledAction","theme","children","ref","parent","use","independent","isDefault","Error","getState","setState","scheduleUpdate","flushUpdates","consumedParams","WeakMap","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","listener","focus","console","error","navigation","startTransition","canGoBack","result","handled","resetRoot","target","root","reset","getRootState","getCurrentRoute","isReady","emitter","addOptionsGetter","getCurrentOptions","useMemo","Object","keys","reduce","acc","name","args","create","isFocused","getParent","setOptions","useImperativeHandle","onDispatchAction","noop","emit","type","data","stack","stackRef","onEmitEvent","event","lastEmittedOptionsRef","onOptionsChange","options","builderContext","isInitialRef","getIsInitial","context","onReadyRef","onStateChangeRef","useEffect","onReadyCalledRef","hydratedState","process","env","NODE_ENV","serializableResult","serializable","location","reason","path","pointer","params","i","length","curr","prev","test","JSON","stringify","message","includes","push","warn","duplicateRouteNamesResult","locations","join","defaultOnUnhandledAction","payload","Provider","value"],"sourceRoot":"../../src","sources":["BaseNavigationContainer.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CommonActions","React","useLatestCallback","checkDuplicateRouteNames","checkSerializable","ConsumedParamsContext","NOT_INITIALIZED_ERROR","EnsureSingleNavigator","findFocusedRoute","NavigationBuilderContext","NavigationContainerRefContext","NavigationIndependentTreeContext","NavigationStateContext","ThemeProvider","UnhandledActionContext","useChildListeners","useEventEmitter","useKeyedChildListeners","useLazyValue","useNavigationIndependentTree","useOptionsGetters","useSyncState","jsx","_jsx","serializableWarnings","duplicateNameWarnings","getPartialState","state","undefined","key","routeNames","partialState","stale","routes","map","route","BaseNavigationContainer","initialState","onStateChange","onReady","onUnhandledAction","theme","children","ref","parent","use","independent","isDefault","Error","getState","setState","scheduleUpdate","flushUpdates","consumedParams","WeakMap","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","listener","focus","console","error","navigation","startTransition","canGoBack","result","handled","resetRoot","target","root","reset","getRootState","getCurrentRoute","isReady","emitter","addOptionsGetter","getCurrentOptions","useMemo","Object","keys","reduce","acc","name","args","create","isFocused","getParent","setOptions","useImperativeHandle","onDispatchAction","noop","emit","type","data","stack","stackRef","onEmitEvent","event","lastEmittedOptionsRef","onOptionsChange","options","lastEmittedStateRef","getIsStateEmitted","builderContext","isInitialRef","getIsInitial","context","onReadyRef","onStateChangeRef","useEffect","onReadyCalledRef","hydratedState","process","env","NODE_ENV","serializableResult","serializable","location","reason","path","pointer","params","i","length","curr","prev","test","JSON","stringify","message","includes","push","warn","duplicateRouteNamesResult","locations","join","defaultOnUnhandledAction","payload","Provider","value"],"sourceRoot":"../../src","sources":["BaseNavigationContainer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ export const NavigationBuilderContext = /*#__PURE__*/React.createContext({
|
|
|
8
8
|
onDispatchAction: () => undefined,
|
|
9
9
|
onEmitEvent: () => undefined,
|
|
10
10
|
onOptionsChange: () => undefined,
|
|
11
|
+
getIsStateEmitted: () => false,
|
|
11
12
|
scheduleUpdate: () => {
|
|
12
13
|
throw new Error("Couldn't find a context for scheduling updates.");
|
|
13
14
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAMA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAgD9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,
|
|
1
|
+
{"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","getIsStateEmitted","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAMA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAgD9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAmBxD;EACDC,gBAAgB,EAAEA,CAAA,KAAMC,SAAS;EACjCC,WAAW,EAAEA,CAAA,KAAMD,SAAS;EAC5BE,eAAe,EAAEA,CAAA,KAAMF,SAAS;EAChCG,iBAAiB,EAAEA,CAAA,KAAM,KAAK;EAC9BC,cAAc,EAAEA,CAAA,KAAM;IACpB,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAID,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -39,7 +39,8 @@ export function useDescriptors({
|
|
|
39
39
|
onOptionsChange,
|
|
40
40
|
scheduleUpdate,
|
|
41
41
|
flushUpdates,
|
|
42
|
-
stackRef
|
|
42
|
+
stackRef,
|
|
43
|
+
getIsStateEmitted
|
|
43
44
|
} = React.use(NavigationBuilderContext);
|
|
44
45
|
const context = React.useMemo(() => ({
|
|
45
46
|
navigation,
|
|
@@ -50,10 +51,11 @@ export function useDescriptors({
|
|
|
50
51
|
onDispatchAction,
|
|
51
52
|
onEmitEvent,
|
|
52
53
|
onOptionsChange,
|
|
54
|
+
getIsStateEmitted,
|
|
53
55
|
scheduleUpdate,
|
|
54
56
|
flushUpdates,
|
|
55
57
|
stackRef
|
|
56
|
-
}), [navigation, onAction, addListener, addKeyedListener, onRouteFocus, onDispatchAction, onEmitEvent, onOptionsChange, scheduleUpdate, flushUpdates, stackRef]);
|
|
58
|
+
}), [navigation, onAction, addListener, addKeyedListener, onRouteFocus, onDispatchAction, onEmitEvent, onOptionsChange, getIsStateEmitted, scheduleUpdate, flushUpdates, stackRef]);
|
|
57
59
|
const navigations = useNavigationCache({
|
|
58
60
|
routes,
|
|
59
61
|
getState,
|
|
@@ -91,7 +93,6 @@ export function useDescriptors({
|
|
|
91
93
|
}
|
|
92
94
|
const clearOptions = () => setOptions(o => {
|
|
93
95
|
if (route.key in o) {
|
|
94
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
95
96
|
const {
|
|
96
97
|
[route.key]: _,
|
|
97
98
|
...rest
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationBuilderContext","NavigationProvider","SceneView","ThemeContext","useNavigationCache","useRouteCache","jsx","_jsx","useDescriptors","routes","screens","navigation","screenOptions","screenLayout","onAction","getState","setState","addListener","addKeyedListener","onRouteFocus","router","emitter","theme","use","options","setOptions","useState","onDispatchAction","onEmitEvent","onOptionsChange","scheduleUpdate","flushUpdates","stackRef","context","useMemo","navigations","cachedRoutes","getOptions","route","overrides","config","name","screen","props","optionsList","filter","Boolean","reduce","acc","curr","Object","assign","render","customOptions","routeState","Error","clearOptions","o","key","_","rest","layout","element","children","Provider","value","descriptors","i","state"],"sourceRoot":"../../src","sources":["useDescriptors.tsx"],"mappings":";;AAOA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAGEC,wBAAwB,QACnB,+BAA4B;AACnC,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,YAAY,QAAQ,2BAAwB;AAWrD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA2DhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAK5B;EACAC,MAAM;EACNC,OAAO;EACPC,UAAU;EACVC,aAAa;EACbC,YAAY;EACZC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,WAAW;EACXC,gBAAgB;EAChBC,YAAY;EACZC,MAAM;EACNC;AACuC,CAAC,EAAE;EAC1C,MAAMC,KAAK,GAAGvB,KAAK,CAACwB,GAAG,CAACpB,YAAY,CAAC;EACrC,MAAM,CAACqB,OAAO,EAAEC,UAAU,CAAC,GAAG1B,KAAK,CAAC2B,QAAQ,CAE1C,CAAC,CAAC,CAAC;EACL,MAAM;IACJC,gBAAgB;IAChBC,WAAW;IACXC,eAAe;IACfC,cAAc;IACdC,YAAY;IACZC;EACF,CAAC,
|
|
1
|
+
{"version":3,"names":["React","NavigationBuilderContext","NavigationProvider","SceneView","ThemeContext","useNavigationCache","useRouteCache","jsx","_jsx","useDescriptors","routes","screens","navigation","screenOptions","screenLayout","onAction","getState","setState","addListener","addKeyedListener","onRouteFocus","router","emitter","theme","use","options","setOptions","useState","onDispatchAction","onEmitEvent","onOptionsChange","scheduleUpdate","flushUpdates","stackRef","getIsStateEmitted","context","useMemo","navigations","cachedRoutes","getOptions","route","overrides","config","name","screen","props","optionsList","filter","Boolean","reduce","acc","curr","Object","assign","render","customOptions","routeState","Error","clearOptions","o","key","_","rest","layout","element","children","Provider","value","descriptors","i","state"],"sourceRoot":"../../src","sources":["useDescriptors.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,6 @@ import { ConsumedParamsContext } from "./ConsumedParamsContext.js";
|
|
|
9
9
|
import { deepFreeze } from "./deepFreeze.js";
|
|
10
10
|
import { Group } from "./Group.js";
|
|
11
11
|
import { isArrayEqual } from "./isArrayEqual.js";
|
|
12
|
-
import { isRecordEqual } from "./isRecordEqual.js";
|
|
13
12
|
import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
|
|
14
13
|
import { NavigationHelpersContext } from "./NavigationHelpersContext.js";
|
|
15
14
|
import { NavigationMetaContext } from "./NavigationMetaContext.js";
|
|
@@ -54,7 +53,7 @@ const isValidKey = key => key === undefined || typeof key === 'string' && key !=
|
|
|
54
53
|
*
|
|
55
54
|
* @param children React Elements to extract the config from.
|
|
56
55
|
*/
|
|
57
|
-
const getRouteConfigsFromChildren = (children,
|
|
56
|
+
const getRouteConfigsFromChildren = (children, groupKeys = [], groupOptions, groupLayout) => {
|
|
58
57
|
const configs = React.Children.toArray(children).reduce((acc, child) => {
|
|
59
58
|
if (/*#__PURE__*/React.isValidElement(child)) {
|
|
60
59
|
if (isScreen(child)) {
|
|
@@ -71,7 +70,7 @@ const getRouteConfigsFromChildren = (children, groupKey, groupOptions, groupLayo
|
|
|
71
70
|
throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(child.props.navigationKey)}) for the screen '${child.props.name}'. It must be a non-empty string or 'undefined'.`);
|
|
72
71
|
}
|
|
73
72
|
acc.push({
|
|
74
|
-
keys: [
|
|
73
|
+
keys: [...groupKeys, child.props.navigationKey],
|
|
75
74
|
options: groupOptions,
|
|
76
75
|
layout: groupLayout,
|
|
77
76
|
props: child.props
|
|
@@ -85,7 +84,7 @@ const getRouteConfigsFromChildren = (children, groupKey, groupOptions, groupLayo
|
|
|
85
84
|
|
|
86
85
|
// When we encounter a fragment or group, we need to dive into its children to extract the configs
|
|
87
86
|
// This is handy to conditionally define a group of screens
|
|
88
|
-
acc.push(...getRouteConfigsFromChildren(child.props.children, child.props.navigationKey,
|
|
87
|
+
acc.push(...getRouteConfigsFromChildren(child.props.children, child.props.navigationKey != null ? [...groupKeys, child.props.navigationKey] : groupKeys,
|
|
89
88
|
// FIXME
|
|
90
89
|
// @ts-expect-error: add validation
|
|
91
90
|
child.type !== Group ? groupOptions : groupOptions != null ? [...groupOptions, child.props.screenOptions] : [child.props.screenOptions], typeof child.props.screenLayout === 'function' ? child.props.screenLayout : groupLayout));
|
|
@@ -138,9 +137,15 @@ const getRouteConfigsFromChildren = (children, groupKey, groupOptions, groupLayo
|
|
|
138
137
|
}
|
|
139
138
|
return configs;
|
|
140
139
|
};
|
|
141
|
-
const getStateFromParams = params => {
|
|
140
|
+
const getStateFromParams = (params, type) => {
|
|
142
141
|
const state = params?.state;
|
|
143
142
|
if (isNavigationState(state)) {
|
|
143
|
+
if (state.type != null && state.type !== type) {
|
|
144
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
145
|
+
console.error(`The state passed in the params is for a navigator of type '${state.type}', but it was passed to a navigator of type '${type}'. This can happen if the state was meant for a different navigator. The state will be discarded.`);
|
|
146
|
+
}
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
144
149
|
return state;
|
|
145
150
|
} else if (typeof params?.screen === 'string' && params?.initial !== false) {
|
|
146
151
|
return {
|
|
@@ -204,7 +209,7 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
204
209
|
throw new Error(`A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${name}')`);
|
|
205
210
|
}
|
|
206
211
|
screens[name] = config;
|
|
207
|
-
routeKeyList[name] = config.keys
|
|
212
|
+
routeKeyList[name] = config.keys;
|
|
208
213
|
routeParamList[name] = config.props.initialParams;
|
|
209
214
|
Object.assign(routeGetIdList, {
|
|
210
215
|
[name]: config.props.getId
|
|
@@ -221,6 +226,10 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
221
226
|
getKey,
|
|
222
227
|
getIsInitial
|
|
223
228
|
} = React.use(NavigationStateContext);
|
|
229
|
+
const {
|
|
230
|
+
onEmitEvent,
|
|
231
|
+
getIsStateEmitted
|
|
232
|
+
} = React.use(NavigationBuilderContext);
|
|
224
233
|
const stateCleanupRef = React.useRef(false);
|
|
225
234
|
const lastStateRef = React.useRef(undefined);
|
|
226
235
|
const setState = useLatestCallback(state => {
|
|
@@ -271,7 +280,7 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
271
280
|
}), true, undefined];
|
|
272
281
|
} else {
|
|
273
282
|
const paramsForState = isNestedParamsConsumed ? undefined : route?.params;
|
|
274
|
-
const stateFromParams = paramsForState ? getStateFromParams(paramsForState) : undefined;
|
|
283
|
+
const stateFromParams = paramsForState ? getStateFromParams(paramsForState, router.type) : undefined;
|
|
275
284
|
const stateBeforeInitialization = stateFromParams ?? currentState;
|
|
276
285
|
const hydratedState = stateBeforeInitialization == null ? router.getInitialState({
|
|
277
286
|
routeNames,
|
|
@@ -282,7 +291,7 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
282
291
|
routeParamList: initialRouteParamList,
|
|
283
292
|
routeGetIdList
|
|
284
293
|
});
|
|
285
|
-
if (stateBeforeInitialization != null && options.routeNamesChangeBehavior === 'lastUnhandled' && doesStateHaveOnlyInvalidRoutes(stateBeforeInitialization)) {
|
|
294
|
+
if (stateBeforeInitialization != null && isStateValid(stateBeforeInitialization) && options.routeNamesChangeBehavior === 'lastUnhandled' && doesStateHaveOnlyInvalidRoutes(stateBeforeInitialization)) {
|
|
286
295
|
return [stateBeforeInitialization, hydratedState, true, paramsForState];
|
|
287
296
|
}
|
|
288
297
|
return [undefined, hydratedState, false,
|
|
@@ -302,6 +311,13 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
302
311
|
previousRouteKeyListRef.current = routeKeyList;
|
|
303
312
|
});
|
|
304
313
|
const previousRouteKeyList = previousRouteKeyListRef.current;
|
|
314
|
+
|
|
315
|
+
// Names of the screens whose navigation key changed since the last render
|
|
316
|
+
const routeKeyChanges = Object.keys(routeKeyList).filter(name => {
|
|
317
|
+
const current = routeKeyList[name];
|
|
318
|
+
const previous = previousRouteKeyList[name];
|
|
319
|
+
return current != null && previous != null && !isArrayEqual(current, previous);
|
|
320
|
+
});
|
|
305
321
|
const [unhandledState, setUnhandledState] = React.useState(stateBeforeInitialization);
|
|
306
322
|
|
|
307
323
|
// An unhandled state is state that didn't have any valid routes
|
|
@@ -318,44 +334,50 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
318
334
|
isStateInitialized(currentState) ? currentState : initializedState;
|
|
319
335
|
let nextState = state;
|
|
320
336
|
let shouldClearUnhandledState = false;
|
|
321
|
-
|
|
337
|
+
if (unhandledState != null && !isStateValid(unhandledState)) {
|
|
338
|
+
// The stored unhandled state is for a different type of navigator
|
|
339
|
+
// It can't be used with this navigator, so we discard it
|
|
340
|
+
setUnhandledState(undefined);
|
|
341
|
+
} else if (
|
|
322
342
|
// Previously unhandled state is now valid again
|
|
323
343
|
// And current state no longer has any valid routes
|
|
324
344
|
// We should reuse the unhandled state instead of re-calculating the state
|
|
325
|
-
|
|
345
|
+
unhandledState?.routes.every(r => routeNames.includes(r.name)) && state?.routes.every(r => !routeNames.includes(r.name))) {
|
|
326
346
|
shouldClearUnhandledState = true;
|
|
327
347
|
nextState = router.getRehydratedState(unhandledState, {
|
|
328
348
|
routeNames,
|
|
329
349
|
routeParamList,
|
|
330
350
|
routeGetIdList
|
|
331
351
|
});
|
|
332
|
-
} else if (!isArrayEqual(state.routeNames, routeNames) ||
|
|
352
|
+
} else if (!isArrayEqual(state.routeNames, routeNames) || routeKeyChanges.length !== 0) {
|
|
333
353
|
// When the list of route names change, the router should handle it to remove invalid routes
|
|
334
354
|
nextState = router.getStateForRouteNamesChange(state, {
|
|
335
355
|
routeNames,
|
|
336
356
|
routeParamList,
|
|
337
357
|
routeGetIdList,
|
|
338
|
-
routeKeyChanges
|
|
358
|
+
routeKeyChanges
|
|
339
359
|
});
|
|
340
360
|
}
|
|
341
361
|
let didConsumeNestedParams = route?.params === paramsUsedForInitialization;
|
|
342
362
|
if (route?.params && !didConsumeNestedParams) {
|
|
343
363
|
let action;
|
|
344
|
-
|
|
345
|
-
if (isNavigationState(stateFromParams) && !isNestedParamsConsumed) {
|
|
364
|
+
if (isNavigationState(route.params.state) && !isNestedParamsConsumed) {
|
|
346
365
|
didConsumeNestedParams = true;
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
366
|
+
const stateFromParams = getStateFromParams(route.params, router.type);
|
|
367
|
+
if (stateFromParams != null) {
|
|
368
|
+
if (options.routeNamesChangeBehavior === 'lastUnhandled' && doesStateHaveOnlyInvalidRoutes(stateFromParams)) {
|
|
369
|
+
if (stateFromParams !== unhandledState) {
|
|
370
|
+
setUnhandledState(stateFromParams);
|
|
371
|
+
}
|
|
372
|
+
} else {
|
|
373
|
+
// If the route was updated with new state, we should reset to it
|
|
374
|
+
action = CommonActions.reset(stateFromParams);
|
|
350
375
|
}
|
|
351
|
-
} else {
|
|
352
|
-
// If the route was updated with new state, we should reset to it
|
|
353
|
-
action = CommonActions.reset(stateFromParams);
|
|
354
376
|
}
|
|
355
377
|
} else if (typeof route.params.screen === 'string' && (route.params.initial === false && isFirstStateInitialization || !isNestedParamsConsumed)) {
|
|
356
378
|
didConsumeNestedParams = true;
|
|
357
379
|
if (options.routeNamesChangeBehavior === 'lastUnhandled' && !routeNames.includes(route.params.screen)) {
|
|
358
|
-
const state = getStateFromParams(route.params);
|
|
380
|
+
const state = getStateFromParams(route.params, router.type);
|
|
359
381
|
if (state != null && !deepEqual(state, unhandledState)) {
|
|
360
382
|
setUnhandledState(state);
|
|
361
383
|
}
|
|
@@ -380,6 +402,10 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
380
402
|
routeParamList,
|
|
381
403
|
routeGetIdList
|
|
382
404
|
}) : null;
|
|
405
|
+
if (process.env.NODE_ENV !== 'production' && action != null && updatedState === null) {
|
|
406
|
+
const names = routeNames.map(name => `'${name}'`).join(', ');
|
|
407
|
+
console.error(`The 'state' or 'screen' passed in the params couldn't be applied to the navigator with the screens: ${names}. This can happen if the params contain names of screens that don't exist in the navigator. The navigation specified in the params will be ignored.`);
|
|
408
|
+
}
|
|
383
409
|
nextState = updatedState !== null ? router.getRehydratedState(updatedState, {
|
|
384
410
|
routeNames,
|
|
385
411
|
routeParamList,
|
|
@@ -417,12 +443,22 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
417
443
|
// So we need to reset the flag if component was not unmounted
|
|
418
444
|
stateCleanupRef.current = false;
|
|
419
445
|
setKey(navigatorKey);
|
|
420
|
-
if (!getIsInitial() && lastNotifiedStateRef.current !== state) {
|
|
421
|
-
//
|
|
422
|
-
//
|
|
446
|
+
if ((!getIsInitial() || getIsStateEmitted()) && lastNotifiedStateRef.current !== state) {
|
|
447
|
+
// We need to notify the state update in these scenarios:
|
|
448
|
+
// 1. If it's not the initial render of the component containing the navigator
|
|
449
|
+
// 2. If the container has already emitted state before the navigator mounted
|
|
450
|
+
//
|
|
451
|
+
// This will make sure that the container gets notified of state changes due to new mounts
|
|
423
452
|
// This is necessary for proper screen tracking, URL updates etc.
|
|
424
|
-
//
|
|
425
|
-
//
|
|
453
|
+
//
|
|
454
|
+
// During hydration, a nested navigator may mount after the container's initial state event.
|
|
455
|
+
// Or mount could be delayed due to conditional rendering, suspense etc.
|
|
456
|
+
// So only checking for the initial render is not enough.
|
|
457
|
+
// We also need to propagate the navigator's initial state when it mounts later,
|
|
458
|
+
// so the container is notified that the nested state is now available.
|
|
459
|
+
//
|
|
460
|
+
// We only notify if the state is different from what we already notified
|
|
461
|
+
// Otherwise, this goes into a loop when inside `<Activity mode="hidden">`
|
|
426
462
|
setState(state);
|
|
427
463
|
lastNotifiedStateRef.current = state;
|
|
428
464
|
}
|
|
@@ -444,9 +480,6 @@ export function useNavigationBuilder(createRouter, options) {
|
|
|
444
480
|
const currentState = getCurrentState();
|
|
445
481
|
return deepFreeze(isStateInitialized(currentState) ? currentState : initializedState);
|
|
446
482
|
});
|
|
447
|
-
const {
|
|
448
|
-
onEmitEvent
|
|
449
|
-
} = React.use(NavigationBuilderContext);
|
|
450
483
|
const emitter = useEventEmitter(e => {
|
|
451
484
|
const routeNames = [];
|
|
452
485
|
let route;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","ConsumedParamsContext","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationBuilderContext","NavigationHelpersContext","NavigationMetaContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useComponent","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","FocusedRouteKeyContext","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","isNavigationState","state","Array","isArray","routes","isScreen","child","type","isGroup","Fragment","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","groupLayout","configs","Children","toArray","reduce","acc","isValidElement","props","Error","name","JSON","stringify","navigationKey","push","keys","options","layout","screenOptions","screenLayout","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","getStateFromParams","params","screen","initial","path","useNavigationBuilder","createRouter","navigatorKey","route","use","consumedParams","isNestedParamsConsumed","has","screenListeners","router","routerOverrides","rest","routeConfigs","initialRouteName","every","original","overrides","routeNames","map","length","screens","routeKeyList","routeParamList","routeGetIdList","join","initialParams","Object","assign","getId","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanupRef","useRef","lastStateRef","current","stateBeforeInitialization","initializedState","isFirstStateInitialization","paramsUsedForInitialization","useMemo","getRehydratedState","initialRouteParamList","curr","initialParamsFromParams","getInitialState","paramsForState","stateFromParams","hydratedState","routeNamesChangeBehavior","previousRouteKeyListRef","useInsertionEffect","previousRouteKeyList","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","routeKeyChanges","filter","didConsumeNestedParams","action","reset","payload","merge","pop","updatedState","getStateForAction","useEffect","set","shouldUpdate","lastNotifiedStateRef","onEmitEvent","emitter","e","target","find","index","hasPerScreenListeners","some","listeners","descriptor","descriptors","navigation","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","focusedListeners","focus","getStateListeners","NavigationContent","focusedRoute","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":";;AAAA,SACEA,aAAa,QAUR,2BAA2B;AAClC,OAAOC,SAAS,MAAM,iBAAiB;AACvC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,kBAAkB,QAAQ,UAAU;AAC7C,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,sBAAsB,QAAQ,yBAAsB;AAC7D,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,MAAM,QAAQ,aAAU;AACjC,SAKEC,iBAAiB,QAEZ,YAAS;AAChB,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAAsCC,cAAc,QAAQ,qBAAkB;AAC9E,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,kCAAkC,QAAQ,yCAAsC;AACzF,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,sBAAsB,QAAQ,mBAAgB;AACvD,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,+BAA+B,QAAQ,yBAAsB;AACtE,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,iBAAiB,QAAQ,wBAAqB;;AAEvD;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AACAnB,iBAAiB;AAOjB,MAAMoB,iBAAiB,GACrBC,KAAc,IAEdA,KAAK,IAAI,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ,IACzB,QAAQ,IAAIA,KAAK,IACjBC,KAAK,CAACC,OAAO,CAACF,KAAK,CAACG,MAAM,CAAC;AAE7B,MAAMC,QAAQ,GACZC,KAAkC,IAI9B;EACJ,OAAOA,KAAK,CAACC,IAAI,KAAK5B,MAAM;AAC9B,CAAC;AAED,MAAM6B,OAAO,GACXF,KAAkC,IAM9B;EACJ,OAAOA,KAAK,CAACC,IAAI,KAAK1C,KAAK,CAAC4C,QAAQ,IAAIH,KAAK,CAACC,IAAI,KAAKrC,KAAK;AAC9D,CAAC;AAED,MAAMwC,UAAU,GAAIC,GAAY,IAC9BA,GAAG,KAAKC,SAAS,IAAK,OAAOD,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,EAAG;;AAE9D;AACA;AACA;AACA;AACA;AACA,MAAME,2BAA2B,GAAGA,CAKlCC,QAAyB,EACzBC,QAAiB,EACjBC,YAIY,EACZC,WAA8E,KAC3E;EACH,MAAMC,OAAO,GAAGrD,KAAK,CAACsD,QAAQ,CAACC,OAAO,CAACN,QAAQ,CAAC,CAACO,MAAM,CAErD,CAACC,GAAG,EAAEhB,KAAK,KAAK;IAChB,iBAAIzC,KAAK,CAAC0D,cAAc,CAACjB,KAAK,CAAC,EAAE;MAC/B,IAAID,QAAQ,CAACC,KAAK,CAAC,EAAE;QACnB;QACA;;QAEA,IAAI,OAAOA,KAAK,CAACkB,KAAK,KAAK,QAAQ,IAAIlB,KAAK,CAACkB,KAAK,KAAK,IAAI,EAAE;UAC3D,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;QACvD;QAEA,IAAI,OAAOnB,KAAK,CAACkB,KAAK,CAACE,IAAI,KAAK,QAAQ,IAAIpB,KAAK,CAACkB,KAAK,CAACE,IAAI,KAAK,EAAE,EAAE;UACnE,MAAM,IAAID,KAAK,CACb,wBAAwBE,IAAI,CAACC,SAAS,CACpCtB,KAAK,CAACkB,KAAK,CAACE,IACd,CAAC,kDACH,CAAC;QACH;QAEA,IACEpB,KAAK,CAACkB,KAAK,CAACK,aAAa,KAAKjB,SAAS,KACtC,OAAON,KAAK,CAACkB,KAAK,CAACK,aAAa,KAAK,QAAQ,IAC5CvB,KAAK,CAACkB,KAAK,CAACK,aAAa,KAAK,EAAE,CAAC,EACnC;UACA,MAAM,IAAIJ,KAAK,CACb,wCAAwCE,IAAI,CAACC,SAAS,CACpDtB,KAAK,CAACkB,KAAK,CAACK,aACd,CAAC,qBACCvB,KAAK,CAACkB,KAAK,CAACE,IAAI,kDAEpB,CAAC;QACH;QAEAJ,GAAG,CAACQ,IAAI,CAAC;UACPC,IAAI,EAAE,CAAChB,QAAQ,EAAET,KAAK,CAACkB,KAAK,CAACK,aAAa,CAAC;UAC3CG,OAAO,EAAEhB,YAAY;UACrBiB,MAAM,EAAEhB,WAAW;UACnBO,KAAK,EAAElB,KAAK,CAACkB;QAQf,CAAC,CAAC;QAEF,OAAOF,GAAG;MACZ;MAEA,IAAId,OAAO,CAACF,KAAK,CAAC,EAAE;QAClB,IAAI,CAACI,UAAU,CAACJ,KAAK,CAACkB,KAAK,CAACK,aAAa,CAAC,EAAE;UAC1C,MAAM,IAAIJ,KAAK,CACb,wCAAwCE,IAAI,CAACC,SAAS,CACpDtB,KAAK,CAACkB,KAAK,CAACK,aACd,CAAC,gEACH,CAAC;QACH;;QAEA;QACA;QACAP,GAAG,CAACQ,IAAI,CACN,GAAGjB,2BAA2B,CAC5BP,KAAK,CAACkB,KAAK,CAACV,QAAQ,EACpBR,KAAK,CAACkB,KAAK,CAACK,aAAa;QACzB;QACA;QACAvB,KAAK,CAACC,IAAI,KAAKrC,KAAK,GAChB8C,YAAY,GACZA,YAAY,IAAI,IAAI,GAClB,CAAC,GAAGA,YAAY,EAAEV,KAAK,CAACkB,KAAK,CAACU,aAAa,CAAC,GAC5C,CAAC5B,KAAK,CAACkB,KAAK,CAACU,aAAa,CAAC,EACjC,OAAO5B,KAAK,CAACkB,KAAK,CAACW,YAAY,KAAK,UAAU,GAC1C7B,KAAK,CAACkB,KAAK,CAACW,YAAY,GACxBlB,WACN,CACF,CAAC;QAED,OAAOK,GAAG;MACZ;IACF;IAEA,MAAM,IAAIG,KAAK,CACb,oGACE,cAAA5D,KAAK,CAAC0D,cAAc,CAACjB,KAAK,CAAC,GACvB,IACE,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ,GAAGD,KAAK,CAACC,IAAI,GAAGD,KAAK,CAACC,IAAI,EAAEmB,IAAI,IAE9DpB,KAAK,CAACkB,KAAK,IAAI,IAAI,IACnB,OAAOlB,KAAK,CAACkB,KAAK,KAAK,QAAQ,IAC/B,MAAM,IAAIlB,KAAK,CAACkB,KAAK,IACrBlB,KAAK,CAACkB,KAAK,EAAEE,IAAI,GACb,oBAAoBpB,KAAK,CAACkB,KAAK,CAACE,IAAI,GAAG,GACvC,EAAE,EACN,GACF,OAAOpB,KAAK,KAAK,QAAQ,GACvBqB,IAAI,CAACC,SAAS,CAACtB,KAAK,CAAC,GACrB,IAAI8B,MAAM,CAAC9B,KAAK,CAAC,GAAG,4FAE9B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI+B,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzCrB,OAAO,CAACsB,OAAO,CAAEC,MAAM,IAAK;MAC1B,MAAM;QAAEf,IAAI;QAAEZ,QAAQ;QAAE4B,SAAS;QAAEC;MAAa,CAAC,GAAGF,MAAM,CAACjB,KAAK;MAEhE,IACEV,QAAQ,IAAI,IAAI,IAChB4B,SAAS,KAAK9B,SAAS,IACvB+B,YAAY,KAAK/B,SAAS,EAC1B;QACA,IAAIE,QAAQ,IAAI,IAAI,IAAI4B,SAAS,KAAK9B,SAAS,EAAE;UAC/C,MAAM,IAAIa,KAAK,CACb,6DAA6DC,IAAI,oCACnE,CAAC;QACH;QAEA,IAAIZ,QAAQ,IAAI,IAAI,IAAI6B,YAAY,KAAK/B,SAAS,EAAE;UAClD,MAAM,IAAIa,KAAK,CACb,gEAAgEC,IAAI,oCACtE,CAAC;QACH;QAEA,IAAIgB,SAAS,KAAK9B,SAAS,IAAI+B,YAAY,KAAK/B,SAAS,EAAE;UACzD,MAAM,IAAIa,KAAK,CACb,iEAAiEC,IAAI,oCACvE,CAAC;QACH;QAEA,IAAIZ,QAAQ,IAAI,IAAI,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;UACtD,MAAM,IAAIW,KAAK,CACb,4DAA4DC,IAAI,qDAClE,CAAC;QACH;QAEA,IAAIgB,SAAS,KAAK9B,SAAS,IAAI,CAAC9C,kBAAkB,CAAC4E,SAAS,CAAC,EAAE;UAC7D,MAAM,IAAIjB,KAAK,CACb,6DAA6DC,IAAI,wCACnE,CAAC;QACH;QAEA,IAAIiB,YAAY,KAAK/B,SAAS,IAAI,OAAO+B,YAAY,KAAK,UAAU,EAAE;UACpE,MAAM,IAAIlB,KAAK,CACb,gEAAgEC,IAAI,uDACtE,CAAC;QACH;QAEA,IAAI,OAAOgB,SAAS,KAAK,UAAU,EAAE;UACnC,IAAIA,SAAS,CAAChB,IAAI,KAAK,WAAW,EAAE;YAClC;YACA;YACA;YACAkB,OAAO,CAACC,IAAI,CACV,qFAAqFnB,IAAI,uRAC3F,CAAC;UACH,CAAC,MAAM,IAAI,QAAQ,CAACoB,IAAI,CAACJ,SAAS,CAAChB,IAAI,CAAC,EAAE;YACxCkB,OAAO,CAACC,IAAI,CACV,kCAAkCH,SAAS,CAAChB,IAAI,qBAAqBA,IAAI,yMAC3E,CAAC;UACH;QACF;MACF,CAAC,MAAM;QACL,MAAM,IAAID,KAAK,CACb,kFAAkFC,IAAI,qLACxF,CAAC;MACH;IACF,CAAC,CAAC;EACJ;EAEA,OAAOR,OAAO;AAChB,CAAC;AAED,MAAM6B,kBAAkB,GAAIC,MAAgC,IAAK;EAC/D,MAAM/C,KAAK,GAAG+C,MAAM,EAAE/C,KAAK;EAE3B,IAAID,iBAAiB,CAACC,KAAK,CAAC,EAAE;IAC5B,OAAOA,KAAK;EACd,CAAC,MAAM,IAAI,OAAO+C,MAAM,EAAEC,MAAM,KAAK,QAAQ,IAAID,MAAM,EAAEE,OAAO,KAAK,KAAK,EAAE;IAC1E,OAAO;MACL9C,MAAM,EAAE,CACN;QACEsB,IAAI,EAAEsB,MAAM,CAACC,MAAM;QACnBD,MAAM,EAAEA,MAAM,CAACA,MAAM;QACrBG,IAAI,EAAEH,MAAM,CAACG;MACf,CAAC;IAEL,CAAC;EACH;EAEA,OAAOvC,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASwC,oBAAoBA,CAOlCC,YAAmE,EACnErB,OAOe,EACf;EACA,MAAMsB,YAAY,GAAG1D,oBAAoB,CAAC,CAAC;EAE3C,MAAM2D,KAAK,GAAG1F,KAAK,CAAC2F,GAAG,CAAChF,sBAAsB,CAA+B;EAE7E,MAAMiF,cAAc,GAAG5F,KAAK,CAAC2F,GAAG,CAACxF,qBAAqB,CAAC;EAEvD,MAAM0F,sBAAsB,GAC1B,OAAOH,KAAK,EAAEP,MAAM,KAAK,QAAQ,IAAIO,KAAK,CAACP,MAAM,IAAI,IAAI,GACrDS,cAAc,EAAEE,GAAG,CAACJ,KAAK,CAACP,MAAM,CAAC,GACjC,KAAK;EAEX,MAAM;IACJlC,QAAQ;IACRmB,MAAM;IACNC,aAAa;IACbC,YAAY;IACZyB,eAAe;IACfC,MAAM,EAAEC,eAAe;IACvB,GAAGC;EACL,CAAC,GAAG/B,OAAO;EAEX,MAAMgC,YAAY,GAAGnD,2BAA2B,CAI9CC,QAAQ,CAAC;EAEX,MAAM+C,MAAM,GAAGvE,YAAY,CAAqB,MAAM;IACpD,IACEyE,IAAI,CAACE,gBAAgB,IAAI,IAAI,IAC7BD,YAAY,CAACE,KAAK,CACfzB,MAAM,IAAKA,MAAM,CAACjB,KAAK,CAACE,IAAI,KAAKqC,IAAI,CAACE,gBACzC,CAAC,EACD;MACA,MAAM,IAAIxC,KAAK,CACb,iCAAiCsC,IAAI,CAACE,gBAAgB,iCACxD,CAAC;IACH;IAEA,MAAME,QAAQ,GAAGd,YAAY,CAACU,IAAgC,CAAC;IAE/D,IAAID,eAAe,IAAI,IAAI,EAAE;MAC3B,MAAMM,SAAS,GAAGN,eAAe,CAACK,QAAQ,CAAC;MAE3C,OAAO;QACL,GAAGA,QAAQ;QACX,GAAGC;MACL,CAAC;IACH;IAEA,OAAOD,QAAQ;EACjB,CAAC,CAAC;EAEF,MAAME,UAAU,GAAGL,YAAY,CAACM,GAAG,CAAE7B,MAAM,IAAKA,MAAM,CAACjB,KAAK,CAACE,IAAI,CAAC;EAElE,IAAI,CAAC2C,UAAU,CAACE,MAAM,EAAE;IACtB,MAAM,IAAI9C,KAAK,CACb,4FACF,CAAC;EACH;EAEA,MAAM+C,OAGL,GAAG,CAAC,CAAC;EAEN,MAAMC,YAAmD,GAAG,CAAC,CAAC;EAC9D,MAAMC,cAAkD,GAAG,CAAC,CAAC;EAC7D,MAAMC,cAAqD,GAAG,CAAC,CAAC;EAEhE,KAAK,MAAMlC,MAAM,IAAIuB,YAAY,EAAE;IACjC,MAAMtC,IAAI,GAAGe,MAAM,CAACjB,KAAK,CAACE,IAAI;IAE9B,IAAIA,IAAI,IAAI8C,OAAO,EAAE;MACnB,MAAM,IAAI/C,KAAK,CACb,6GAA6GC,IAAI,IACnH,CAAC;IACH;IAEA8C,OAAO,CAAC9C,IAAI,CAAC,GAAGe,MAAM;IACtBgC,YAAY,CAAC/C,IAAI,CAAC,GAAGe,MAAM,CAACV,IAAI,CAACuC,GAAG,CAAE3D,GAAG,IAAKA,GAAG,IAAI,EAAE,CAAC,CAACiE,IAAI,CAAC,GAAG,CAAC;IAClEF,cAAc,CAAChD,IAAI,CAAC,GAAGe,MAAM,CAACjB,KAAK,CAACqD,aAAa;IAEjDC,MAAM,CAACC,MAAM,CAACJ,cAAc,EAAE;MAAE,CAACjD,IAAI,GAAGe,MAAM,CAACjB,KAAK,CAACwD;IAAM,CAAC,CAAC;EAC/D;EAEA,MAAMC,YAAY,GAAGpH,KAAK,CAACqH,WAAW,CACnCjF,KAAsD,IACrDA,KAAK,CAACM,IAAI,KAAKK,SAAS,IAAIX,KAAK,CAACM,IAAI,KAAKsD,MAAM,CAACtD,IAAI,EACxD,CAACsD,MAAM,CAACtD,IAAI,CACd,CAAC;EAED,MAAM4E,kBAAkB,GAAGtH,KAAK,CAACqH,WAAW,CAExCjF,KAAsC,IAEtCA,KAAK,KAAKW,SAAS,IAAIX,KAAK,CAACmF,KAAK,KAAK,KAAK,IAAIH,YAAY,CAAChF,KAAK,CAAC,EACrE,CAACgF,YAAY,CACf,CAAC;EAED,MAAMI,8BAA8B,GAAGxH,KAAK,CAACqH,WAAW,CACrDjF,KAAsD,IACrDA,KAAK,CAACG,MAAM,CAAC8D,KAAK,CAAEoB,CAAC,IAAK,CAACjB,UAAU,CAACkB,QAAQ,CAACD,CAAC,CAAC5D,IAAI,CAAC,CAAC,EACzD,CAAC2C,UAAU,CACb,CAAC;EAED,MAAM;IACJpE,KAAK,EAAEuF,YAAY;IACnBC,QAAQ,EAAEC,eAAe;IACzBC,QAAQ,EAAEC,eAAe;IACzBC,MAAM;IACNC,MAAM;IACNC;EACF,CAAC,GAAGlI,KAAK,CAAC2F,GAAG,CAAC/E,sBAAsB,CAAC;EAErC,MAAMuH,eAAe,GAAGnI,KAAK,CAACoI,MAAM,CAAU,KAAK,CAAC;EACpD,MAAMC,YAAY,GAAGrI,KAAK,CAACoI,MAAM,CAC/BrF,SACF,CAAC;EAED,MAAM+E,QAAQ,GAAG5H,iBAAiB,CAC/BkC,KAA8C,IAAK;IAClD,IAAI+F,eAAe,CAACG,OAAO,EAAE;MAC3B;MACAD,YAAY,CAACC,OAAO,GAAGlG,KAAK;;MAE5B;MACA;MACA;MACA;IACF;IAEA2F,eAAe,CAAC3F,KAAK,CAAC;EACxB,CACF,CAAC;EAED,MAAM,CACJmG,yBAAyB,EACzBC,gBAAgB,EAChBC,0BAA0B,EAC1BC,2BAA2B,CAC5B,GAAG1I,KAAK,CAAC2I,OAAO,CAAC,MAKb;IACH;IACA;IACA;IACA,IACER,eAAe,CAACG,OAAO,IACvBD,YAAY,CAACC,OAAO,IACpBlB,YAAY,CAACiB,YAAY,CAACC,OAAO,CAAC,EAClC;MACA,MAAMlG,KAAY,GAAGkF,kBAAkB,CAACe,YAAY,CAACC,OAAO,CAAC,GACzDD,YAAY,CAACC,OAAO,GACpBtC,MAAM,CAAC4C,kBAAkB,CAACP,YAAY,CAACC,OAAO,EAAE;QAC9C9B,UAAU;QACVK,cAAc;QACdC;MACF,CAAC,CAAC;MAEN,OAAO,CAAC/D,SAAS,EAAEX,KAAK,EAAE,KAAK,EAAEW,SAAS,CAAC;IAC7C;IAEA,MAAM8F,qBAAqB,GAAGrC,UAAU,CAAChD,MAAM,CAE7C,CAACC,GAAG,EAAEqF,IAAI,KAAK;MACf,MAAM;QAAE9B;MAAc,CAAC,GAAGL,OAAO,CAACmC,IAAI,CAAC,EAAEnF,KAAK,IAAI,CAAC,CAAC;MACpD,MAAMoF,uBAAuB,GAC3BrD,KAAK,EAAEP,MAAM,EAAE/C,KAAK,IAAI,IAAI,IAC5BsD,KAAK,EAAEP,MAAM,EAAEE,OAAO,KAAK,KAAK,IAChCK,KAAK,EAAEP,MAAM,EAAEC,MAAM,KAAK0D,IAAI,GAC1BpD,KAAK,CAACP,MAAM,CAACA,MAAM,GACnBpC,SAAS;MAEfU,GAAG,CAACqF,IAAI,CAAC,GACP9B,aAAa,KAAKjE,SAAS,IAAIgG,uBAAuB,KAAKhG,SAAS,GAChE;QACE,GAAGiE,aAAa;QAChB,GAAG+B;MACL,CAAC,GACDhG,SAAS;MAEf,OAAOU,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;;IAEN;IACA;IACA;IACA;IACA,IACE,CAACkE,YAAY,KAAK5E,SAAS,IAAI,CAACqE,YAAY,CAACO,YAAY,CAAC,KAC1DjC,KAAK,EAAEP,MAAM,EAAE/C,KAAK,IAAI,IAAI,IAC5B,EACE,OAAOsD,KAAK,EAAEP,MAAM,EAAEC,MAAM,KAAK,QAAQ,IACzCM,KAAK,EAAEP,MAAM,EAAEE,OAAO,KAAK,KAAK,CACjC,IACD,CAACQ,sBAAsB,EACvB;MACA,OAAO,CACL9C,SAAS,EACTiD,MAAM,CAACgD,eAAe,CAAC;QACrBxC,UAAU;QACVK,cAAc,EAAEgC,qBAAqB;QACrC/B;MACF,CAAC,CAAC,EACF,IAAI,EACJ/D,SAAS,CACV;IACH,CAAC,MAAM;MACL,MAAMkG,cAAc,GAAGpD,sBAAsB,GAAG9C,SAAS,GAAG2C,KAAK,EAAEP,MAAM;MACzE,MAAM+D,eAAe,GAAGD,cAAc,GAClC/D,kBAAkB,CAAC+D,cAAc,CAAC,GAClClG,SAAS;MAEb,MAAMwF,yBAAyB,GAAIW,eAAe,IAAIvB,YAEzC;MAEb,MAAMwB,aAAa,GACjBZ,yBAAyB,IAAI,IAAI,GAC7BvC,MAAM,CAACgD,eAAe,CAAC;QACrBxC,UAAU;QACVK,cAAc,EAAEgC,qBAAqB;QACrC/B;MACF,CAAC,CAAC,GACFd,MAAM,CAAC4C,kBAAkB,CAACL,yBAAyB,EAAE;QACnD/B,UAAU;QACVK,cAAc,EAAEgC,qBAAqB;QACrC/B;MACF,CAAC,CAAC;MAER,IACEyB,yBAAyB,IAAI,IAAI,IACjCpE,OAAO,CAACiF,wBAAwB,KAAK,eAAe,IACpD5B,8BAA8B,CAACe,yBAAyB,CAAC,EACzD;QACA,OAAO,CAACA,yBAAyB,EAAEY,aAAa,EAAE,IAAI,EAAEF,cAAc,CAAC;MACzE;MAEA,OAAO,CACLlG,SAAS,EACToG,aAAa,EACb,KAAK;MACL;MACA;MACA7B,kBAAkB,CAACK,YAAY,CAAC,GAAG5E,SAAS,GAAGkG,cAAc,CAC9D;IACH;IACA;IACA;IACA;IACA;IACA;IACA;EACF,CAAC,EAAE,CAACtB,YAAY,EAAE3B,MAAM,EAAEoB,YAAY,CAAC,CAAC;EAExC,MAAMiC,uBAAuB,GAAGrJ,KAAK,CAACoI,MAAM,CAACxB,YAAY,CAAC;EAE1D5G,KAAK,CAACsJ,kBAAkB,CAAC,MAAM;IAC7BD,uBAAuB,CAACf,OAAO,GAAG1B,YAAY;EAChD,CAAC,CAAC;EAEF,MAAM2C,oBAAoB,GAAGF,uBAAuB,CAACf,OAAO;EAE5D,MAAM,CAACkB,cAAc,EAAEC,iBAAiB,CAAC,GAAGzJ,KAAK,CAAC0J,QAAQ,CAExDnB,yBAAyB,CAAC;;EAE5B;EACA;EACA;EACA;EACA,IACEpE,OAAO,CAACiF,wBAAwB,KAAK,eAAe,IACpDb,yBAAyB,IACzBiB,cAAc,KAAKjB,yBAAyB,EAC5C;IACAkB,iBAAiB,CAAClB,yBAAyB,CAAC;EAC9C;EAEA,IAAInG,KAAK;EACP;EACA;EACA;EACAkF,kBAAkB,CAACK,YAAY,CAAC,GAC3BA,YAAY,GACZa,gBAA0B;EAEjC,IAAImB,SAAgB,GAAGvH,KAAK;EAC5B,IAAIwH,yBAAyB,GAAG,KAAK;;EAErC;EACA;EACA;EACA,IACEJ,cAAc,EAAEjH,MAAM,CAAC8D,KAAK,CAAEoB,CAAC,IAAKjB,UAAU,CAACkB,QAAQ,CAACD,CAAC,CAAC5D,IAAI,CAAC,CAAC,IAChEzB,KAAK,EAAEG,MAAM,CAAC8D,KAAK,CAAEoB,CAAC,IAAK,CAACjB,UAAU,CAACkB,QAAQ,CAACD,CAAC,CAAC5D,IAAI,CAAC,CAAC,EACxD;IACA+F,yBAAyB,GAAG,IAAI;IAChCD,SAAS,GAAG3D,MAAM,CAAC4C,kBAAkB,CACnCY,cAAc,EACd;MACEhD,UAAU;MACVK,cAAc;MACdC;IACF,CACF,CAAC;EACH,CAAC,MAAM,IACL,CAACxG,YAAY,CAAC8B,KAAK,CAACoE,UAAU,EAAEA,UAAU,CAAC,IAC3C,CAACjG,aAAa,CAACqG,YAAY,EAAE2C,oBAAoB,CAAC,EAClD;IACA;IACAI,SAAS,GAAG3D,MAAM,CAAC6D,2BAA2B,CAACzH,KAAK,EAAE;MACpDoE,UAAU;MACVK,cAAc;MACdC,cAAc;MACdgD,eAAe,EAAE7C,MAAM,CAAC/C,IAAI,CAAC0C,YAAY,CAAC,CAACmD,MAAM,CAC9ClG,IAAI,IACHA,IAAI,IAAI0F,oBAAoB,IAC5B3C,YAAY,CAAC/C,IAAI,CAAC,KAAK0F,oBAAoB,CAAC1F,IAAI,CACpD;IACF,CAAC,CAAC;EACJ;EAEA,IAAImG,sBAAsB,GAAGtE,KAAK,EAAEP,MAAM,KAAKuD,2BAA2B;EAE1E,IAAIhD,KAAK,EAAEP,MAAM,IAAI,CAAC6E,sBAAsB,EAAE;IAC5C,IAAIC,MAAwC;IAC5C,MAAMf,eAAe,GAAGxD,KAAK,CAACP,MAAM,CAAC/C,KAAK;IAE1C,IAAID,iBAAiB,CAAC+G,eAAe,CAAC,IAAI,CAACrD,sBAAsB,EAAE;MACjEmE,sBAAsB,GAAG,IAAI;MAE7B,IACE7F,OAAO,CAACiF,wBAAwB,KAAK,eAAe,IACpD5B,8BAA8B,CAAC0B,eAAe,CAAC,EAC/C;QACA,IAAIA,eAAe,KAAKM,cAAc,EAAE;UACtCC,iBAAiB,CAACP,eAAe,CAAC;QACpC;MACF,CAAC,MAAM;QACL;QACAe,MAAM,GAAGnK,aAAa,CAACoK,KAAK,CAAChB,eAAe,CAAC;MAC/C;IACF,CAAC,MAAM,IACL,OAAOxD,KAAK,CAACP,MAAM,CAACC,MAAM,KAAK,QAAQ,KACrCM,KAAK,CAACP,MAAM,CAACE,OAAO,KAAK,KAAK,IAAIoD,0BAA0B,IAC5D,CAAC5C,sBAAsB,CAAC,EAC1B;MACAmE,sBAAsB,GAAG,IAAI;MAE7B,IACE7F,OAAO,CAACiF,wBAAwB,KAAK,eAAe,IACpD,CAAC5C,UAAU,CAACkB,QAAQ,CAAChC,KAAK,CAACP,MAAM,CAACC,MAAM,CAAC,EACzC;QACA,MAAMhD,KAAK,GAAG8C,kBAAkB,CAACQ,KAAK,CAACP,MAAM,CAAC;QAE9C,IAAI/C,KAAK,IAAI,IAAI,IAAI,CAACrC,SAAS,CAACqC,KAAK,EAAEoH,cAAc,CAAC,EAAE;UACtDC,iBAAiB,CAACrH,KAAK,CAAC;QAC1B;MACF,CAAC,MAAM;QACL;QACA6H,MAAM,GAAG;UACPvH,IAAI,EAAE,UAAU;UAChByH,OAAO,EAAE;YACPtG,IAAI,EAAE6B,KAAK,CAACP,MAAM,CAACC,MAAM;YACzBD,MAAM,EAAEO,KAAK,CAACP,MAAM,CAACA,MAAM;YAC3BG,IAAI,EAAEI,KAAK,CAACP,MAAM,CAACG,IAAI;YACvB8E,KAAK,EAAE1E,KAAK,CAACP,MAAM,CAACiF,KAAK;YACzBC,GAAG,EAAE3E,KAAK,CAACP,MAAM,CAACkF;UACpB;QACF,CAAU;MACZ;IACF;;IAEA;IACA,MAAMC,YAAY,GAAGL,MAAM,GACvBjE,MAAM,CAACuE,iBAAiB,CAACZ,SAAS,EAAEM,MAAM,EAAE;MAC1CzD,UAAU;MACVK,cAAc;MACdC;IACF,CAAC,CAAC,GACF,IAAI;IAER6C,SAAS,GACPW,YAAY,KAAK,IAAI,GACjBtE,MAAM,CAAC4C,kBAAkB,CAAC0B,YAAY,EAAE;MACtC9D,UAAU;MACVK,cAAc;MACdC;IACF,CAAC,CAAC,GACF6C,SAAS;EACjB;EAEA3J,KAAK,CAACwK,SAAS,CAAC,MAAM;IACpB,IACE5E,cAAc,IACdoE,sBAAsB,IACtB,OAAOtE,KAAK,EAAEP,MAAM,KAAK,QAAQ,IACjCO,KAAK,CAACP,MAAM,IAAI,IAAI,EACpB;MACAS,cAAc,CAAC6E,GAAG,CAAC/E,KAAK,CAACP,MAAM,EAAE,IAAI,CAAC;IACxC;EACF,CAAC,EAAE,CAACS,cAAc,EAAEoE,sBAAsB,EAAEtE,KAAK,EAAEP,MAAM,CAAC,CAAC;EAE3D,MAAMuF,YAAY,GAAGtI,KAAK,KAAKuH,SAAS;EAExC3H,iBAAiB,CAAC,MAAM;IACtB,IAAI0I,YAAY,EAAE;MAChB;MACA5C,QAAQ,CAAC6B,SAAS,CAAC;MAEnB,IAAIC,yBAAyB,EAAE;QAC7BH,iBAAiB,CAAC1G,SAAS,CAAC;MAC9B;IACF;EACF,CAAC,CAAC;;EAEF;EACA;EACA;EACAX,KAAK,GAAGuH,SAAS;;EAEjB;EACA3J,KAAK,CAACwK,SAAS,CAAC,MAAM;IACpBnC,YAAY,CAACC,OAAO,GAAGlG,KAAK;EAC9B,CAAC,CAAC;EAEF,MAAMuI,oBAAoB,GAAG3K,KAAK,CAACoI,MAAM,CAAe,IAAI,CAAC;EAE7DpI,KAAK,CAACwK,SAAS,CAAC,MAAM;IACpB;IACA;IACArC,eAAe,CAACG,OAAO,GAAG,KAAK;IAE/BN,MAAM,CAACvC,YAAY,CAAC;IAEpB,IAAI,CAACyC,YAAY,CAAC,CAAC,IAAIyC,oBAAoB,CAACrC,OAAO,KAAKlG,KAAK,EAAE;MAC7D;MACA;MACA;MACA;MACA;MACA0F,QAAQ,CAAC1F,KAAK,CAAC;MACfuI,oBAAoB,CAACrC,OAAO,GAAGlG,KAAK;IACtC;IAEA,OAAO,MAAM;MACX;MACA,IAAIyF,eAAe,CAAC,CAAC,KAAK9E,SAAS,IAAIkF,MAAM,CAAC,CAAC,KAAKxC,YAAY,EAAE;QAChEsC,eAAe,CAAChF,SAAS,CAAC;QAC1BoF,eAAe,CAACG,OAAO,GAAG,IAAI;MAChC;;MAEA;MACA;MACA;MACAqC,oBAAoB,CAACrC,OAAO,GAAG,IAAI;IACrC,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMV,QAAQ,GAAG1H,iBAAiB,CAAC,MAAa;IAC9C,MAAMyH,YAAY,GAAGE,eAAe,CAAC,CAAC;IAEtC,OAAOzH,UAAU,CACdkH,kBAAkB,CAACK,YAAY,CAAC,GAC7BA,YAAY,GACZa,gBACN,CAAC;EACH,CAAC,CAAC;EAEF,MAAM;IAAEoC;EAAY,CAAC,GAAG5K,KAAK,CAAC2F,GAAG,CAACnF,wBAAwB,CAAC;EAE3D,MAAMqK,OAAO,GAAGzJ,eAAe,CAAuB0J,CAAC,IAAK;IAC1D,MAAMtE,UAAU,GAAG,EAAE;IAErB,IAAId,KAAgC;IAEpC,IAAIoF,CAAC,CAACC,MAAM,EAAE;MACZrF,KAAK,GAAGtD,KAAK,CAACG,MAAM,CAACyI,IAAI,CAAEtF,KAAK,IAAKA,KAAK,CAAC5C,GAAG,KAAKgI,CAAC,CAACC,MAAM,CAAC;MAE5D,IAAIrF,KAAK,EAAE7B,IAAI,EAAE;QACf2C,UAAU,CAACvC,IAAI,CAACyB,KAAK,CAAC7B,IAAI,CAAC;MAC7B;IACF,CAAC,MAAM;MACL6B,KAAK,GAAGtD,KAAK,CAACG,MAAM,CAACH,KAAK,CAAC6I,KAAK,CAAC;MACjCzE,UAAU,CAACvC,IAAI,CACb,GAAGgD,MAAM,CAAC/C,IAAI,CAACyC,OAAO,CAAC,CAACoD,MAAM,CAAElG,IAAI,IAAK6B,KAAK,EAAE7B,IAAI,KAAKA,IAAI,CAC/D,CAAC;IACH;IAEA,IAAI6B,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEA,MAAMwF,qBAAqB,GAAG1E,UAAU,CAAC2E,IAAI,CAC1CtH,IAAI,IAAK8C,OAAO,CAAC9C,IAAI,CAAC,EAAEF,KAAK,CAACyH,SAAS,IAAI,IAC9C,CAAC;IAED,IAAIrF,eAAe,IAAI,IAAI,IAAImF,qBAAqB,EAAE;MACpD,MAAMG,UAAU,GAAGC,WAAW,CAAC5F,KAAK,CAAC5C,GAAG,CAAC;MAEzC,IAAIuI,UAAU,IAAI,IAAI,EAAE;QACtB,MAAM,IAAIzH,KAAK,CAAC,yCAAyC8B,KAAK,CAAC5C,GAAG,IAAI,CAAC;MACzE;MAEA,MAAMyI,UAAU,GAAGF,UAAU,CAACE,UAAU;MAExC,MAAMH,SAAS,GAAI,EAAE,CAClBI,MAAM;MACL;MACA,GAAG,CACDzF,eAAe,EACf,GAAGS,UAAU,CAACC,GAAG,CAAE5C,IAAI,IAAK;QAC1B,MAAM;UAAEuH;QAAU,CAAC,GAAGzE,OAAO,CAAC9C,IAAI,CAAC,EAAEF,KAAK,IAAI,CAAC,CAAC;QAChD,OAAOyH,SAAS;MAClB,CAAC,CAAC,CACH,CAAC3E,GAAG,CAAE2E,SAAS,IAAK;QACnB,MAAM3E,GAAG,GACP,OAAO2E,SAAS,KAAK,UAAU,GAC3BA,SAAS,CAAC;UAAE1F,KAAK,EAAEA,KAAY;UAAE6F;QAAW,CAAC,CAAC,GAC9CH,SAAS;QAEf,OAAO3E,GAAG,GACNQ,MAAM,CAAC/C,IAAI,CAACuC,GAAG,CAAC,CACbsD,MAAM,CAAErH,IAAI,IAAKA,IAAI,KAAKoI,CAAC,CAACpI,IAAI,CAAC,CACjC+D,GAAG,CAAE/D,IAAI,IAAK+D,GAAG,GAAG/D,IAAI,CAAC,CAAC,GAC7BK,SAAS;MACf,CAAC,CACH;MACA;MACA;MAAA,CACCgH,MAAM,CAAC,CAAC0B,EAAE,EAAEC,CAAC,EAAEC,IAAI,KAAKF,EAAE,IAAIE,IAAI,CAACC,WAAW,CAACH,EAAE,CAAC,KAAKC,CAAC,CAAC;MAE5DN,SAAS,CAACzG,OAAO,CAAEkH,QAAQ,IAAKA,QAAQ,GAAGf,CAAC,CAAC,CAAC;IAChD;EACF,CAAC,EAAEF,WAAW,CAAC;EAEftJ,cAAc,CAAC;IAAEc,KAAK;IAAEyI;EAAQ,CAAC,CAAC;EAElC7K,KAAK,CAACwK,SAAS,CAAC,MAAM;IACpBK,OAAO,CAACiB,IAAI,CAAC;MAAEpJ,IAAI,EAAE,OAAO;MAAEqJ,IAAI,EAAE;QAAE3J;MAAM;IAAE,CAAC,CAAC;EAClD,CAAC,EAAE,CAACyI,OAAO,EAAEzI,KAAK,CAAC,CAAC;EAEpB,MAAM;IAAEgJ,SAAS,EAAEY,cAAc;IAAEC;EAAY,CAAC,GAAGhL,iBAAiB,CAAC,CAAC;EAEtE,MAAM;IAAEiL,cAAc;IAAEC;EAAiB,CAAC,GAAG3K,sBAAsB,CAAC,CAAC;EAErE,MAAM4K,QAAQ,GAAGxK,WAAW,CAAC;IAC3BoE,MAAM;IACN4B,QAAQ;IACRE,QAAQ;IACRhF,GAAG,EAAE4C,KAAK,EAAE5C,GAAG;IACfuJ,eAAe,EAAEL,cAAc,CAAC/B,MAAM;IACtCqC,qBAAqB,EAAEJ,cAAc,CAACK,YAAY;IAClDC,mBAAmB,EAAE;MACnBhG,UAAU;MACVK,cAAc;MACdC;IACF,CAAC;IACD+D;EACF,CAAC,CAAC;EAEF,MAAM4B,YAAY,GAAG3K,eAAe,CAAC;IACnCkE,MAAM;IACNlD,GAAG,EAAE4C,KAAK,EAAE5C,GAAG;IACf8E,QAAQ;IACRE;EACF,CAAC,CAAC;EAEF,MAAM4E,uBAAuB,GAAG1M,KAAK,CAAC2F,GAAG,CAAC3E,sBAAsB,CAAC;EAEjE,MAAM2L,iBAAiB,GAAGzM,iBAAiB,CAAE+J,MAAwB,IAAK;IACxE,IACE9F,OAAO,CAACiF,wBAAwB,KAAK,eAAe,IACpDa,MAAM,CAACvH,IAAI,KAAK,UAAU,IAC1BuH,MAAM,CAACE,OAAO,IAAI,IAAI,IACtB,MAAM,IAAIF,MAAM,CAACE,OAAO,IACxB,OAAOF,MAAM,CAACE,OAAO,CAACtG,IAAI,KAAK,QAAQ,IACvC,CAAC2C,UAAU,CAACkB,QAAQ,CAACuC,MAAM,CAACE,OAAO,CAACtG,IAAI,CAAC,EACzC;MACA,MAAMzB,KAAK,GAAG;QACZG,MAAM,EAAE,CACN;UACEsB,IAAI,EAAEoG,MAAM,CAACE,OAAO,CAACtG,IAAI;UACzBsB,MAAM,EACJ,QAAQ,IAAI8E,MAAM,CAACE,OAAO,IAC1B,OAAOF,MAAM,CAACE,OAAO,CAAChF,MAAM,KAAK,QAAQ,IACzC8E,MAAM,CAACE,OAAO,CAAChF,MAAM,KAAK,IAAI,GAC1B8E,MAAM,CAACE,OAAO,CAAChF,MAAM,GACrBpC,SAAS;UACfuC,IAAI,EACF,MAAM,IAAI2E,MAAM,CAACE,OAAO,IACxB,OAAOF,MAAM,CAACE,OAAO,CAAC7E,IAAI,KAAK,QAAQ,GACnC2E,MAAM,CAACE,OAAO,CAAC7E,IAAI,GACnBvC;QACR,CAAC;MAEL,CAAC;MAED0G,iBAAiB,CAACrH,KAAK,CAAC;IAC1B;IAEAsK,uBAAuB,GAAGzC,MAAM,CAAC;EACnC,CAAC,CAAC;EAEF,MAAMsB,UAAU,GAAG7J,oBAAoB,CAKrC;IACA0K,QAAQ;IACRO,iBAAiB;IACjB/E,QAAQ;IACRxF,KAAK;IACLyI,OAAO;IACP7E;EACF,CAAC,CAAC;EAEF3E,kCAAkC,CAAC;IACjCkK,UAAU;IACVqB,gBAAgB,EAAEZ,cAAc,CAACa;EACnC,CAAC,CAAC;EAEFhL,aAAa,CAAC;IACZ+F,QAAQ;IACRkF,iBAAiB,EAAEZ,cAAc,CAACtE;EACpC,CAAC,CAAC;EAEF,MAAM0D,WAAW,GAAGnK,cAAc,CAKhC;IACAoB,MAAM,EAAEH,KAAK,CAACG,MAAM;IACpBoE,OAAO;IACP4E,UAAU;IACVlH,aAAa;IACbC,YAAY;IACZ8H,QAAQ;IACRxE,QAAQ;IACRE,QAAQ;IACR2E,YAAY;IACZR,WAAW;IACXE,gBAAgB;IAChBnG,MAAM;IACN;IACA6E;EACF,CAAC,CAAC;EAEF,MAAMkC,iBAAiB,GAAG7L,YAAY,CAAE+B,QAAyB,IAAK;IACpE,MAAM+J,YAAY,GAAG5K,KAAK,CAACG,MAAM,CAACH,KAAK,CAAC6I,KAAK,CAAC;IAE9C,IAAI+B,YAAY,IAAI,IAAI,EAAE;MACxB,MAAM,IAAIpJ,KAAK,CAAC,kCAAkCxB,KAAK,CAAC6I,KAAK,GAAG,CAAC;IACnE;IAEA,MAAMgC,OAAO,GACX7I,MAAM,IAAI,IAAI,GACVA,MAAM,CAAC;MACLhC,KAAK;MACLkJ,WAAW;MACXC,UAAU;MACVtI;IACF,CAAC,CAAC,GACFA,QAAQ;IAEd,oBACEf,IAAA,CAACxB,qBAAqB,CAACwM,QAAQ;MAACC,KAAK,EAAEpK,SAAU;MAAAE,QAAA,eAC/Cf,IAAA,CAACzB,wBAAwB,CAACyM,QAAQ;QAACC,KAAK,EAAE5B,UAAW;QAAAtI,QAAA,eACnDf,IAAA,CAACP,+BAA+B;UAC9BS,KAAK,EAAEA,KAAM;UACbwF,QAAQ,EAAE2D,UAAU,CAAC3D,QAAS;UAAA3E,QAAA,eAE9Bf,IAAA,CAACX,sBAAsB,CAAC2L,QAAQ;YAACC,KAAK,EAAEH,YAAY,CAAClK,GAAI;YAAAG,QAAA,eACvDf,IAAA,CAACrB,qBAAqB;cAAAoC,QAAA,EAAEgK;YAAO,CAAwB;UAAC,CACzB;QAAC,CACH;MAAC,CACD;IAAC,CACN,CAAC;EAErC,CAAC,CAAC;EAEF,OAAO;IACL7K,KAAK;IACLmJ,UAAU;IACVD,WAAW;IACXyB;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","ConsumedParamsContext","deepFreeze","Group","isArrayEqual","NavigationBuilderContext","NavigationHelpersContext","NavigationMetaContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useComponent","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","FocusedRouteKeyContext","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","isNavigationState","state","Array","isArray","routes","isScreen","child","type","isGroup","Fragment","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKeys","groupOptions","groupLayout","configs","Children","toArray","reduce","acc","isValidElement","props","Error","name","JSON","stringify","navigationKey","push","keys","options","layout","screenOptions","screenLayout","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","getStateFromParams","params","error","screen","initial","path","useNavigationBuilder","createRouter","navigatorKey","route","use","consumedParams","isNestedParamsConsumed","has","screenListeners","router","routerOverrides","rest","routeConfigs","initialRouteName","every","original","overrides","routeNames","map","length","screens","routeKeyList","routeParamList","routeGetIdList","initialParams","Object","assign","getId","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","onEmitEvent","getIsStateEmitted","stateCleanupRef","useRef","lastStateRef","current","stateBeforeInitialization","initializedState","isFirstStateInitialization","paramsUsedForInitialization","useMemo","getRehydratedState","initialRouteParamList","curr","initialParamsFromParams","getInitialState","paramsForState","stateFromParams","hydratedState","routeNamesChangeBehavior","previousRouteKeyListRef","useInsertionEffect","previousRouteKeyList","routeKeyChanges","filter","previous","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","didConsumeNestedParams","action","reset","payload","merge","pop","updatedState","getStateForAction","names","join","useEffect","set","shouldUpdate","lastNotifiedStateRef","emitter","e","target","find","index","hasPerScreenListeners","some","listeners","descriptor","descriptors","navigation","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","focusedListeners","focus","getStateListeners","NavigationContent","focusedRoute","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,7 +29,8 @@ export function useOnAction({
|
|
|
29
29
|
onAction: onActionParent,
|
|
30
30
|
onRouteFocus: onRouteFocusParent,
|
|
31
31
|
addListener: addListenerParent,
|
|
32
|
-
onDispatchAction
|
|
32
|
+
onDispatchAction,
|
|
33
|
+
flushUpdates
|
|
33
34
|
} = React.use(NavigationBuilderContext);
|
|
34
35
|
const tree = React.use(StaticTreeContext);
|
|
35
36
|
const consumedParams = React.use(ConsumedParamsContext);
|
|
@@ -38,6 +39,10 @@ export function useOnAction({
|
|
|
38
39
|
routerConfigOptionsRef.current = routerConfigOptions;
|
|
39
40
|
});
|
|
40
41
|
const onAction = React.useCallback((action, visitedNavigators = new Set()) => {
|
|
42
|
+
// Apply any pending state updates scheduled during render before handling the action
|
|
43
|
+
// Otherwise the action will be handled with an outdated state,
|
|
44
|
+
// and the pending updates will overwrite the changes from the action
|
|
45
|
+
flushUpdates();
|
|
41
46
|
const state = getState();
|
|
42
47
|
|
|
43
48
|
// Since actions can bubble both up and down, they could come to the same navigator again
|
|
@@ -52,6 +57,13 @@ export function useOnAction({
|
|
|
52
57
|
// If a target is specified and set to current navigator, the action shouldn't bubble
|
|
53
58
|
// So instead of `null`, we use the state object for such cases to signal that action was handled
|
|
54
59
|
result = result === null && action.target === state.key ? state : result;
|
|
60
|
+
if (result !== null && result.stale !== false) {
|
|
61
|
+
// Some actions (e.g. `RESET`) may return a stale state from the router
|
|
62
|
+
// We rehydrate it before storing so the stored state is always usable
|
|
63
|
+
// Otherwise anything reading the state before the next render
|
|
64
|
+
// (e.g. another dispatch immediately after) would get an outdated state
|
|
65
|
+
result = router.getRehydratedState(result, routerConfigOptionsRef.current);
|
|
66
|
+
}
|
|
55
67
|
if (result !== null) {
|
|
56
68
|
if (state !== result) {
|
|
57
69
|
const isPrevented = shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, result.routes, action);
|
|
@@ -59,6 +71,12 @@ export function useOnAction({
|
|
|
59
71
|
onDispatchAction(action, true);
|
|
60
72
|
return true;
|
|
61
73
|
}
|
|
74
|
+
if (getState() !== state) {
|
|
75
|
+
// Listeners for 'beforeRemove' may dispatch actions that change the state
|
|
76
|
+
// Then the result we have is outdated and would overwrite those changes
|
|
77
|
+
// So we handle the action again to calculate the result with the latest state
|
|
78
|
+
return onAction(action, new Set());
|
|
79
|
+
}
|
|
62
80
|
onDispatchAction(action, false);
|
|
63
81
|
if (tree) {
|
|
64
82
|
const loader = getLoaderForStateChange(tree, result, state, consumedParams);
|
|
@@ -95,7 +113,7 @@ export function useOnAction({
|
|
|
95
113
|
}
|
|
96
114
|
}
|
|
97
115
|
return false;
|
|
98
|
-
}, [actionListeners, beforeRemoveListeners, consumedParams, emitter, getState, key, onActionParent, onDispatchAction, onRouteFocusParent, router, setState, tree]);
|
|
116
|
+
}, [actionListeners, beforeRemoveListeners, consumedParams, emitter, flushUpdates, getState, key, onActionParent, onDispatchAction, onRouteFocusParent, router, setState, tree]);
|
|
99
117
|
useOnPreventRemove({
|
|
100
118
|
getState,
|
|
101
119
|
emitter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ConsumedParamsContext","getLoaderForStateChange","NavigationBuilderContext","StaticTreeContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","use","tree","consumedParams","routerConfigOptionsRef","useRef","useInsertionEffect","current","useCallback","action","visitedNavigators","Set","state","has","add","target","result","getStateForAction","isPrevented","routes","loader","undefined","shouldFocus","shouldActionChangeFocus","i","length","listener"],"sourceRoot":"../../src","sources":["useOnAction.tsx"],"mappings":";;AAOA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,uBAAuB,QAAQ,kBAAe;AACvD,SAGEC,wBAAwB,QACnB,+BAA4B;AACnC,SAASC,iBAAiB,QAAQ,wBAAqB;AAGvD,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,yBAAsB;AAa9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAgC;EACzDC,MAAM;EACNC,QAAQ;EACRC,QAAQ;EACRC,GAAG;EACHC,eAAe;EACfC,qBAAqB;EACrBC,mBAAmB;EACnBC;AACc,CAAC,EAAE;EACjB,MAAM;IACJC,QAAQ,EAAEC,cAAc;IACxBC,YAAY,EAAEC,kBAAkB;IAChCC,WAAW,EAAEC,iBAAiB;IAC9BC;EACF,CAAC,
|
|
1
|
+
{"version":3,"names":["React","ConsumedParamsContext","getLoaderForStateChange","NavigationBuilderContext","StaticTreeContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","flushUpdates","use","tree","consumedParams","routerConfigOptionsRef","useRef","useInsertionEffect","current","useCallback","action","visitedNavigators","Set","state","has","add","target","result","getStateForAction","stale","getRehydratedState","isPrevented","routes","loader","undefined","shouldFocus","shouldActionChangeFocus","i","length","listener"],"sourceRoot":"../../src","sources":["useOnAction.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseNavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/BaseNavigationContainer.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAEV,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACd,MAAM,YAAS,CAAC;AAejB,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;CACpD,CAAC;AAgCF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAAE,EAC5E,YAAY,EACZ,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,GAAG,GACJ,EAAE,KAAK,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"BaseNavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/BaseNavigationContainer.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAEV,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACd,MAAM,YAAS,CAAC;AAejB,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;CACpD,CAAC;AAgCF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAAE,EAC5E,YAAY,EACZ,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,GAAG,GACJ,EAAE,KAAK,CAAC,SAAS,CAAC,qBA8YlB"}
|
|
@@ -35,8 +35,9 @@ export declare const NavigationBuilderContext: React.Context<{
|
|
|
35
35
|
data: unknown;
|
|
36
36
|
}) => void;
|
|
37
37
|
onOptionsChange: (options: object) => void;
|
|
38
|
+
getIsStateEmitted: () => boolean;
|
|
38
39
|
scheduleUpdate: (callback: () => void) => void;
|
|
39
40
|
flushUpdates: () => void;
|
|
40
|
-
stackRef?: React.
|
|
41
|
+
stackRef?: React.RefObject<string | undefined> | undefined;
|
|
41
42
|
}>;
|
|
42
43
|
//# sourceMappingURL=NavigationBuilderContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationBuilderContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationBuilderContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,yBAAyB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,YAAY,EAAE,yBAAyB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EACpD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC9D,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAC1B,IAAI,CAAC;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC5B,OAAO,CAAC;AAEb,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI,CACzC,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,KACzC,CAAC,CAAC;AAEP,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,EACxC,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,KACnC;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC;AAErD,MAAM,MAAM,yBAAyB,GAAG,CACtC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,KACnE,OAAO,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,wBAAwB;eAE/B,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,GACxE,SAAS;kBACC,WAAW,GAAG,SAAS;uBAClB,gBAAgB,GAAG,SAAS;mBAChC,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;sBAChC,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI;iBACtD,CAAC,KAAK,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;QACtC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC;KACf,KAAK,IAAI;qBACO,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"NavigationBuilderContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationBuilderContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,yBAAyB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,YAAY,EAAE,yBAAyB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EACpD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC9D,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAC1B,IAAI,CAAC;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC5B,OAAO,CAAC;AAEb,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI,CACzC,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,KACzC,CAAC,CAAC;AAEP,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,EACxC,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,KACnC;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC;AAErD,MAAM,MAAM,yBAAyB,GAAG,CACtC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,KACnE,OAAO,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,wBAAwB;eAE/B,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,GACxE,SAAS;kBACC,WAAW,GAAG,SAAS;uBAClB,gBAAgB,GAAG,SAAS;mBAChC,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;sBAChC,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI;iBACtD,CAAC,KAAK,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;QACtC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC;KACf,KAAK,IAAI;qBACO,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;uBACvB,MAAM,OAAO;oBAChB,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI;kBAChC,MAAM,IAAI;eACb,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS;EAY1D,CAAC"}
|
|
@@ -10,7 +10,7 @@ export declare const NavigationRouteContext: React.Context<Readonly<{
|
|
|
10
10
|
path?: string | undefined;
|
|
11
11
|
history?: {
|
|
12
12
|
type: "params";
|
|
13
|
-
params: object
|
|
13
|
+
params: Readonly<object | undefined>;
|
|
14
14
|
}[] | undefined;
|
|
15
15
|
} & {
|
|
16
16
|
params?: Readonly<object | undefined>;
|
|
@@ -33,7 +33,7 @@ export declare const NamedRouteContextListContext: React.Context<Record<string,
|
|
|
33
33
|
path?: string | undefined;
|
|
34
34
|
history?: {
|
|
35
35
|
type: "params";
|
|
36
|
-
params: object
|
|
36
|
+
params: Readonly<object | undefined>;
|
|
37
37
|
}[] | undefined;
|
|
38
38
|
} & {
|
|
39
39
|
params?: Readonly<object | undefined>;
|
|
@@ -50,7 +50,7 @@ export declare function useDescriptors<State extends NavigationState, ActionHelp
|
|
|
50
50
|
path?: string | undefined;
|
|
51
51
|
history?: {
|
|
52
52
|
type: "params";
|
|
53
|
-
params: object
|
|
53
|
+
params: Readonly<object | undefined>;
|
|
54
54
|
}[] | undefined;
|
|
55
55
|
} & {
|
|
56
56
|
params?: Readonly<object | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDescriptors.d.ts","sourceRoot":"","sources":["../../../src/useDescriptors.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useDescriptors.d.ts","sourceRoot":"","sources":["../../../src/useDescriptors.tsx"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,7 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
|
|
|
75
75
|
path?: string | undefined;
|
|
76
76
|
history?: {
|
|
77
77
|
type: "params";
|
|
78
|
-
params: object
|
|
78
|
+
params: Readonly<object | undefined>;
|
|
79
79
|
}[] | undefined;
|
|
80
80
|
} & {
|
|
81
81
|
params?: Readonly<object | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EAIjB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EAIjB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,EACL,KAAK,uBAAuB,EAI5B,iBAAiB,EAElB,MAAM,YAAS,CAAC;AA8RjB;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,EAC5D,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEpC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,EACnE,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,KAAK,EACL,aAAa,EACb,QAAQ,EACR,GAAG,CACJ,GACC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmuBhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOnAction.d.ts","sourceRoot":"","sources":["../../../src/useOnAction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,MAAM,EACN,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE/B,MAAM,+BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAmB,CAAC;AAGhE,KAAK,OAAO,CAAC,KAAK,SAAS,eAAe,IAAI;IAC5C,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACvD,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAC7E,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,eAAe,EAAE,EACzD,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,GACR,EAAE,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"useOnAction.d.ts","sourceRoot":"","sources":["../../../src/useOnAction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,MAAM,EACN,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE/B,MAAM,+BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAmB,CAAC;AAGhE,KAAK,OAAO,CAAC,KAAK,SAAS,eAAe,IAAI;IAC5C,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACvD,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAC7E,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,eAAe,EAAE,EACzD,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,GACR,EAAE,OAAO,CAAC,KAAK,CAAC,YAqBH,gBAAgB,sBACL,GAAG,CAAC,MAAM,CAAC,aAgJnC"}
|
|
@@ -15,7 +15,7 @@ export declare function useRouteCache<State extends NavigationState>(routes: Sta
|
|
|
15
15
|
path?: string | undefined;
|
|
16
16
|
history?: {
|
|
17
17
|
type: "params";
|
|
18
|
-
params: object
|
|
18
|
+
params: Readonly<object | undefined>;
|
|
19
19
|
}[] | undefined;
|
|
20
20
|
} & {
|
|
21
21
|
params?: Readonly<object | undefined>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/core",
|
|
3
3
|
"description": "Core utilities for building navigators",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.29",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
7
7
|
"react-native",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"clean": "del lib"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@react-navigation/routers": "^8.0.0-alpha.
|
|
43
|
+
"@react-navigation/routers": "^8.0.0-alpha.16",
|
|
44
44
|
"escape-string-regexp": "^5.0.0",
|
|
45
45
|
"fast-deep-equal": "^3.1.3",
|
|
46
46
|
"nanoid": "^5.1.11",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
]
|
|
85
85
|
]
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "d938a69ca569f473bb4b7a0df742e303dff2e1e5"
|
|
88
88
|
}
|
|
@@ -278,6 +278,12 @@ export function BaseNavigationContainer<ParamList extends {} = RootParamList>({
|
|
|
278
278
|
|
|
279
279
|
const stackRef = React.useRef<string | undefined>(undefined);
|
|
280
280
|
|
|
281
|
+
const lastEmittedStateRef = React.useRef<State>(undefined);
|
|
282
|
+
|
|
283
|
+
const getIsStateEmitted = useLatestCallback(
|
|
284
|
+
() => !isFirstMountRef.current && lastEmittedStateRef.current === getState()
|
|
285
|
+
);
|
|
286
|
+
|
|
281
287
|
const builderContext = React.useMemo(
|
|
282
288
|
() => ({
|
|
283
289
|
addListener,
|
|
@@ -285,6 +291,7 @@ export function BaseNavigationContainer<ParamList extends {} = RootParamList>({
|
|
|
285
291
|
onDispatchAction,
|
|
286
292
|
onEmitEvent,
|
|
287
293
|
onOptionsChange,
|
|
294
|
+
getIsStateEmitted,
|
|
288
295
|
scheduleUpdate,
|
|
289
296
|
flushUpdates,
|
|
290
297
|
stackRef,
|
|
@@ -295,6 +302,7 @@ export function BaseNavigationContainer<ParamList extends {} = RootParamList>({
|
|
|
295
302
|
onDispatchAction,
|
|
296
303
|
onEmitEvent,
|
|
297
304
|
onOptionsChange,
|
|
305
|
+
getIsStateEmitted,
|
|
298
306
|
scheduleUpdate,
|
|
299
307
|
flushUpdates,
|
|
300
308
|
]
|
|
@@ -410,6 +418,8 @@ export function BaseNavigationContainer<ParamList extends {} = RootParamList>({
|
|
|
410
418
|
}
|
|
411
419
|
}
|
|
412
420
|
|
|
421
|
+
lastEmittedStateRef.current = state;
|
|
422
|
+
|
|
413
423
|
emitter.emit({ type: 'state', data: { state } });
|
|
414
424
|
|
|
415
425
|
if (!isFirstMountRef.current && onStateChangeRef.current) {
|
|
@@ -70,13 +70,15 @@ export const NavigationBuilderContext = React.createContext<{
|
|
|
70
70
|
data: unknown;
|
|
71
71
|
}) => void;
|
|
72
72
|
onOptionsChange: (options: object) => void;
|
|
73
|
+
getIsStateEmitted: () => boolean;
|
|
73
74
|
scheduleUpdate: (callback: () => void) => void;
|
|
74
75
|
flushUpdates: () => void;
|
|
75
|
-
stackRef?: React.
|
|
76
|
+
stackRef?: React.RefObject<string | undefined> | undefined;
|
|
76
77
|
}>({
|
|
77
78
|
onDispatchAction: () => undefined,
|
|
78
79
|
onEmitEvent: () => undefined,
|
|
79
80
|
onOptionsChange: () => undefined,
|
|
81
|
+
getIsStateEmitted: () => false,
|
|
80
82
|
scheduleUpdate: () => {
|
|
81
83
|
throw new Error("Couldn't find a context for scheduling updates.");
|
|
82
84
|
},
|
package/src/useDescriptors.tsx
CHANGED
|
@@ -124,6 +124,7 @@ export function useDescriptors<
|
|
|
124
124
|
scheduleUpdate,
|
|
125
125
|
flushUpdates,
|
|
126
126
|
stackRef,
|
|
127
|
+
getIsStateEmitted,
|
|
127
128
|
} = React.use(NavigationBuilderContext);
|
|
128
129
|
|
|
129
130
|
const context = React.useMemo(
|
|
@@ -136,6 +137,7 @@ export function useDescriptors<
|
|
|
136
137
|
onDispatchAction,
|
|
137
138
|
onEmitEvent,
|
|
138
139
|
onOptionsChange,
|
|
140
|
+
getIsStateEmitted,
|
|
139
141
|
scheduleUpdate,
|
|
140
142
|
flushUpdates,
|
|
141
143
|
stackRef,
|
|
@@ -149,6 +151,7 @@ export function useDescriptors<
|
|
|
149
151
|
onDispatchAction,
|
|
150
152
|
onEmitEvent,
|
|
151
153
|
onOptionsChange,
|
|
154
|
+
getIsStateEmitted,
|
|
152
155
|
scheduleUpdate,
|
|
153
156
|
flushUpdates,
|
|
154
157
|
stackRef,
|
|
@@ -231,7 +234,6 @@ export function useDescriptors<
|
|
|
231
234
|
const clearOptions = () =>
|
|
232
235
|
setOptions((o) => {
|
|
233
236
|
if (route.key in o) {
|
|
234
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
235
237
|
const { [route.key]: _, ...rest } = o;
|
|
236
238
|
return rest;
|
|
237
239
|
}
|
|
@@ -19,7 +19,6 @@ import { ConsumedParamsContext } from './ConsumedParamsContext';
|
|
|
19
19
|
import { deepFreeze } from './deepFreeze';
|
|
20
20
|
import { Group } from './Group';
|
|
21
21
|
import { isArrayEqual } from './isArrayEqual';
|
|
22
|
-
import { isRecordEqual } from './isRecordEqual';
|
|
23
22
|
import { NavigationBuilderContext } from './NavigationBuilderContext';
|
|
24
23
|
import { NavigationHelpersContext } from './NavigationHelpersContext';
|
|
25
24
|
import { NavigationMetaContext } from './NavigationMetaContext';
|
|
@@ -104,7 +103,7 @@ const getRouteConfigsFromChildren = <
|
|
|
104
103
|
EventMap extends EventMapBase,
|
|
105
104
|
>(
|
|
106
105
|
children: React.ReactNode,
|
|
107
|
-
|
|
106
|
+
groupKeys: string[] = [],
|
|
108
107
|
groupOptions?: ScreenConfigWithParent<
|
|
109
108
|
State,
|
|
110
109
|
ScreenOptions,
|
|
@@ -147,7 +146,7 @@ const getRouteConfigsFromChildren = <
|
|
|
147
146
|
}
|
|
148
147
|
|
|
149
148
|
acc.push({
|
|
150
|
-
keys: [
|
|
149
|
+
keys: [...groupKeys, child.props.navigationKey],
|
|
151
150
|
options: groupOptions,
|
|
152
151
|
layout: groupLayout,
|
|
153
152
|
props: child.props as RouteConfig<
|
|
@@ -177,7 +176,9 @@ const getRouteConfigsFromChildren = <
|
|
|
177
176
|
acc.push(
|
|
178
177
|
...getRouteConfigsFromChildren<State, ScreenOptions, EventMap>(
|
|
179
178
|
child.props.children as React.ReactNode,
|
|
180
|
-
child.props.navigationKey
|
|
179
|
+
child.props.navigationKey != null
|
|
180
|
+
? [...groupKeys, child.props.navigationKey]
|
|
181
|
+
: groupKeys,
|
|
181
182
|
// FIXME
|
|
182
183
|
// @ts-expect-error: add validation
|
|
183
184
|
child.type !== Group
|
|
@@ -285,10 +286,23 @@ const getRouteConfigsFromChildren = <
|
|
|
285
286
|
return configs;
|
|
286
287
|
};
|
|
287
288
|
|
|
288
|
-
const getStateFromParams = (
|
|
289
|
+
const getStateFromParams = (
|
|
290
|
+
params: NavigatorRoute['params'],
|
|
291
|
+
type: string
|
|
292
|
+
): NavigationState | PartialState<NavigationState> | undefined => {
|
|
289
293
|
const state = params?.state;
|
|
290
294
|
|
|
291
295
|
if (isNavigationState(state)) {
|
|
296
|
+
if (state.type != null && state.type !== type) {
|
|
297
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
298
|
+
console.error(
|
|
299
|
+
`The state passed in the params is for a navigator of type '${state.type}', but it was passed to a navigator of type '${type}'. This can happen if the state was meant for a different navigator. The state will be discarded.`
|
|
300
|
+
);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
return undefined;
|
|
304
|
+
}
|
|
305
|
+
|
|
292
306
|
return state;
|
|
293
307
|
} else if (typeof params?.screen === 'string' && params?.initial !== false) {
|
|
294
308
|
return {
|
|
@@ -395,7 +409,7 @@ export function useNavigationBuilder<
|
|
|
395
409
|
ScreenConfigWithParent<State, ScreenOptions, EventMap>
|
|
396
410
|
> = {};
|
|
397
411
|
|
|
398
|
-
const routeKeyList: Record<string,
|
|
412
|
+
const routeKeyList: Record<string, (string | undefined)[]> = {};
|
|
399
413
|
const routeParamList: Record<string, object | undefined> = {};
|
|
400
414
|
const routeGetIdList: RouterConfigOptions['routeGetIdList'] = {};
|
|
401
415
|
|
|
@@ -409,7 +423,7 @@ export function useNavigationBuilder<
|
|
|
409
423
|
}
|
|
410
424
|
|
|
411
425
|
screens[name] = config;
|
|
412
|
-
routeKeyList[name] = config.keys
|
|
426
|
+
routeKeyList[name] = config.keys;
|
|
413
427
|
routeParamList[name] = config.props.initialParams;
|
|
414
428
|
|
|
415
429
|
Object.assign(routeGetIdList, { [name]: config.props.getId });
|
|
@@ -444,6 +458,10 @@ export function useNavigationBuilder<
|
|
|
444
458
|
getIsInitial,
|
|
445
459
|
} = React.use(NavigationStateContext);
|
|
446
460
|
|
|
461
|
+
const { onEmitEvent, getIsStateEmitted } = React.use(
|
|
462
|
+
NavigationBuilderContext
|
|
463
|
+
);
|
|
464
|
+
|
|
447
465
|
const stateCleanupRef = React.useRef<boolean>(false);
|
|
448
466
|
const lastStateRef = React.useRef<State | PartialState<State> | undefined>(
|
|
449
467
|
undefined
|
|
@@ -543,7 +561,7 @@ export function useNavigationBuilder<
|
|
|
543
561
|
} else {
|
|
544
562
|
const paramsForState = isNestedParamsConsumed ? undefined : route?.params;
|
|
545
563
|
const stateFromParams = paramsForState
|
|
546
|
-
? getStateFromParams(paramsForState)
|
|
564
|
+
? getStateFromParams(paramsForState, router.type)
|
|
547
565
|
: undefined;
|
|
548
566
|
|
|
549
567
|
const stateBeforeInitialization = (stateFromParams ?? currentState) as
|
|
@@ -565,6 +583,7 @@ export function useNavigationBuilder<
|
|
|
565
583
|
|
|
566
584
|
if (
|
|
567
585
|
stateBeforeInitialization != null &&
|
|
586
|
+
isStateValid(stateBeforeInitialization) &&
|
|
568
587
|
options.routeNamesChangeBehavior === 'lastUnhandled' &&
|
|
569
588
|
doesStateHaveOnlyInvalidRoutes(stateBeforeInitialization)
|
|
570
589
|
) {
|
|
@@ -596,6 +615,16 @@ export function useNavigationBuilder<
|
|
|
596
615
|
|
|
597
616
|
const previousRouteKeyList = previousRouteKeyListRef.current;
|
|
598
617
|
|
|
618
|
+
// Names of the screens whose navigation key changed since the last render
|
|
619
|
+
const routeKeyChanges = Object.keys(routeKeyList).filter((name) => {
|
|
620
|
+
const current = routeKeyList[name];
|
|
621
|
+
const previous = previousRouteKeyList[name];
|
|
622
|
+
|
|
623
|
+
return (
|
|
624
|
+
current != null && previous != null && !isArrayEqual(current, previous)
|
|
625
|
+
);
|
|
626
|
+
});
|
|
627
|
+
|
|
599
628
|
const [unhandledState, setUnhandledState] = React.useState<
|
|
600
629
|
NavigationState | PartialState<NavigationState> | undefined
|
|
601
630
|
>(stateBeforeInitialization);
|
|
@@ -623,10 +652,14 @@ export function useNavigationBuilder<
|
|
|
623
652
|
let nextState: State = state;
|
|
624
653
|
let shouldClearUnhandledState = false;
|
|
625
654
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
655
|
+
if (unhandledState != null && !isStateValid(unhandledState)) {
|
|
656
|
+
// The stored unhandled state is for a different type of navigator
|
|
657
|
+
// It can't be used with this navigator, so we discard it
|
|
658
|
+
setUnhandledState(undefined);
|
|
659
|
+
} else if (
|
|
660
|
+
// Previously unhandled state is now valid again
|
|
661
|
+
// And current state no longer has any valid routes
|
|
662
|
+
// We should reuse the unhandled state instead of re-calculating the state
|
|
630
663
|
unhandledState?.routes.every((r) => routeNames.includes(r.name)) &&
|
|
631
664
|
state?.routes.every((r) => !routeNames.includes(r.name))
|
|
632
665
|
) {
|
|
@@ -641,18 +674,14 @@ export function useNavigationBuilder<
|
|
|
641
674
|
);
|
|
642
675
|
} else if (
|
|
643
676
|
!isArrayEqual(state.routeNames, routeNames) ||
|
|
644
|
-
|
|
677
|
+
routeKeyChanges.length !== 0
|
|
645
678
|
) {
|
|
646
679
|
// When the list of route names change, the router should handle it to remove invalid routes
|
|
647
680
|
nextState = router.getStateForRouteNamesChange(state, {
|
|
648
681
|
routeNames,
|
|
649
682
|
routeParamList,
|
|
650
683
|
routeGetIdList,
|
|
651
|
-
routeKeyChanges
|
|
652
|
-
(name) =>
|
|
653
|
-
name in previousRouteKeyList &&
|
|
654
|
-
routeKeyList[name] !== previousRouteKeyList[name]
|
|
655
|
-
),
|
|
684
|
+
routeKeyChanges,
|
|
656
685
|
});
|
|
657
686
|
}
|
|
658
687
|
|
|
@@ -660,21 +689,24 @@ export function useNavigationBuilder<
|
|
|
660
689
|
|
|
661
690
|
if (route?.params && !didConsumeNestedParams) {
|
|
662
691
|
let action: CommonActions.Action | undefined;
|
|
663
|
-
const stateFromParams = route.params.state;
|
|
664
692
|
|
|
665
|
-
if (isNavigationState(
|
|
693
|
+
if (isNavigationState(route.params.state) && !isNestedParamsConsumed) {
|
|
666
694
|
didConsumeNestedParams = true;
|
|
667
695
|
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
696
|
+
const stateFromParams = getStateFromParams(route.params, router.type);
|
|
697
|
+
|
|
698
|
+
if (stateFromParams != null) {
|
|
699
|
+
if (
|
|
700
|
+
options.routeNamesChangeBehavior === 'lastUnhandled' &&
|
|
701
|
+
doesStateHaveOnlyInvalidRoutes(stateFromParams)
|
|
702
|
+
) {
|
|
703
|
+
if (stateFromParams !== unhandledState) {
|
|
704
|
+
setUnhandledState(stateFromParams);
|
|
705
|
+
}
|
|
706
|
+
} else {
|
|
707
|
+
// If the route was updated with new state, we should reset to it
|
|
708
|
+
action = CommonActions.reset(stateFromParams);
|
|
674
709
|
}
|
|
675
|
-
} else {
|
|
676
|
-
// If the route was updated with new state, we should reset to it
|
|
677
|
-
action = CommonActions.reset(stateFromParams);
|
|
678
710
|
}
|
|
679
711
|
} else if (
|
|
680
712
|
typeof route.params.screen === 'string' &&
|
|
@@ -687,7 +719,7 @@ export function useNavigationBuilder<
|
|
|
687
719
|
options.routeNamesChangeBehavior === 'lastUnhandled' &&
|
|
688
720
|
!routeNames.includes(route.params.screen)
|
|
689
721
|
) {
|
|
690
|
-
const state = getStateFromParams(route.params);
|
|
722
|
+
const state = getStateFromParams(route.params, router.type);
|
|
691
723
|
|
|
692
724
|
if (state != null && !deepEqual(state, unhandledState)) {
|
|
693
725
|
setUnhandledState(state);
|
|
@@ -716,6 +748,18 @@ export function useNavigationBuilder<
|
|
|
716
748
|
})
|
|
717
749
|
: null;
|
|
718
750
|
|
|
751
|
+
if (
|
|
752
|
+
process.env.NODE_ENV !== 'production' &&
|
|
753
|
+
action != null &&
|
|
754
|
+
updatedState === null
|
|
755
|
+
) {
|
|
756
|
+
const names = routeNames.map((name) => `'${name}'`).join(', ');
|
|
757
|
+
|
|
758
|
+
console.error(
|
|
759
|
+
`The 'state' or 'screen' passed in the params couldn't be applied to the navigator with the screens: ${names}. This can happen if the params contain names of screens that don't exist in the navigator. The navigation specified in the params will be ignored.`
|
|
760
|
+
);
|
|
761
|
+
}
|
|
762
|
+
|
|
719
763
|
nextState =
|
|
720
764
|
updatedState !== null
|
|
721
765
|
? router.getRehydratedState(updatedState, {
|
|
@@ -769,13 +813,27 @@ export function useNavigationBuilder<
|
|
|
769
813
|
|
|
770
814
|
setKey(navigatorKey);
|
|
771
815
|
|
|
772
|
-
if (
|
|
773
|
-
|
|
774
|
-
|
|
816
|
+
if (
|
|
817
|
+
(!getIsInitial() || getIsStateEmitted()) &&
|
|
818
|
+
lastNotifiedStateRef.current !== state
|
|
819
|
+
) {
|
|
820
|
+
// We need to notify the state update in these scenarios:
|
|
821
|
+
// 1. If it's not the initial render of the component containing the navigator
|
|
822
|
+
// 2. If the container has already emitted state before the navigator mounted
|
|
823
|
+
//
|
|
824
|
+
// This will make sure that the container gets notified of state changes due to new mounts
|
|
775
825
|
// This is necessary for proper screen tracking, URL updates etc.
|
|
776
|
-
//
|
|
777
|
-
//
|
|
826
|
+
//
|
|
827
|
+
// During hydration, a nested navigator may mount after the container's initial state event.
|
|
828
|
+
// Or mount could be delayed due to conditional rendering, suspense etc.
|
|
829
|
+
// So only checking for the initial render is not enough.
|
|
830
|
+
// We also need to propagate the navigator's initial state when it mounts later,
|
|
831
|
+
// so the container is notified that the nested state is now available.
|
|
832
|
+
//
|
|
833
|
+
// We only notify if the state is different from what we already notified
|
|
834
|
+
// Otherwise, this goes into a loop when inside `<Activity mode="hidden">`
|
|
778
835
|
setState(state);
|
|
836
|
+
|
|
779
837
|
lastNotifiedStateRef.current = state;
|
|
780
838
|
}
|
|
781
839
|
|
|
@@ -804,8 +862,6 @@ export function useNavigationBuilder<
|
|
|
804
862
|
);
|
|
805
863
|
});
|
|
806
864
|
|
|
807
|
-
const { onEmitEvent } = React.use(NavigationBuilderContext);
|
|
808
|
-
|
|
809
865
|
const emitter = useEventEmitter<EventMapCore<State>>((e) => {
|
|
810
866
|
const routeNames = [];
|
|
811
867
|
|
package/src/useOnAction.tsx
CHANGED
|
@@ -54,6 +54,7 @@ export function useOnAction<State extends NavigationState>({
|
|
|
54
54
|
onRouteFocus: onRouteFocusParent,
|
|
55
55
|
addListener: addListenerParent,
|
|
56
56
|
onDispatchAction,
|
|
57
|
+
flushUpdates,
|
|
57
58
|
} = React.use(NavigationBuilderContext);
|
|
58
59
|
|
|
59
60
|
const tree = React.use(StaticTreeContext);
|
|
@@ -71,6 +72,11 @@ export function useOnAction<State extends NavigationState>({
|
|
|
71
72
|
action: NavigationAction,
|
|
72
73
|
visitedNavigators: Set<string> = new Set<string>()
|
|
73
74
|
) => {
|
|
75
|
+
// Apply any pending state updates scheduled during render before handling the action
|
|
76
|
+
// Otherwise the action will be handled with an outdated state,
|
|
77
|
+
// and the pending updates will overwrite the changes from the action
|
|
78
|
+
flushUpdates();
|
|
79
|
+
|
|
74
80
|
const state = getState();
|
|
75
81
|
|
|
76
82
|
// Since actions can bubble both up and down, they could come to the same navigator again
|
|
@@ -93,6 +99,17 @@ export function useOnAction<State extends NavigationState>({
|
|
|
93
99
|
result =
|
|
94
100
|
result === null && action.target === state.key ? state : result;
|
|
95
101
|
|
|
102
|
+
if (result !== null && result.stale !== false) {
|
|
103
|
+
// Some actions (e.g. `RESET`) may return a stale state from the router
|
|
104
|
+
// We rehydrate it before storing so the stored state is always usable
|
|
105
|
+
// Otherwise anything reading the state before the next render
|
|
106
|
+
// (e.g. another dispatch immediately after) would get an outdated state
|
|
107
|
+
result = router.getRehydratedState(
|
|
108
|
+
result,
|
|
109
|
+
routerConfigOptionsRef.current
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
96
113
|
if (result !== null) {
|
|
97
114
|
if (state !== result) {
|
|
98
115
|
const isPrevented = shouldPreventRemove(
|
|
@@ -109,6 +126,13 @@ export function useOnAction<State extends NavigationState>({
|
|
|
109
126
|
return true;
|
|
110
127
|
}
|
|
111
128
|
|
|
129
|
+
if (getState() !== state) {
|
|
130
|
+
// Listeners for 'beforeRemove' may dispatch actions that change the state
|
|
131
|
+
// Then the result we have is outdated and would overwrite those changes
|
|
132
|
+
// So we handle the action again to calculate the result with the latest state
|
|
133
|
+
return onAction(action, new Set<string>());
|
|
134
|
+
}
|
|
135
|
+
|
|
112
136
|
onDispatchAction(action, false);
|
|
113
137
|
|
|
114
138
|
if (tree) {
|
|
@@ -166,6 +190,7 @@ export function useOnAction<State extends NavigationState>({
|
|
|
166
190
|
beforeRemoveListeners,
|
|
167
191
|
consumedParams,
|
|
168
192
|
emitter,
|
|
193
|
+
flushUpdates,
|
|
169
194
|
getState,
|
|
170
195
|
key,
|
|
171
196
|
onActionParent,
|