@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.
- package/lib/module/BaseNavigationContainer.js +1 -1
- package/lib/module/BaseNavigationContainer.js.map +1 -1
- package/lib/module/NavigationBuilderContext.js.map +1 -1
- package/lib/module/useOnPreventRemove.js +35 -24
- package/lib/module/useOnPreventRemove.js.map +1 -1
- package/lib/typescript/src/NavigationBuilderContext.d.ts +2 -2
- package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
- package/lib/typescript/src/useOnPreventRemove.d.ts +2 -6
- package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/BaseNavigationContainer.tsx +1 -1
- package/src/NavigationBuilderContext.tsx +5 -1
- package/src/useOnPreventRemove.tsx +68 -36
|
@@ -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 =
|
|
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":";;
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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","
|
|
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":";;AAOA,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,aAAuD,EACvDC,UAGG,EACHC,MAAwB,KACrB;EACH,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAC7BH,UAAU,CACPI,GAAG,CAAEC,KAAK,IAAK,CAACA,KAAK,CAACC,GAAG,EAAED,KAAK,CAAU,CAAC,CAC3CE,MAAM,CAAC,CAAC,GAAGF,KAAK,CAAC,KAAKA,KAAK,CAACC,GAAG,IAAI,IAAI,CAC5C,CAAC;EAED,MAAME,gBAAgB,GACpBd,kBAAkB,IAAIO,MAAM,IAAIA,MAAM,CAACP,kBAAkB,CAAC,YAAYe,GAAG,GACrER,MAAM,CAACP,kBAAkB,CAAC,GAC1B,IAAIe,GAAG,CAAS,CAAC;EAEvB,MAAMC,kBAAkB,GAAG;IACzB,GAAGT,MAAM;IACT,CAACP,kBAAkB,GAAGc;EACxB,CAAC;;EAED;EACA,MAAMG,qBAAqB,GAAG,CAAC,GAAGZ,aAAa,CAAC,CAACa,OAAO,CAAC,CAAC;EAE1D,KAAK,MAAMP,KAAK,IAAIM,qBAAqB,EAAE;IACzC,IAAIH,gBAAgB,CAACK,GAAG,CAACR,KAAK,CAACC,GAAG,CAAC,EAAE;MACnC;MACA;IACF;IAEA,IAAI,CAACJ,eAAe,CAACW,GAAG,CAACR,KAAK,CAACC,GAAG,CAAC,EAAE;MACnC;MACA;MACA,MAAMQ,WAAW,GAAGhB,qBAAqB,CAACO,KAAK,CAACC,GAAG,CAAC,GAClDI,kBAAkB,EAClBK,SACF,CAAC;MAED,IAAID,WAAW,EAAE;QACf,OAAO,IAAI;MACb;MAEAN,gBAAgB,CAACQ,GAAG,CAACX,KAAK,CAACC,GAAG,CAAC;MAE/B,MAAMW,KAAK,GAAGpB,OAAO,CAACqB,IAAI,CAAC;QACzBC,IAAI,EAAE,cAAc;QACpBC,MAAM,EAAEf,KAAK,CAACC,GAAG;QACjBe,IAAI,EAAE;UAAEpB,MAAM,EAAES;QAAmB,CAAC;QACpCY,iBAAiB,EAAE;MACrB,CAAC,CAAC;MAEF,IAAIL,KAAK,CAACM,gBAAgB,EAAE;QAC1B,OAAO,IAAI;MACb;IACF,CAAC,MAAM;MACL;MACA,MAAMC,SAAS,GAAGtB,eAAe,CAACuB,GAAG,CAACpB,KAAK,CAACC,GAAG,CAAC;MAEhD,IAAID,KAAK,CAACqB,KAAK,IAAI,IAAI,IAAIrB,KAAK,CAACqB,KAAK,KAAKF,SAAS,EAAEE,KAAK,EAAE;QAC3D,MAAMZ,WAAW,GAAGhB,qBAAqB,CAACO,KAAK,CAACC,GAAG,CAAC,GAClDI,kBAAkB,EAClBc,SAAS,EAAEE,KACb,CAAC;QAED,IAAIZ,WAAW,EAAE;UACf,OAAO,IAAI;QACb;MACF;IACF;EACF;EAEA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,SAASa,kBAAkBA,CAAC;EACjCC,QAAQ;EACR/B,OAAO;EACPC;AACO,CAAC,EAAE;EACV,MAAM;IAAE+B;EAAiB,CAAC,GAAGtC,KAAK,CAACuC,UAAU,CAACtC,wBAAwB,CAAC;EACvE,MAAMa,KAAK,GAAGd,KAAK,CAACuC,UAAU,CAACrC,sBAAsB,CAAC;EACtD,MAAMsC,QAAQ,GAAG1B,KAAK,EAAEC,GAAG;EAE3Bf,KAAK,CAACyC,SAAS,CAAC,MAAM;IACpB,IAAID,QAAQ,EAAE;MACZ,OAAOF,gBAAgB,GACrB,cAAc,EACdE,QAAQ,EACR,CAAC9B,MAAM,EAAEgC,SAAS,KAAK;QACrB,MAAMP,KAAK,GAAGE,QAAQ,CAAC,CAAC;QAExB,OAAOhC,mBAAmB,CACxBC,OAAO,EACPC,qBAAqB,EACrB4B,KAAK,CAACQ,MAAM,EACZD,SAAS,EAAEC,MAAM,IAAI,EAAE,EACvBjC,MACF,CAAC;MACH,CACF,CAAC;IACH;EACF,CAAC,EAAE,CAAC4B,gBAAgB,EAAE/B,qBAAqB,EAAED,OAAO,EAAE+B,QAAQ,EAAEG,QAAQ,CAAC,CAAC;AAC5E","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,
|
|
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,
|
|
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.
|
|
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": "
|
|
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 =
|
|
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 = (
|
|
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:
|
|
27
|
-
nextRoutes:
|
|
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
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
70
|
-
|
|
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?.(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
}
|