@react-navigation/core 7.14.0 → 7.15.0

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.
@@ -42,47 +42,14 @@ export function SceneView({
42
42
  const setCurrentState = React.useCallback(child => {
43
43
  const state = getState();
44
44
  const routes = state.routes.map(r => {
45
- if (r.key !== route.key) {
46
- return r;
47
- }
48
- const nextRoute = r.state !== child ? {
49
- ...r,
50
- state: child
51
- } : r;
52
-
53
- // Before updating the state, cleanup any nested screen and state
54
- // This will avoid the navigator trying to handle them again
55
- if (nextRoute.params && ('state' in nextRoute.params && typeof nextRoute.params.state === 'object' && nextRoute.params.state !== null || 'screen' in nextRoute.params && typeof nextRoute.params.screen === 'string')) {
56
- // @ts-expect-error: we don't have correct type for params
57
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
58
- const {
59
- state,
60
- screen,
61
- params,
62
- initial,
63
- ...rest
64
- } = nextRoute.params;
65
- if (Object.keys(rest).length) {
66
- return {
67
- ...nextRoute,
68
- params: rest
69
- };
70
- } else {
71
- const {
72
- // We destructure the params to omit them
73
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
74
- params,
75
- ...restRoute
76
- } = nextRoute;
77
- return restRoute;
78
- }
45
+ if (r.key === route.key && r.state !== child) {
46
+ return {
47
+ ...r,
48
+ state: child
49
+ };
79
50
  }
80
- return nextRoute;
51
+ return r;
81
52
  });
82
-
83
- // Make sure not to update state if routes haven't changed
84
- // Otherwise this will result in params cleanup as well
85
- // We only want to cleanup params when state changes - after they are used
86
53
  if (!isArrayEqual(state.routes, routes)) {
87
54
  setState({
88
55
  ...state,
@@ -1 +1 @@
1
- {"version":3,"names":["React","EnsureSingleNavigator","isArrayEqual","NavigationFocusedRouteStateContext","NavigationStateContext","StaticContainer","useOptionsGetters","jsx","_jsx","SceneView","screen","route","navigation","routeState","getState","setState","options","clearOptions","navigatorKeyRef","useRef","undefined","getKey","useCallback","current","addOptionsGetter","key","setKey","getCurrentState","state","currentRoute","routes","find","r","setCurrentState","child","map","nextRoute","params","initial","rest","Object","keys","length","restRoute","isInitialRef","useEffect","getIsInitial","parentFocusedRouteState","useContext","focusedRouteState","useMemo","name","path","addState","parent","parentRoute","context","ScreenComponent","getComponent","component","Provider","value","children","render"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","EnsureSingleNavigator","isArrayEqual","NavigationFocusedRouteStateContext","NavigationStateContext","StaticContainer","useOptionsGetters","jsx","_jsx","SceneView","screen","route","navigation","routeState","getState","setState","options","clearOptions","navigatorKeyRef","useRef","undefined","getKey","useCallback","current","addOptionsGetter","key","setKey","getCurrentState","state","currentRoute","routes","find","r","setCurrentState","child","map","isInitialRef","useEffect","getIsInitial","parentFocusedRouteState","useContext","focusedRouteState","useMemo","name","params","path","addState","parent","parentRoute","context","ScreenComponent","getComponent","component","Provider","value","children","render"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":"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","ignoreList":[]}
@@ -39,6 +39,7 @@ import { useScheduleUpdate } from "./useScheduleUpdate.js";
39
39
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
40
40
  import { jsx as _jsx } from "react/jsx-runtime";
41
41
  PrivateValueStore;
42
+ const CONSUMED_PARAMS = Symbol('CONSUMED_PARAMS');
42
43
  const isScreen = child => {
43
44
  return child.type === Screen;
44
45
  };
@@ -161,6 +162,19 @@ const getStateFromParams = params => {
161
162
  export function useNavigationBuilder(createRouter, options) {
162
163
  const navigatorKey = useRegisterNavigator();
163
164
  const route = React.useContext(NavigationRouteContext);
165
+ React.useEffect(() => {
166
+ const hasNestedParams = typeof route?.params?.state === 'object' || typeof route?.params?.screen === 'string';
167
+
168
+ // Track whether the params have been already consumed
169
+ // Set it to the same object so merged params will be handled again
170
+ if (typeof route?.params === 'object' && route.params != null && hasNestedParams) {
171
+ Object.defineProperty(route.params, CONSUMED_PARAMS, {
172
+ value: route.params,
173
+ enumerable: false
174
+ });
175
+ }
176
+ }, [route?.params]);
177
+ const isNestedParamsConsumed = typeof route?.params === 'object' && route.params != null ? CONSUMED_PARAMS in route.params && route.params[CONSUMED_PARAMS] === route.params : false;
164
178
  const {
165
179
  children,
166
180
  layout,
@@ -221,17 +235,32 @@ export function useNavigationBuilder(createRouter, options) {
221
235
  getKey,
222
236
  getIsInitial
223
237
  } = React.useContext(NavigationStateContext);
224
- const stateCleanedUp = React.useRef(false);
238
+ const stateCleanupRef = React.useRef(false);
239
+ const lastStateRef = React.useRef(undefined);
225
240
  const setState = useLatestCallback(state => {
226
- if (stateCleanedUp.current) {
241
+ if (stateCleanupRef.current) {
242
+ // Store the state locally in case the current navigator is in `Activity`
243
+ lastStateRef.current = state;
244
+
227
245
  // State might have been already cleaned up due to unmount
228
- // We do not want to expose API allowing to override this
229
- // This would lead to old data preservation on main navigator unmount
246
+ // We don't want to update `route.state` in parent
247
+ // Otherwise it will be reused if a new navigator gets mounted
230
248
  return;
231
249
  }
232
250
  setCurrentState(state);
233
251
  });
234
- const [stateBeforeInitialization, initializedState, isFirstStateInitialization] = React.useMemo(() => {
252
+ const [stateBeforeInitialization, initializedState, isFirstStateInitialization, paramsUsedForInitialization] = React.useMemo(() => {
253
+ // If the state was already cleaned up, but we have it stored in ref,
254
+ // It likely got cleaned up due to `<Activity mode="hidden">`
255
+ // We should reuse this state to avoid remounting screens
256
+ if (stateCleanupRef.current && lastStateRef.current && isStateValid(lastStateRef.current)) {
257
+ const state = isStateInitialized(lastStateRef.current) ? lastStateRef.current : router.getRehydratedState(lastStateRef.current, {
258
+ routeNames,
259
+ routeParamList,
260
+ routeGetIdList
261
+ });
262
+ return [undefined, state, false, undefined];
263
+ }
235
264
  const initialRouteParamList = routeNames.reduce((acc, curr) => {
236
265
  const {
237
266
  initialParams
@@ -248,14 +277,15 @@ export function useNavigationBuilder(createRouter, options) {
248
277
  // We also need to re-initialize it if the state passed from parent was changed (maybe due to reset)
249
278
  // Otherwise assume that the state was provided as initial state
250
279
  // So we need to rehydrate it to make it usable
251
- if ((currentState === undefined || !isStateValid(currentState)) && route?.params?.state == null && !(typeof route?.params?.screen === 'string' && route?.params?.initial !== false)) {
280
+ if ((currentState === undefined || !isStateValid(currentState)) && route?.params?.state == null && !(typeof route?.params?.screen === 'string' && route?.params?.initial !== false) && !isNestedParamsConsumed) {
252
281
  return [undefined, router.getInitialState({
253
282
  routeNames,
254
283
  routeParamList: initialRouteParamList,
255
284
  routeGetIdList
256
- }), true];
285
+ }), true, undefined];
257
286
  } else {
258
- const stateFromParams = getStateFromParams(route?.params);
287
+ const paramsForState = isNestedParamsConsumed ? undefined : route?.params;
288
+ const stateFromParams = paramsForState ? getStateFromParams(paramsForState) : undefined;
259
289
  const stateBeforeInitialization = stateFromParams ?? currentState;
260
290
  const hydratedState = router.getRehydratedState(stateBeforeInitialization, {
261
291
  routeNames,
@@ -263,9 +293,9 @@ export function useNavigationBuilder(createRouter, options) {
263
293
  routeGetIdList
264
294
  });
265
295
  if (options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' && doesStateHaveOnlyInvalidRoutes(stateBeforeInitialization)) {
266
- return [stateBeforeInitialization, hydratedState, true];
296
+ return [stateBeforeInitialization, hydratedState, true, paramsForState];
267
297
  }
268
- return [undefined, hydratedState, false];
298
+ return [undefined, hydratedState, false, paramsForState];
269
299
  }
270
300
  // We explicitly don't include routeNames, route.params etc. in the dep list
271
301
  // below. We want to avoid forcing a new state to be calculated in those cases
@@ -315,14 +345,9 @@ export function useNavigationBuilder(createRouter, options) {
315
345
  routeKeyChanges: Object.keys(routeKeyList).filter(name => name in previousRouteKeyList && routeKeyList[name] !== previousRouteKeyList[name])
316
346
  });
317
347
  }
318
- const previousNestedParamsRef = React.useRef(route?.params);
319
- React.useEffect(() => {
320
- previousNestedParamsRef.current = route?.params;
321
- }, [route?.params]);
322
- if (route?.params) {
323
- const previousParams = previousNestedParamsRef.current;
348
+ if (route?.params && route.params !== paramsUsedForInitialization) {
324
349
  let action;
325
- if (typeof route.params.state === 'object' && route.params.state != null && route.params !== previousParams) {
350
+ if (typeof route.params.state === 'object' && route.params.state != null && !isNestedParamsConsumed) {
326
351
  if (options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' && doesStateHaveOnlyInvalidRoutes(route.params.state)) {
327
352
  if (route.params.state !== unhandledState) {
328
353
  setUnhandledState(route.params.state);
@@ -331,7 +356,7 @@ export function useNavigationBuilder(createRouter, options) {
331
356
  // If the route was updated with new state, we should reset to it
332
357
  action = CommonActions.reset(route.params.state);
333
358
  }
334
- } else if (typeof route.params.screen === 'string' && (route.params.initial === false && isFirstStateInitialization || route.params !== previousParams)) {
359
+ } else if (typeof route.params.screen === 'string' && (route.params.initial === false && isFirstStateInitialization || !isNestedParamsConsumed)) {
335
360
  if (options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' && !routeNames.includes(route.params.screen)) {
336
361
  const state = getStateFromParams(route.params);
337
362
  if (state != null && !deepEqual(state, unhandledState)) {
@@ -361,10 +386,10 @@ export function useNavigationBuilder(createRouter, options) {
361
386
  routeGetIdList
362
387
  }) : nextState;
363
388
  }
364
- const shouldUpdate = state !== nextState || typeof route?.params?.state === 'object' || typeof route?.params?.screen === 'string';
389
+ const shouldUpdate = state !== nextState;
365
390
  useScheduleUpdate(() => {
366
391
  if (shouldUpdate) {
367
- // If the state needs to be updated, we'll schedule an update
392
+ // Schedule an update if the state needs to be updated
368
393
  setState(nextState);
369
394
  if (shouldClearUnhandledState) {
370
395
  setUnhandledState(undefined);
@@ -376,22 +401,31 @@ export function useNavigationBuilder(createRouter, options) {
376
401
  // We can't use the outdated state since the screens have changed, which will cause error due to mismatched config
377
402
  // So we override the state object we return to use the latest state as soon as possible
378
403
  state = nextState;
404
+
405
+ // Last state to reuse if component gets cleaned up due to `<Activity mode="hidden">`
406
+ React.useEffect(() => {
407
+ lastStateRef.current = state;
408
+ });
409
+ const lastNotifiedStateRef = React.useRef(null);
379
410
  React.useEffect(() => {
380
411
  // In strict mode, React will double-invoke effects.
381
412
  // So we need to reset the flag if component was not unmounted
382
- stateCleanedUp.current = false;
413
+ stateCleanupRef.current = false;
383
414
  setKey(navigatorKey);
384
- if (!getIsInitial()) {
415
+ if (!getIsInitial() && lastNotifiedStateRef.current !== state) {
385
416
  // If it's not initial render, we need to update the state
386
417
  // This will make sure that our container gets notifier of state changes due to new mounts
387
418
  // This is necessary for proper screen tracking, URL updates etc.
388
- setState(nextState);
419
+ // We only notify if the state is different what we already notified
420
+ // Otherwise this goes into a loop when inside `<Activity mode="hidden">`
421
+ setState(state);
422
+ lastNotifiedStateRef.current = state;
389
423
  }
390
424
  return () => {
391
425
  // We need to clean up state for this navigator on unmount
392
426
  if (getCurrentState() !== undefined && getKey() === navigatorKey) {
393
427
  setCurrentState(undefined);
394
- stateCleanedUp.current = true;
428
+ stateCleanupRef.current = true;
395
429
  }
396
430
  };
397
431
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationMetaContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useClientLayoutEffect","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","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","state","screen","initial","routes","path","useNavigationBuilder","createRouter","navigatorKey","route","useContext","screenListeners","UNSTABLE_router","rest","routeConfigs","router","initialRouteName","every","original","overrides","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanedUp","useRef","current","stateBeforeInitialization","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","getInitialState","stateFromParams","hydratedState","getRehydratedState","UNSTABLE_routeNamesChangeBehavior","previousRouteKeyListRef","useEffect","previousRouteKeyList","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","routeKeyChanges","filter","previousNestedParamsRef","previousParams","action","reset","navigate","merge","pop","updatedState","getStateForAction","shouldUpdate","stateRef","emitter","e","target","find","index","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","payload","id","focusedListeners","focus","getStateListeners","describe","NavigationContent","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationMetaContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useClientLayoutEffect","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","CONSUMED_PARAMS","Symbol","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","state","screen","initial","routes","path","useNavigationBuilder","createRouter","navigatorKey","route","useContext","useEffect","hasNestedParams","Object","defineProperty","value","enumerable","isNestedParamsConsumed","screenListeners","UNSTABLE_router","rest","routeConfigs","router","initialRouteName","every","original","overrides","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","assign","getId","length","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","initialParamsFromParams","getInitialState","paramsForState","stateFromParams","hydratedState","UNSTABLE_routeNamesChangeBehavior","previousRouteKeyListRef","previousRouteKeyList","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","routeKeyChanges","filter","action","reset","navigate","merge","pop","updatedState","getStateForAction","shouldUpdate","lastNotifiedStateRef","stateRef","emitter","e","target","find","index","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","payload","id","focusedListeners","focus","getStateListeners","describe","NavigationContent","element","Provider"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","DeprecatedNavigationInChildContext","NavigationBuilderContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","useContext","navigationInChildEnabled","routerConfigOptionsRef","useRef","useEffect","current","useCallback","action","visitedNavigators","Set","state","has","add","target","result","getStateForAction","isPrevented","routes","undefined","shouldFocus","shouldActionChangeFocus","type","i","length","listener"],"sourceRoot":"../../src","sources":["useOnAction.tsx"],"mappings":";;AAOA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,kCAAkC,QAAQ,yCAAsC;AACzF,SAGEC,wBAAwB,QACnB,+BAA4B;AAGnC,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,yBAAsB;AAa9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1BC,MAAM;EACNC,QAAQ;EACRC,QAAQ;EACRC,GAAG;EACHC,eAAe;EACfC,qBAAqB;EACrBC,mBAAmB;EACnBC;AACO,CAAC,EAAE;EACV,MAAM;IACJC,QAAQ,EAAEC,cAAc;IACxBC,YAAY,EAAEC,kBAAkB;IAChCC,WAAW,EAAEC,iBAAiB;IAC9BC;EACF,CAAC,GAAGpB,KAAK,CAACqB,UAAU,CAACnB,wBAAwB,CAAC;EAC9C,MAAMoB,wBAAwB,GAAGtB,KAAK,CAACqB,UAAU,CAC/CpB,kCACF,CAAC;EAED,MAAMsB,sBAAsB,GAC1BvB,KAAK,CAACwB,MAAM,CAAsBZ,mBAAmB,CAAC;EAExDZ,KAAK,CAACyB,SAAS,CAAC,MAAM;IACpBF,sBAAsB,CAACG,OAAO,GAAGd,mBAAmB;EACtD,CAAC,CAAC;EAEF,MAAME,QAAQ,GAAGd,KAAK,CAAC2B,WAAW,CAChC,CACEC,MAAwB,EACxBC,iBAA8B,GAAG,IAAIC,GAAG,CAAS,CAAC,KAC/C;IACH,MAAMC,KAAK,GAAGxB,QAAQ,CAAC,CAAC;;IAExB;IACA;IACA,IAAIsB,iBAAiB,CAACG,GAAG,CAACD,KAAK,CAACtB,GAAG,CAAC,EAAE;MACpC,OAAO,KAAK;IACd;IAEAoB,iBAAiB,CAACI,GAAG,CAACF,KAAK,CAACtB,GAAG,CAAC;IAEhC,IAAI,OAAOmB,MAAM,CAACM,MAAM,KAAK,QAAQ,IAAIN,MAAM,CAACM,MAAM,KAAKH,KAAK,CAACtB,GAAG,EAAE;MACpE,IAAI0B,MAAM,GAAG7B,MAAM,CAAC8B,iBAAiB,CACnCL,KAAK,EACLH,MAAM,EACNL,sBAAsB,CAACG,OACzB,CAAC;;MAED;MACA;MACAS,MAAM,GACJA,MAAM,KAAK,IAAI,IAAIP,MAAM,CAACM,MAAM,KAAKH,KAAK,CAACtB,GAAG,GAAGsB,KAAK,GAAGI,MAAM;MAEjE,IAAIA,MAAM,KAAK,IAAI,EAAE;QACnBf,gBAAgB,CAACQ,MAAM,EAAEG,KAAK,KAAKI,MAAM,CAAC;QAE1C,IAAIJ,KAAK,KAAKI,MAAM,EAAE;UACpB,MAAME,WAAW,GAAGlC,mBAAmB,CACrCU,OAAO,EACPF,qBAAqB,EACrBoB,KAAK,CAACO,MAAM,EACZH,MAAM,CAACG,MAAM,EACbV,MACF,CAAC;UAED,IAAIS,WAAW,EAAE;YACf,OAAO,IAAI;UACb;UAEA7B,QAAQ,CAAC2B,MAAM,CAAC;QAClB;QAEA,IAAIlB,kBAAkB,KAAKsB,SAAS,EAAE;UACpC;UACA;UACA,MAAMC,WAAW,GAAGlC,MAAM,CAACmC,uBAAuB,CAACb,MAAM,CAAC;UAE1D,IAAIY,WAAW,IAAI/B,GAAG,KAAK8B,SAAS,EAAE;YACpCtB,kBAAkB,CAACR,GAAG,CAAC;UACzB;QACF;QAEA,OAAO,IAAI;MACb;IACF;IAEA,IAAIM,cAAc,KAAKwB,SAAS,EAAE;MAChC;MACA,IAAIxB,cAAc,CAACa,MAAM,EAAEC,iBAAiB,CAAC,EAAE;QAC7C,OAAO,IAAI;MACb;IACF;IAEA,IACE,OAAOD,MAAM,CAACM,MAAM,KAAK,QAAQ;IACjC;IACAN,MAAM,CAACc,IAAI,KAAK,qBAAqB,IACrCpB,wBAAwB,EACxB;MACA;MACA;MACA,KAAK,IAAIqB,CAAC,GAAGjC,eAAe,CAACkC,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACpD,MAAME,QAAQ,GAAGnC,eAAe,CAACiC,CAAC,CAAC;QAEnC,IAAIE,QAAQ,CAACjB,MAAM,EAAEC,iBAAiB,CAAC,EAAE;UACvC,OAAO,IAAI;QACb;MACF;IACF;IAEA,OAAO,KAAK;EACd,CAAC,EACD,CACEnB,eAAe,EACfC,qBAAqB,EACrBE,OAAO,EACPN,QAAQ,EACRe,wBAAwB,EACxBb,GAAG,EACHM,cAAc,EACdK,gBAAgB,EAChBH,kBAAkB,EAClBX,MAAM,EACNE,QAAQ,CAEZ,CAAC;EAEDJ,kBAAkB,CAAC;IACjBG,QAAQ;IACRM,OAAO;IACPF;EACF,CAAC,CAAC;EAEFX,KAAK,CAACyB,SAAS,CACb,MAAMN,iBAAiB,GAAG,QAAQ,EAAEL,QAAQ,CAAC,EAC7C,CAACK,iBAAiB,EAAEL,QAAQ,CAC9B,CAAC;EAED,OAAOA,QAAQ;AACjB","ignoreList":[]}
1
+ {"version":3,"names":["React","DeprecatedNavigationInChildContext","NavigationBuilderContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","useContext","navigationInChildEnabled","routerConfigOptionsRef","useRef","useEffect","current","useCallback","action","visitedNavigators","Set","state","has","add","target","result","getStateForAction","isPrevented","routes","undefined","shouldFocus","shouldActionChangeFocus","type","i","length","listener"],"sourceRoot":"../../src","sources":["useOnAction.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationBuilderContext","useOnRouteFocus","router","getState","key","sourceRouteKey","setState","onRouteFocus","onRouteFocusParent","useContext","useCallback","state","result","getStateForRouteFocus","undefined"],"sourceRoot":"../../src","sources":["useOnRouteFocus.tsx"],"mappings":";;AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,+BAA4B;AASrE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAkC;EAC/DC,MAAM;EACNC,QAAQ;EACRC,GAAG,EAAEC,cAAc;EACnBC;AACe,CAAC,EAAE;EAClB,MAAM;IAAEC,YAAY,EAAEC;EAAmB,CAAC,GAAGT,KAAK,CAACU,UAAU,CAC3DT,wBACF,CAAC;EAED,OAAOD,KAAK,CAACW,WAAW,CACrBN,GAAW,IAAK;IACf,MAAMO,KAAK,GAAGR,QAAQ,CAAC,CAAC;IACxB,MAAMS,MAAM,GAAGV,MAAM,CAACW,qBAAqB,CAACF,KAAK,EAAEP,GAAG,CAAC;IAEvD,IAAIQ,MAAM,KAAKD,KAAK,EAAE;MACpBL,QAAQ,CAACM,MAAM,CAAC;IAClB;IAEA,IAAIJ,kBAAkB,KAAKM,SAAS,IAAIT,cAAc,KAAKS,SAAS,EAAE;MACpEN,kBAAkB,CAACH,cAAc,CAAC;IACpC;EACF,CAAC,EACD,CAACF,QAAQ,EAAEK,kBAAkB,EAAEN,MAAM,EAAEI,QAAQ,EAAED,cAAc,CACjE,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationBuilderContext","useOnRouteFocus","router","getState","key","sourceRouteKey","setState","onRouteFocus","onRouteFocusParent","useContext","useCallback","state","result","getStateForRouteFocus","undefined"],"sourceRoot":"../../src","sources":["useOnRouteFocus.tsx"],"mappings":";;AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,+BAA4B;AASrE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAG7B;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,GAAG,EAAEC,cAAc;EAAEC;AAAiC,CAAC,EAAE;EAC7E,MAAM;IAAEC,YAAY,EAAEC;EAAmB,CAAC,GAAGT,KAAK,CAACU,UAAU,CAC3DT,wBACF,CAAC;EAED,OAAOD,KAAK,CAACW,WAAW,CACrBN,GAAW,IAAK;IACf,MAAMO,KAAK,GAAGR,QAAQ,CAAC,CAAC;IACxB,MAAMS,MAAM,GAAGV,MAAM,CAACW,qBAAqB,CAACF,KAAK,EAAEP,GAAG,CAAC;IAEvD,IAAIQ,MAAM,KAAKD,KAAK,EAAE;MACpBL,QAAQ,CAACM,MAAM,CAAC;IAClB;IAEA,IAAIJ,kBAAkB,KAAKM,SAAS,IAAIT,cAAc,KAAKS,SAAS,EAAE;MACpEN,kBAAkB,CAACH,cAAc,CAAC;IACpC;EACF,CAAC,EACD,CAACF,QAAQ,EAAEK,kBAAkB,EAAEN,MAAM,EAAEI,QAAQ,EAAED,cAAc,CACjE,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../src/SceneView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,EACN,MAAM,2BAA2B,CAAC;AAWnC,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpE,KAAK,KAAK,CAAC,KAAK,SAAS,eAAe,EAAE,aAAa,SAAS,EAAE,IAAI;IACpE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,UAAU,EAAE,cAAc,CACxB,aAAa,EACb,MAAM,EACN,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,CACd,CAAC;IACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACxE,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,EACA,MAAM,EACN,KAAK,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,2CAoL7B"}
1
+ {"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../src/SceneView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,EACN,MAAM,2BAA2B,CAAC;AAWnC,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpE,KAAK,KAAK,CAAC,KAAK,SAAS,eAAe,EAAE,aAAa,SAAS,EAAE,IAAI;IACpE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,UAAU,EAAE,cAAc,CACxB,aAAa,EACb,MAAM,EACN,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,CACd,CAAC;IACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACxE,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,EACA,MAAM,EACN,KAAK,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,2CAsJ7B"}
@@ -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;AAc/B,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,YAAY,EAEjB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAsQjB;;;;;;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,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,GAAG,CACJ,GACC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsnBhB"}
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;AAc/B,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,YAAY,EAEjB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAwQjB;;;;;;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,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,GAAG,CACJ,GACC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkrBhB"}
@@ -2,11 +2,11 @@ import type { NavigationAction, NavigationState, PartialState, Router, RouterCon
2
2
  import { type ChildActionListener, type ChildBeforeRemoveListener } from './NavigationBuilderContext';
3
3
  import type { EventMapCore } from './types';
4
4
  import type { NavigationEventEmitter } from './useEventEmitter';
5
- type Options = {
6
- router: Router<NavigationState, NavigationAction>;
5
+ type Options<State extends NavigationState> = {
6
+ router: Router<State, NavigationAction>;
7
7
  key?: string;
8
- getState: () => NavigationState;
9
- setState: (state: NavigationState | PartialState<NavigationState>) => void;
8
+ getState: () => State;
9
+ setState: (state: State | PartialState<State>) => void;
10
10
  actionListeners: ChildActionListener[];
11
11
  beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>;
12
12
  routerConfigOptions: RouterConfigOptions;
@@ -21,6 +21,6 @@ type Options = {
21
21
  *
22
22
  * When the action handler handles as action, it returns `true`, otherwise `false`.
23
23
  */
24
- export declare function useOnAction({ router, getState, setState, key, actionListeners, beforeRemoveListeners, routerConfigOptions, emitter, }: Options): (action: NavigationAction, visitedNavigators?: Set<string>) => boolean;
24
+ export declare function useOnAction<State extends NavigationState>({ router, getState, setState, key, actionListeners, beforeRemoveListeners, routerConfigOptions, emitter, }: Options<State>): (action: NavigationAction, visitedNavigators?: Set<string>) => boolean;
25
25
  export {};
26
26
  //# sourceMappingURL=useOnAction.d.ts.map
@@ -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;AAInC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,KAAK,OAAO,GAAG;IACb,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAC3E,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,EAC1B,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,GACR,EAAE,OAAO,YAoBI,gBAAgB,sBACL,GAAG,CAAC,MAAM,CAAC,aA8GnC"}
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;AAInC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,KAAK,OAAO,CAAC,KAAK,SAAS,eAAe,IAAI;IAC5C,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,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,YAoBH,gBAAgB,sBACL,GAAG,CAAC,MAAM,CAAC,aA8GnC"}
@@ -1,8 +1,8 @@
1
1
  import type { NavigationAction, NavigationState, Router } from '@react-navigation/routers';
2
- type Options<Action extends NavigationAction> = {
3
- router: Router<NavigationState, Action>;
4
- getState: () => NavigationState;
5
- setState: (state: NavigationState) => void;
2
+ type Options<State extends NavigationState, Action extends NavigationAction> = {
3
+ router: Router<State, Action>;
4
+ getState: () => State;
5
+ setState: (state: State) => void;
6
6
  key?: string;
7
7
  };
8
8
  /**
@@ -10,6 +10,6 @@ type Options<Action extends NavigationAction> = {
10
10
  * Focus action needs to be treated specially, coz when a nested route is focused,
11
11
  * the parent navigators also needs to be focused.
12
12
  */
13
- export declare function useOnRouteFocus<Action extends NavigationAction>({ router, getState, key: sourceRouteKey, setState, }: Options<Action>): (key: string) => void;
13
+ export declare function useOnRouteFocus<State extends NavigationState, Action extends NavigationAction>({ router, getState, key: sourceRouteKey, setState }: Options<State, Action>): (key: string) => void;
14
14
  export {};
15
15
  //# sourceMappingURL=useOnRouteFocus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnRouteFocus.d.ts","sourceRoot":"","sources":["../../../src/useOnRouteFocus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,MAAM,EACP,MAAM,2BAA2B,CAAC;AAKnC,KAAK,OAAO,CAAC,MAAM,SAAS,gBAAgB,IAAI;IAC9C,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,gBAAgB,EAAE,EAC/D,MAAM,EACN,QAAQ,EACR,GAAG,EAAE,cAAc,EACnB,QAAQ,GACT,EAAE,OAAO,CAAC,MAAM,CAAC,SAMR,MAAM,UAcf"}
1
+ {"version":3,"file":"useOnRouteFocus.d.ts","sourceRoot":"","sources":["../../../src/useOnRouteFocus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,MAAM,EACP,MAAM,2BAA2B,CAAC;AAKnC,KAAK,OAAO,CAAC,KAAK,SAAS,eAAe,EAAE,MAAM,SAAS,gBAAgB,IAAI;IAC7E,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,SAAS,eAAe,EAC7B,MAAM,SAAS,gBAAgB,EAC/B,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,SAMnE,MAAM,UAcf"}
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": "7.14.0",
4
+ "version": "7.15.0",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -83,5 +83,5 @@
83
83
  ]
84
84
  ]
85
85
  },
86
- "gitHead": "e2e5f1e55afe7b135811832487f596c6060def74"
86
+ "gitHead": "3aa65ed15fa5ba10c14f330a52e7c00dd379a837"
87
87
  }
package/src/SceneView.tsx CHANGED
@@ -76,46 +76,16 @@ export function SceneView<
76
76
  const state = getState();
77
77
 
78
78
  const routes = state.routes.map((r) => {
79
- if (r.key !== route.key) {
80
- return r;
79
+ if (r.key === route.key && r.state !== child) {
80
+ return {
81
+ ...r,
82
+ state: child,
83
+ };
81
84
  }
82
85
 
83
- const nextRoute = r.state !== child ? { ...r, state: child } : r;
84
-
85
- // Before updating the state, cleanup any nested screen and state
86
- // This will avoid the navigator trying to handle them again
87
- if (
88
- nextRoute.params &&
89
- (('state' in nextRoute.params &&
90
- typeof nextRoute.params.state === 'object' &&
91
- nextRoute.params.state !== null) ||
92
- ('screen' in nextRoute.params &&
93
- typeof nextRoute.params.screen === 'string'))
94
- ) {
95
- // @ts-expect-error: we don't have correct type for params
96
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
97
- const { state, screen, params, initial, ...rest } = nextRoute.params;
98
-
99
- if (Object.keys(rest).length) {
100
- return { ...nextRoute, params: rest };
101
- } else {
102
- const {
103
- // We destructure the params to omit them
104
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
105
- params,
106
- ...restRoute
107
- } = nextRoute;
108
-
109
- return restRoute;
110
- }
111
- }
112
-
113
- return nextRoute;
86
+ return r;
114
87
  });
115
88
 
116
- // Make sure not to update state if routes haven't changed
117
- // Otherwise this will result in params cleanup as well
118
- // We only want to cleanup params when state changes - after they are used
119
89
  if (!isArrayEqual(state.routes, routes)) {
120
90
  setState({
121
91
  ...state,
@@ -61,6 +61,8 @@ type NavigatorRoute = {
61
61
  params?: NavigatorScreenParams<ParamListBase>;
62
62
  };
63
63
 
64
+ const CONSUMED_PARAMS = Symbol('CONSUMED_PARAMS');
65
+
64
66
  const isScreen = (
65
67
  child: React.ReactElement<unknown>
66
68
  ): child is React.ReactElement<{
@@ -325,6 +327,31 @@ export function useNavigationBuilder<
325
327
  | NavigatorRoute
326
328
  | undefined;
327
329
 
330
+ React.useEffect(() => {
331
+ const hasNestedParams =
332
+ typeof route?.params?.state === 'object' ||
333
+ typeof route?.params?.screen === 'string';
334
+
335
+ // Track whether the params have been already consumed
336
+ // Set it to the same object so merged params will be handled again
337
+ if (
338
+ typeof route?.params === 'object' &&
339
+ route.params != null &&
340
+ hasNestedParams
341
+ ) {
342
+ Object.defineProperty(route.params, CONSUMED_PARAMS, {
343
+ value: route.params,
344
+ enumerable: false,
345
+ });
346
+ }
347
+ }, [route?.params]);
348
+
349
+ const isNestedParamsConsumed =
350
+ typeof route?.params === 'object' && route.params != null
351
+ ? CONSUMED_PARAMS in route.params &&
352
+ route.params[CONSUMED_PARAMS] === route.params
353
+ : false;
354
+
328
355
  const {
329
356
  children,
330
357
  layout,
@@ -419,7 +446,9 @@ export function useNavigationBuilder<
419
446
  );
420
447
 
421
448
  const isStateInitialized = React.useCallback(
422
- (state: NavigationState | PartialState<NavigationState> | undefined) =>
449
+ <T extends NavigationState>(
450
+ state: T | PartialState<T> | undefined
451
+ ): state is T =>
423
452
  state !== undefined && state.stale === false && isStateValid(state),
424
453
  [isStateValid]
425
454
  );
@@ -439,14 +468,20 @@ export function useNavigationBuilder<
439
468
  getIsInitial,
440
469
  } = React.useContext(NavigationStateContext);
441
470
 
442
- const stateCleanedUp = React.useRef(false);
471
+ const stateCleanupRef = React.useRef<boolean>(false);
472
+ const lastStateRef = React.useRef<State | PartialState<State> | undefined>(
473
+ undefined
474
+ );
443
475
 
444
476
  const setState = useLatestCallback(
445
- (state: NavigationState | PartialState<NavigationState> | undefined) => {
446
- if (stateCleanedUp.current) {
477
+ (state: State | PartialState<State> | undefined) => {
478
+ if (stateCleanupRef.current) {
479
+ // Store the state locally in case the current navigator is in `Activity`
480
+ lastStateRef.current = state;
481
+
447
482
  // State might have been already cleaned up due to unmount
448
- // We do not want to expose API allowing to override this
449
- // This would lead to old data preservation on main navigator unmount
483
+ // We don't want to update `route.state` in parent
484
+ // Otherwise it will be reused if a new navigator gets mounted
450
485
  return;
451
486
  }
452
487
 
@@ -458,11 +493,32 @@ export function useNavigationBuilder<
458
493
  stateBeforeInitialization,
459
494
  initializedState,
460
495
  isFirstStateInitialization,
496
+ paramsUsedForInitialization,
461
497
  ] = React.useMemo((): [
462
498
  PartialState<State> | undefined,
463
499
  State | undefined,
464
500
  boolean,
501
+ object | undefined,
465
502
  ] => {
503
+ // If the state was already cleaned up, but we have it stored in ref,
504
+ // It likely got cleaned up due to `<Activity mode="hidden">`
505
+ // We should reuse this state to avoid remounting screens
506
+ if (
507
+ stateCleanupRef.current &&
508
+ lastStateRef.current &&
509
+ isStateValid(lastStateRef.current)
510
+ ) {
511
+ const state: State = isStateInitialized(lastStateRef.current)
512
+ ? lastStateRef.current
513
+ : router.getRehydratedState(lastStateRef.current, {
514
+ routeNames,
515
+ routeParamList,
516
+ routeGetIdList,
517
+ });
518
+
519
+ return [undefined, state, false, undefined];
520
+ }
521
+
466
522
  const initialRouteParamList = routeNames.reduce<
467
523
  Record<string, object | undefined>
468
524
  >((acc, curr) => {
@@ -495,7 +551,8 @@ export function useNavigationBuilder<
495
551
  !(
496
552
  typeof route?.params?.screen === 'string' &&
497
553
  route?.params?.initial !== false
498
- )
554
+ ) &&
555
+ !isNestedParamsConsumed
499
556
  ) {
500
557
  return [
501
558
  undefined,
@@ -505,11 +562,17 @@ export function useNavigationBuilder<
505
562
  routeGetIdList,
506
563
  }),
507
564
  true,
565
+ undefined,
508
566
  ];
509
567
  } else {
510
- const stateFromParams = getStateFromParams(route?.params);
568
+ const paramsForState = isNestedParamsConsumed ? undefined : route?.params;
569
+ const stateFromParams = paramsForState
570
+ ? getStateFromParams(paramsForState)
571
+ : undefined;
572
+
511
573
  const stateBeforeInitialization = (stateFromParams ??
512
574
  currentState) as PartialState<State>;
575
+
513
576
  const hydratedState = router.getRehydratedState(
514
577
  stateBeforeInitialization,
515
578
  {
@@ -523,10 +586,10 @@ export function useNavigationBuilder<
523
586
  options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' &&
524
587
  doesStateHaveOnlyInvalidRoutes(stateBeforeInitialization)
525
588
  ) {
526
- return [stateBeforeInitialization, hydratedState, true];
589
+ return [stateBeforeInitialization, hydratedState, true, paramsForState];
527
590
  }
528
591
 
529
- return [undefined, hydratedState, false];
592
+ return [undefined, hydratedState, false, paramsForState];
530
593
  }
531
594
  // We explicitly don't include routeNames, route.params etc. in the dep list
532
595
  // below. We want to avoid forcing a new state to be calculated in those cases
@@ -604,21 +667,13 @@ export function useNavigationBuilder<
604
667
  });
605
668
  }
606
669
 
607
- const previousNestedParamsRef = React.useRef(route?.params);
608
-
609
- React.useEffect(() => {
610
- previousNestedParamsRef.current = route?.params;
611
- }, [route?.params]);
612
-
613
- if (route?.params) {
614
- const previousParams = previousNestedParamsRef.current;
615
-
670
+ if (route?.params && route.params !== paramsUsedForInitialization) {
616
671
  let action: CommonActions.Action | undefined;
617
672
 
618
673
  if (
619
674
  typeof route.params.state === 'object' &&
620
675
  route.params.state != null &&
621
- route.params !== previousParams
676
+ !isNestedParamsConsumed
622
677
  ) {
623
678
  if (
624
679
  options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' &&
@@ -634,7 +689,7 @@ export function useNavigationBuilder<
634
689
  } else if (
635
690
  typeof route.params.screen === 'string' &&
636
691
  ((route.params.initial === false && isFirstStateInitialization) ||
637
- route.params !== previousParams)
692
+ !isNestedParamsConsumed)
638
693
  ) {
639
694
  if (
640
695
  options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' &&
@@ -676,14 +731,11 @@ export function useNavigationBuilder<
676
731
  : nextState;
677
732
  }
678
733
 
679
- const shouldUpdate =
680
- state !== nextState ||
681
- typeof route?.params?.state === 'object' ||
682
- typeof route?.params?.screen === 'string';
734
+ const shouldUpdate = state !== nextState;
683
735
 
684
736
  useScheduleUpdate(() => {
685
737
  if (shouldUpdate) {
686
- // If the state needs to be updated, we'll schedule an update
738
+ // Schedule an update if the state needs to be updated
687
739
  setState(nextState);
688
740
 
689
741
  if (shouldClearUnhandledState) {
@@ -697,25 +749,35 @@ export function useNavigationBuilder<
697
749
  // So we override the state object we return to use the latest state as soon as possible
698
750
  state = nextState;
699
751
 
752
+ // Last state to reuse if component gets cleaned up due to `<Activity mode="hidden">`
753
+ React.useEffect(() => {
754
+ lastStateRef.current = state;
755
+ });
756
+
757
+ const lastNotifiedStateRef = React.useRef<State | null>(null);
758
+
700
759
  React.useEffect(() => {
701
760
  // In strict mode, React will double-invoke effects.
702
761
  // So we need to reset the flag if component was not unmounted
703
- stateCleanedUp.current = false;
762
+ stateCleanupRef.current = false;
704
763
 
705
764
  setKey(navigatorKey);
706
765
 
707
- if (!getIsInitial()) {
766
+ if (!getIsInitial() && lastNotifiedStateRef.current !== state) {
708
767
  // If it's not initial render, we need to update the state
709
768
  // This will make sure that our container gets notifier of state changes due to new mounts
710
769
  // This is necessary for proper screen tracking, URL updates etc.
711
- setState(nextState);
770
+ // We only notify if the state is different what we already notified
771
+ // Otherwise this goes into a loop when inside `<Activity mode="hidden">`
772
+ setState(state);
773
+ lastNotifiedStateRef.current = state;
712
774
  }
713
775
 
714
776
  return () => {
715
777
  // We need to clean up state for this navigator on unmount
716
778
  if (getCurrentState() !== undefined && getKey() === navigatorKey) {
717
779
  setCurrentState(undefined);
718
- stateCleanedUp.current = true;
780
+ stateCleanupRef.current = true;
719
781
  }
720
782
  };
721
783
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -17,11 +17,11 @@ import type { EventMapCore } from './types';
17
17
  import type { NavigationEventEmitter } from './useEventEmitter';
18
18
  import { shouldPreventRemove, useOnPreventRemove } from './useOnPreventRemove';
19
19
 
20
- type Options = {
21
- router: Router<NavigationState, NavigationAction>;
20
+ type Options<State extends NavigationState> = {
21
+ router: Router<State, NavigationAction>;
22
22
  key?: string;
23
- getState: () => NavigationState;
24
- setState: (state: NavigationState | PartialState<NavigationState>) => void;
23
+ getState: () => State;
24
+ setState: (state: State | PartialState<State>) => void;
25
25
  actionListeners: ChildActionListener[];
26
26
  beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>;
27
27
  routerConfigOptions: RouterConfigOptions;
@@ -37,7 +37,7 @@ type Options = {
37
37
  *
38
38
  * When the action handler handles as action, it returns `true`, otherwise `false`.
39
39
  */
40
- export function useOnAction({
40
+ export function useOnAction<State extends NavigationState>({
41
41
  router,
42
42
  getState,
43
43
  setState,
@@ -46,7 +46,7 @@ export function useOnAction({
46
46
  beforeRemoveListeners,
47
47
  routerConfigOptions,
48
48
  emitter,
49
- }: Options) {
49
+ }: Options<State>) {
50
50
  const {
51
51
  onAction: onActionParent,
52
52
  onRouteFocus: onRouteFocusParent,
@@ -7,10 +7,10 @@ import * as React from 'react';
7
7
 
8
8
  import { NavigationBuilderContext } from './NavigationBuilderContext';
9
9
 
10
- type Options<Action extends NavigationAction> = {
11
- router: Router<NavigationState, Action>;
12
- getState: () => NavigationState;
13
- setState: (state: NavigationState) => void;
10
+ type Options<State extends NavigationState, Action extends NavigationAction> = {
11
+ router: Router<State, Action>;
12
+ getState: () => State;
13
+ setState: (state: State) => void;
14
14
  key?: string;
15
15
  };
16
16
 
@@ -19,12 +19,10 @@ type Options<Action extends NavigationAction> = {
19
19
  * Focus action needs to be treated specially, coz when a nested route is focused,
20
20
  * the parent navigators also needs to be focused.
21
21
  */
22
- export function useOnRouteFocus<Action extends NavigationAction>({
23
- router,
24
- getState,
25
- key: sourceRouteKey,
26
- setState,
27
- }: Options<Action>) {
22
+ export function useOnRouteFocus<
23
+ State extends NavigationState,
24
+ Action extends NavigationAction,
25
+ >({ router, getState, key: sourceRouteKey, setState }: Options<State, Action>) {
28
26
  const { onRouteFocus: onRouteFocusParent } = React.useContext(
29
27
  NavigationBuilderContext
30
28
  );