@react-navigation/core 7.21.10 → 7.21.12

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.
@@ -128,7 +128,7 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
128
128
  }
129
129
  });
130
130
  const resetRoot = useLatestCallback(state => {
131
- const target = state?.key ?? keyedListeners.getState.root?.().key;
131
+ const target = keyedListeners.getState.root?.().key;
132
132
  if (target == null) {
133
133
  console.error(NOT_INITIALIZED_ERROR);
134
134
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","React","useLatestCallback","checkDuplicateRouteNames","checkSerializable","ConsumedParamsContext","NOT_INITIALIZED_ERROR","DeprecatedNavigationInChildContext","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","forwardRef","initialState","onStateChange","onReady","onUnhandledAction","navigationInChildEnabled","theme","children","ref","parent","useContext","independent","isDefault","Error","getState","setState","scheduleUpdate","flushUpdates","consumedParams","WeakMap","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","focus","console","error","navigation","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":[]}
1
+ {"version":3,"names":["CommonActions","React","useLatestCallback","checkDuplicateRouteNames","checkSerializable","ConsumedParamsContext","NOT_INITIALIZED_ERROR","DeprecatedNavigationInChildContext","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","forwardRef","initialState","onStateChange","onReady","onUnhandledAction","navigationInChildEnabled","theme","children","ref","parent","useContext","independent","isDefault","Error","getState","setState","scheduleUpdate","flushUpdates","consumedParams","WeakMap","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","focus","console","error","navigation","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":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","getIsStateEmitted","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AA6C9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAiBxD;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":[]}
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,CAiBxD;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":[]}
@@ -5,37 +5,48 @@ import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
5
5
  import { NavigationRouteContext } from "./NavigationProvider.js";
6
6
  const VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');
7
7
  export const shouldPreventRemove = (emitter, beforeRemoveListeners, currentRoutes, nextRoutes, action) => {
8
- const nextRouteKeys = nextRoutes.map(route => route.key);
9
-
10
- // Call these in reverse order so last screens handle the event first
11
- const removedRoutes = currentRoutes.filter(route => !nextRouteKeys.includes(route.key)).reverse();
8
+ const nextRoutesByKey = new Map(nextRoutes.map(route => [route.key, route]).filter(([, route]) => route.key != null));
12
9
  const visitedRouteKeys = VISITED_ROUTE_KEYS in action && action[VISITED_ROUTE_KEYS] instanceof Set ? action[VISITED_ROUTE_KEYS] : new Set();
13
10
  const beforeRemoveAction = {
14
11
  ...action,
15
12
  [VISITED_ROUTE_KEYS]: visitedRouteKeys
16
13
  };
17
- for (const route of removedRoutes) {
14
+
15
+ // Call these in reverse order so last screens handle the event first
16
+ const reversedCurrentRoutes = [...currentRoutes].reverse();
17
+ for (const route of reversedCurrentRoutes) {
18
18
  if (visitedRouteKeys.has(route.key)) {
19
19
  // Skip if we've already emitted this action for this screen
20
20
  continue;
21
21
  }
22
-
23
- // First, we need to check if any child screens want to prevent it
24
- const isPrevented = beforeRemoveListeners[route.key]?.(beforeRemoveAction);
25
- if (isPrevented) {
26
- return true;
27
- }
28
- visitedRouteKeys.add(route.key);
29
- const event = emitter.emit({
30
- type: 'beforeRemove',
31
- target: route.key,
32
- data: {
33
- action: beforeRemoveAction
34
- },
35
- canPreventDefault: true
36
- });
37
- if (event.defaultPrevented) {
38
- return true;
22
+ if (!nextRoutesByKey.has(route.key)) {
23
+ // The route is not in next state, so it's being removed
24
+ // First, we need to check if any child screens want to prevent it
25
+ const isPrevented = beforeRemoveListeners[route.key]?.(beforeRemoveAction, undefined);
26
+ if (isPrevented) {
27
+ return true;
28
+ }
29
+ visitedRouteKeys.add(route.key);
30
+ const event = emitter.emit({
31
+ type: 'beforeRemove',
32
+ target: route.key,
33
+ data: {
34
+ action: beforeRemoveAction
35
+ },
36
+ canPreventDefault: true
37
+ });
38
+ if (event.defaultPrevented) {
39
+ return true;
40
+ }
41
+ } else {
42
+ // The route is kept but its nested state changed, so propagate the check into the nested navigator
43
+ const nextRoute = nextRoutesByKey.get(route.key);
44
+ if (route.state != null && route.state !== nextRoute?.state) {
45
+ const isPrevented = beforeRemoveListeners[route.key]?.(beforeRemoveAction, nextRoute?.state);
46
+ if (isPrevented) {
47
+ return true;
48
+ }
49
+ }
39
50
  }
40
51
  }
41
52
  return false;
@@ -52,9 +63,9 @@ export function useOnPreventRemove({
52
63
  const routeKey = route?.key;
53
64
  React.useEffect(() => {
54
65
  if (routeKey) {
55
- return addKeyedListener?.('beforeRemove', routeKey, action => {
66
+ return addKeyedListener?.('beforeRemove', routeKey, (action, nextState) => {
56
67
  const state = getState();
57
- return shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, [], action);
68
+ return shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, nextState?.routes ?? [], action);
58
69
  });
59
70
  }
60
71
  }, [addKeyedListener, beforeRemoveListeners, emitter, getState, routeKey]);
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationBuilderContext","NavigationRouteContext","VISITED_ROUTE_KEYS","Symbol","shouldPreventRemove","emitter","beforeRemoveListeners","currentRoutes","nextRoutes","action","nextRouteKeys","map","route","key","removedRoutes","filter","includes","reverse","visitedRouteKeys","Set","beforeRemoveAction","has","isPrevented","add","event","emit","type","target","data","canPreventDefault","defaultPrevented","useOnPreventRemove","getState","addKeyedListener","useContext","routeKey","useEffect","state","routes"],"sourceRoot":"../../src","sources":["useOnPreventRemove.tsx"],"mappings":";;AAIA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAEEC,wBAAwB,QACnB,+BAA4B;AACnC,SAASC,sBAAsB,QAAQ,yBAAsB;AAU7D,MAAMC,kBAAkB,GAAGC,MAAM,CAAC,oBAAoB,CAAC;AAEvD,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,OAAkD,EAClDC,qBAA4E,EAC5EC,aAAgC,EAChCC,UAA0C,EAC1CC,MAAwB,KACrB;EACH,MAAMC,aAAa,GAAGF,UAAU,CAACG,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,GAAG,CAAC;;EAE1D;EACA,MAAMC,aAAa,GAAGP,aAAa,CAChCQ,MAAM,CAAEH,KAAK,IAAK,CAACF,aAAa,CAACM,QAAQ,CAACJ,KAAK,CAACC,GAAG,CAAC,CAAC,CACrDI,OAAO,CAAC,CAAC;EAEZ,MAAMC,gBAAgB,GACpBhB,kBAAkB,IAAIO,MAAM,IAAIA,MAAM,CAACP,kBAAkB,CAAC,YAAYiB,GAAG,GACrEV,MAAM,CAACP,kBAAkB,CAAC,GAC1B,IAAIiB,GAAG,CAAS,CAAC;EAEvB,MAAMC,kBAAkB,GAAG;IACzB,GAAGX,MAAM;IACT,CAACP,kBAAkB,GAAGgB;EACxB,CAAC;EAED,KAAK,MAAMN,KAAK,IAAIE,aAAa,EAAE;IACjC,IAAII,gBAAgB,CAACG,GAAG,CAACT,KAAK,CAACC,GAAG,CAAC,EAAE;MACnC;MACA;IACF;;IAEA;IACA,MAAMS,WAAW,GAAGhB,qBAAqB,CAACM,KAAK,CAACC,GAAG,CAAC,GAAGO,kBAAkB,CAAC;IAE1E,IAAIE,WAAW,EAAE;MACf,OAAO,IAAI;IACb;IAEAJ,gBAAgB,CAACK,GAAG,CAACX,KAAK,CAACC,GAAG,CAAC;IAE/B,MAAMW,KAAK,GAAGnB,OAAO,CAACoB,IAAI,CAAC;MACzBC,IAAI,EAAE,cAAc;MACpBC,MAAM,EAAEf,KAAK,CAACC,GAAG;MACjBe,IAAI,EAAE;QAAEnB,MAAM,EAAEW;MAAmB,CAAC;MACpCS,iBAAiB,EAAE;IACrB,CAAC,CAAC;IAEF,IAAIL,KAAK,CAACM,gBAAgB,EAAE;MAC1B,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,QAAQ;EACR3B,OAAO;EACPC;AACO,CAAC,EAAE;EACV,MAAM;IAAE2B;EAAiB,CAAC,GAAGlC,KAAK,CAACmC,UAAU,CAAClC,wBAAwB,CAAC;EACvE,MAAMY,KAAK,GAAGb,KAAK,CAACmC,UAAU,CAACjC,sBAAsB,CAAC;EACtD,MAAMkC,QAAQ,GAAGvB,KAAK,EAAEC,GAAG;EAE3Bd,KAAK,CAACqC,SAAS,CAAC,MAAM;IACpB,IAAID,QAAQ,EAAE;MACZ,OAAOF,gBAAgB,GAAG,cAAc,EAAEE,QAAQ,EAAG1B,MAAM,IAAK;QAC9D,MAAM4B,KAAK,GAAGL,QAAQ,CAAC,CAAC;QAExB,OAAO5B,mBAAmB,CACxBC,OAAO,EACPC,qBAAqB,EACrB+B,KAAK,CAACC,MAAM,EACZ,EAAE,EACF7B,MACF,CAAC;MACH,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACwB,gBAAgB,EAAE3B,qBAAqB,EAAED,OAAO,EAAE2B,QAAQ,EAAEG,QAAQ,CAAC,CAAC;AAC5E","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationBuilderContext","NavigationRouteContext","VISITED_ROUTE_KEYS","Symbol","shouldPreventRemove","emitter","beforeRemoveListeners","currentRoutes","nextRoutes","action","nextRoutesByKey","Map","map","route","key","filter","visitedRouteKeys","Set","beforeRemoveAction","reversedCurrentRoutes","reverse","has","isPrevented","undefined","add","event","emit","type","target","data","canPreventDefault","defaultPrevented","nextRoute","get","state","useOnPreventRemove","getState","addKeyedListener","useContext","routeKey","useEffect","nextState","routes"],"sourceRoot":"../../src","sources":["useOnPreventRemove.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { NavigationAction, NavigationState, ParamListBase } from '@react-navigation/routers';
1
+ import type { NavigationAction, NavigationState, ParamListBase, PartialState } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
3
  import type { NavigationContainerEventMap, NavigationHelpers } from './types.js';
4
4
  export type ListenerMap = {
@@ -18,7 +18,7 @@ export type FocusedNavigationListener = <T>(callback: FocusedNavigationCallback<
18
18
  result: T;
19
19
  };
20
20
  export type GetStateListener = () => NavigationState;
21
- export type ChildBeforeRemoveListener = (action: NavigationAction) => boolean;
21
+ export type ChildBeforeRemoveListener = (action: NavigationAction, nextState: NavigationState | PartialState<NavigationState> | undefined) => boolean;
22
22
  /**
23
23
  * Context which holds the required helpers needed to build nested navigators.
24
24
  */
@@ -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,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAE9E,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,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,wBAAwB;eACxB,CACT,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC5B,OAAO;kBACE,WAAW;uBACN,gBAAgB;mBACpB,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;sBAClB,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI;iBACtD,CACX,KAAK,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAC3D,IAAI;qBACQ,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;EAY9C,CAAC"}
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,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAE9E,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;eACxB,CACT,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC5B,OAAO;kBACE,WAAW;uBACN,gBAAgB;mBACpB,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;sBAClB,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI;iBACtD,CACX,KAAK,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAC3D,IAAI;qBACQ,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;EAY9C,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { NavigationAction, NavigationState } from '@react-navigation/routers';
1
+ import type { NavigationAction, NavigationRoute, NavigationState, ParamListBase, PartialRoute } from '@react-navigation/routers';
2
2
  import { type ChildBeforeRemoveListener } from './NavigationBuilderContext.js';
3
3
  import type { EventMapCore } from './types.js';
4
4
  import type { NavigationEventEmitter } from './useEventEmitter.js';
@@ -7,11 +7,7 @@ type Options = {
7
7
  emitter: NavigationEventEmitter<EventMapCore<any>>;
8
8
  beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>;
9
9
  };
10
- export declare const shouldPreventRemove: (emitter: NavigationEventEmitter<EventMapCore<any>>, beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>, currentRoutes: {
11
- key: string;
12
- }[], nextRoutes: {
13
- key?: string | undefined;
14
- }[], action: NavigationAction) => boolean;
10
+ export declare const shouldPreventRemove: (emitter: NavigationEventEmitter<EventMapCore<any>>, beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>, currentRoutes: NavigationRoute<ParamListBase, string>[], nextRoutes: (NavigationRoute<ParamListBase, string> | PartialRoute<NavigationRoute<ParamListBase, string>>)[], action: NavigationAction) => boolean;
15
11
  export declare function useOnPreventRemove({ getState, emitter, beforeRemoveListeners, }: Options): void;
16
12
  export {};
17
13
  //# sourceMappingURL=useOnPreventRemove.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnPreventRemove.d.ts","sourceRoot":"","sources":["../../../src/useOnPreventRemove.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,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;AAEhE,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,CAAC;CAC9E,CAAC;AAIF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAClD,uBAAuB,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,EAC5E,eAAe;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EAChC,YAAY;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,EAC1C,QAAQ,gBAAgB,YA+CzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,OAAO,EACP,qBAAqB,GACtB,EAAE,OAAO,QAoBT"}
1
+ {"version":3,"file":"useOnPreventRemove.d.ts","sourceRoot":"","sources":["../../../src/useOnPreventRemove.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,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;AAEhE,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,CAAC;CAC9E,CAAC;AAIF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAClD,uBAAuB,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,EAC5E,eAAe,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,EACvD,YAAY,CACR,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,GACtC,YAAY,CAAC,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CACvD,EAAE,EACH,QAAQ,gBAAgB,YAqEzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,OAAO,EACP,qBAAqB,GACtB,EAAE,OAAO,QAwBT"}
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.21.10",
4
+ "version": "7.21.12",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -83,5 +83,5 @@
83
83
  ]
84
84
  ]
85
85
  },
86
- "gitHead": "0f454ada54f10d54da277e8a0492f2890bbec466"
86
+ "gitHead": "749aaf57b5189363194d63a6b09fe29bacc6740f"
87
87
  }
@@ -158,7 +158,7 @@ export const BaseNavigationContainer = React.forwardRef(
158
158
 
159
159
  const resetRoot = useLatestCallback(
160
160
  (state?: PartialState<NavigationState> | NavigationState) => {
161
- const target = state?.key ?? keyedListeners.getState.root?.().key;
161
+ const target = keyedListeners.getState.root?.().key;
162
162
 
163
163
  if (target == null) {
164
164
  console.error(NOT_INITIALIZED_ERROR);
@@ -2,6 +2,7 @@ import type {
2
2
  NavigationAction,
3
3
  NavigationState,
4
4
  ParamListBase,
5
+ PartialState,
5
6
  } from '@react-navigation/routers';
6
7
  import * as React from 'react';
7
8
 
@@ -46,7 +47,10 @@ export type FocusedNavigationListener = <T>(
46
47
 
47
48
  export type GetStateListener = () => NavigationState;
48
49
 
49
- export type ChildBeforeRemoveListener = (action: NavigationAction) => boolean;
50
+ export type ChildBeforeRemoveListener = (
51
+ action: NavigationAction,
52
+ nextState: NavigationState | PartialState<NavigationState> | undefined
53
+ ) => boolean;
50
54
 
51
55
  /**
52
56
  * Context which holds the required helpers needed to build nested navigators.
@@ -1,6 +1,9 @@
1
1
  import type {
2
2
  NavigationAction,
3
+ NavigationRoute,
3
4
  NavigationState,
5
+ ParamListBase,
6
+ PartialRoute,
4
7
  } from '@react-navigation/routers';
5
8
  import * as React from 'react';
6
9
 
@@ -23,16 +26,18 @@ const VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');
23
26
  export const shouldPreventRemove = (
24
27
  emitter: NavigationEventEmitter<EventMapCore<any>>,
25
28
  beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>,
26
- currentRoutes: { key: string }[],
27
- nextRoutes: { key?: string | undefined }[],
29
+ currentRoutes: NavigationRoute<ParamListBase, string>[],
30
+ nextRoutes: (
31
+ | NavigationRoute<ParamListBase, string>
32
+ | PartialRoute<NavigationRoute<ParamListBase, string>>
33
+ )[],
28
34
  action: NavigationAction
29
35
  ) => {
30
- const nextRouteKeys = nextRoutes.map((route) => route.key);
31
-
32
- // Call these in reverse order so last screens handle the event first
33
- const removedRoutes = currentRoutes
34
- .filter((route) => !nextRouteKeys.includes(route.key))
35
- .reverse();
36
+ const nextRoutesByKey = new Map(
37
+ nextRoutes
38
+ .map((route) => [route.key, route] as const)
39
+ .filter(([, route]) => route.key != null)
40
+ );
36
41
 
37
42
  const visitedRouteKeys =
38
43
  VISITED_ROUTE_KEYS in action && action[VISITED_ROUTE_KEYS] instanceof Set
@@ -44,30 +49,53 @@ export const shouldPreventRemove = (
44
49
  [VISITED_ROUTE_KEYS]: visitedRouteKeys,
45
50
  };
46
51
 
47
- for (const route of removedRoutes) {
52
+ // Call these in reverse order so last screens handle the event first
53
+ const reversedCurrentRoutes = [...currentRoutes].reverse();
54
+
55
+ for (const route of reversedCurrentRoutes) {
48
56
  if (visitedRouteKeys.has(route.key)) {
49
57
  // Skip if we've already emitted this action for this screen
50
58
  continue;
51
59
  }
52
60
 
53
- // First, we need to check if any child screens want to prevent it
54
- const isPrevented = beforeRemoveListeners[route.key]?.(beforeRemoveAction);
55
-
56
- if (isPrevented) {
57
- return true;
58
- }
59
-
60
- visitedRouteKeys.add(route.key);
61
+ if (!nextRoutesByKey.has(route.key)) {
62
+ // The route is not in next state, so it's being removed
63
+ // First, we need to check if any child screens want to prevent it
64
+ const isPrevented = beforeRemoveListeners[route.key]?.(
65
+ beforeRemoveAction,
66
+ undefined
67
+ );
68
+
69
+ if (isPrevented) {
70
+ return true;
71
+ }
72
+
73
+ visitedRouteKeys.add(route.key);
74
+
75
+ const event = emitter.emit({
76
+ type: 'beforeRemove',
77
+ target: route.key,
78
+ data: { action: beforeRemoveAction },
79
+ canPreventDefault: true,
80
+ });
61
81
 
62
- const event = emitter.emit({
63
- type: 'beforeRemove',
64
- target: route.key,
65
- data: { action: beforeRemoveAction },
66
- canPreventDefault: true,
67
- });
82
+ if (event.defaultPrevented) {
83
+ return true;
84
+ }
85
+ } else {
86
+ // The route is kept but its nested state changed, so propagate the check into the nested navigator
87
+ const nextRoute = nextRoutesByKey.get(route.key);
88
+
89
+ if (route.state != null && route.state !== nextRoute?.state) {
90
+ const isPrevented = beforeRemoveListeners[route.key]?.(
91
+ beforeRemoveAction,
92
+ nextRoute?.state
93
+ );
68
94
 
69
- if (event.defaultPrevented) {
70
- return true;
95
+ if (isPrevented) {
96
+ return true;
97
+ }
98
+ }
71
99
  }
72
100
  }
73
101
 
@@ -85,17 +113,21 @@ export function useOnPreventRemove({
85
113
 
86
114
  React.useEffect(() => {
87
115
  if (routeKey) {
88
- return addKeyedListener?.('beforeRemove', routeKey, (action) => {
89
- const state = getState();
90
-
91
- return shouldPreventRemove(
92
- emitter,
93
- beforeRemoveListeners,
94
- state.routes,
95
- [],
96
- action
97
- );
98
- });
116
+ return addKeyedListener?.(
117
+ 'beforeRemove',
118
+ routeKey,
119
+ (action, nextState) => {
120
+ const state = getState();
121
+
122
+ return shouldPreventRemove(
123
+ emitter,
124
+ beforeRemoveListeners,
125
+ state.routes,
126
+ nextState?.routes ?? [],
127
+ action
128
+ );
129
+ }
130
+ );
99
131
  }
100
132
  }, [addKeyedListener, beforeRemoveListeners, emitter, getState, routeKey]);
101
133
  }