@react-navigation/native 8.0.0-alpha.19 → 8.0.0-alpha.20

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.
@@ -12,7 +12,5 @@ const StackNavigator = props => {
12
12
  children: descriptors[state.routes[state.index].key].render()
13
13
  });
14
14
  };
15
- export function createStackNavigator() {
16
- return createNavigatorFactory(StackNavigator)();
17
- }
15
+ export const createStackNavigator = createNavigatorFactory(StackNavigator);
18
16
  //# sourceMappingURL=createStackNavigator.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createNavigatorFactory","StackRouter","useNavigationBuilder","jsx","_jsx","StackNavigator","props","state","descriptors","NavigationContent","children","routes","index","key","render","createStackNavigator"],"sourceRoot":"../../../src","sources":["__stubs__/createStackNavigator.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EAKtBC,WAAW,EAEXC,oBAAoB,QACf,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhC,MAAMC,cAAc,GAClBC,KAMC,IACE;EACH,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAkB,CAAC,GAAGP,oBAAoB,CACpED,WAAW,EACXK,KACF,CAAC;EAED,oBACEF,IAAA,CAACK,iBAAiB;IAAAC,QAAA,EACfF,WAAW,CAACD,KAAK,CAACI,MAAM,CAACJ,KAAK,CAACK,KAAK,CAAC,CAACC,GAAG,CAAC,CAACC,MAAM,CAAC;EAAC,CACnC,CAAC;AAExB,CAAC;AAED,OAAO,SAASC,oBAAoBA,CAAA,EASjC;EACD,OAAOf,sBAAsB,CAACK,cAAc,CAAC,CAAC,CAAC;AACjD","ignoreList":[]}
1
+ {"version":3,"names":["createNavigatorFactory","StackRouter","useNavigationBuilder","jsx","_jsx","StackNavigator","props","state","descriptors","NavigationContent","children","routes","index","key","render","createStackNavigator"],"sourceRoot":"../../../src","sources":["__stubs__/createStackNavigator.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EAKtBC,WAAW,EACXC,oBAAoB,QACf,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhC,MAAMC,cAAc,GAClBC,KAMC,IACE;EACH,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAkB,CAAC,GAAGP,oBAAoB,CACpED,WAAW,EACXK,KACF,CAAC;EAED,oBACEF,IAAA,CAACK,iBAAiB;IAAAC,QAAA,EACfF,WAAW,CAACD,KAAK,CAACI,MAAM,CAACJ,KAAK,CAACK,KAAK,CAAC,CAACC,GAAG,CAAC,CAACC,MAAM,CAAC;EAAC,CACnC,CAAC;AAExB,CAAC;AAOD,OAAO,MAAMC,oBAAoB,GAC/Bf,sBAAsB,CAAmBK,cAAc,CAAC","ignoreList":[]}
@@ -5,12 +5,15 @@ import isEqual from 'fast-deep-equal';
5
5
  import * as React from 'react';
6
6
  import { createMemoryHistory } from "./createMemoryHistory.js";
7
7
  import { ServerContext } from "./ServerContext.js";
8
+ const getRoutesUntilIndex = state => state.routes.slice(0, state.index + 1);
9
+
8
10
  /**
9
11
  * Calculate total history length including both navigator history and route history
10
12
  */
11
13
  const getTotalHistoryLength = state => {
12
- const baseHistoryLength = state.history ? state.history.length : state.routes.length;
13
- const routeHistoryLength = state.routes.reduce((acc, r) => {
14
+ const routes = getRoutesUntilIndex(state);
15
+ const baseHistoryLength = state.history ? state.history.length : routes.length;
16
+ const routeHistoryLength = routes.reduce((acc, r) => {
14
17
  return acc + (r.history ? r.history.length : 0);
15
18
  }, 0);
16
19
  return baseHistoryLength + routeHistoryLength;
@@ -43,6 +46,28 @@ const findMatchingState = (a, b) => {
43
46
  return findMatchingState(aChildState, bChildState);
44
47
  };
45
48
 
49
+ /**
50
+ * Check if the state change is popping the last route or history entry.
51
+ */
52
+ const isPoppingLastEntry = (current, record) => {
53
+ const currentRoute = current.routes[current.index];
54
+ const recordRoute = record.routes[record.index];
55
+ const currentRouteHistory = currentRoute.history;
56
+ const recordRouteHistory = recordRoute.history ?? [];
57
+ if (currentRouteHistory?.length) {
58
+ return currentRoute.key === recordRoute.key && currentRouteHistory.length === recordRouteHistory.length + 1;
59
+ }
60
+ if (current.history && record.history) {
61
+ return current.history.length === record.history.length + 1;
62
+ }
63
+ const currentRoutes = getRoutesUntilIndex(current);
64
+ const recordRoutes = getRoutesUntilIndex(record);
65
+ if (currentRoutes.length === recordRoutes.length + 1) {
66
+ return recordRoutes.every((route, i) => route.key === currentRoutes[i].key);
67
+ }
68
+ return false;
69
+ };
70
+
46
71
  /**
47
72
  * Run async function in series as it's called.
48
73
  */
@@ -147,7 +172,16 @@ export function useLinking(ref, {
147
172
  // Otherwise, we'll handle it like a regular deep link
148
173
  const record = history.get(index);
149
174
  if (record?.path === path && record?.state) {
150
- navigation.resetRoot(record.state);
175
+ const currentState = navigation.getRootState();
176
+ const [currentFocused, recordFocused] = findMatchingState(currentState, record.state);
177
+ if (previousIndex - index === 1 && currentFocused && recordFocused && isPoppingLastEntry(currentFocused, recordFocused)) {
178
+ // If we detect that the state change is popping the last entry
179
+ // Dispatch a back action instead of resetting to the state
180
+ // This makes sure changes to history state since the entry was added don't get lost
181
+ navigation.goBack();
182
+ } else {
183
+ navigation.resetRoot(record.state);
184
+ }
151
185
  return;
152
186
  }
153
187
  const state = getStateFromPathRef.current(path, configRef.current);
@@ -225,6 +259,7 @@ export function useLinking(ref, {
225
259
  path,
226
260
  state
227
261
  });
262
+ previousIndexRef.current = history.index;
228
263
  }
229
264
  }
230
265
  const onStateChange = async () => {
@@ -305,6 +340,7 @@ export function useLinking(ref, {
305
340
  state
306
341
  });
307
342
  }
343
+ previousIndexRef.current = history.index;
308
344
  };
309
345
 
310
346
  // We debounce onStateChange coz we don't want multiple state changes to be handled at one time
@@ -1 +1 @@
1
- {"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getTotalHistoryLength","state","baseHistoryLength","history","length","routes","routeHistoryLength","reduce","acc","r","findMatchingState","a","b","undefined","key","aHistoryLength","bHistoryLength","aRoute","index","bRoute","aChildState","bChildState","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","Set","useLinking","ref","enabled","config","independent","useEffect","process","env","NODE_ENV","size","console","error","join","trim","handler","Symbol","add","delete","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","current","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","routeNames","includes","name","server","use","getInitialState","value","location","window","path","pathname","search","thenable","onfulfilled","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","record","get","resetRoot","action","dispatch","e","warn","message","getPathForRoute","route","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","push","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getRoutesUntilIndex","state","routes","slice","index","getTotalHistoryLength","baseHistoryLength","history","length","routeHistoryLength","reduce","acc","r","findMatchingState","a","b","undefined","key","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","isPoppingLastEntry","current","record","currentRoute","recordRoute","currentRouteHistory","recordRouteHistory","currentRoutes","recordRoutes","every","route","i","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","Set","useLinking","ref","enabled","config","independent","useEffect","process","env","NODE_ENV","size","console","error","join","trim","handler","Symbol","add","delete","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","routeNames","includes","name","server","use","getInitialState","value","location","window","path","pathname","search","thenable","onfulfilled","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","get","currentState","currentFocused","recordFocused","goBack","resetRoot","action","dispatch","e","warn","message","getPathForRoute","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","push","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,9 @@
1
- import { type DefaultNavigatorOptions, type NavigationListBase, type ParamListBase, type StackNavigationState, type TypedNavigator } from '@react-navigation/core';
1
+ import { type DefaultNavigatorOptions, type NavigatorTypeBagBase, type ParamListBase, type StackNavigationState } from '@react-navigation/core';
2
2
  declare const StackNavigator: (props: DefaultNavigatorOptions<ParamListBase, StackNavigationState<ParamListBase>, {}, {}, unknown>) => import("react/jsx-runtime").JSX.Element;
3
- export declare function createStackNavigator<ParamList extends ParamListBase>(): TypedNavigator<{
4
- ParamList: ParamList;
5
- State: StackNavigationState<ParamList>;
6
- ScreenOptions: {};
7
- EventMap: {};
8
- NavigationList: NavigationListBase<ParamList>;
3
+ interface StubStackTypeBag extends NavigatorTypeBagBase {
4
+ State: StackNavigationState<this['ParamList']>;
9
5
  Navigator: typeof StackNavigator;
10
- }>;
6
+ }
7
+ export declare const createStackNavigator: import("@react-navigation/core").TypedNavigatorFactory<StubStackTypeBag>;
11
8
  export {};
12
9
  //# sourceMappingURL=createStackNavigator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createStackNavigator.d.ts","sourceRoot":"","sources":["../../../../src/__stubs__/createStackNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAEhC,QAAA,MAAM,cAAc,GAClB,OAAO,uBAAuB,CAC5B,aAAa,EACb,oBAAoB,CAAC,aAAa,CAAC,EACnC,EAAE,EACF,EAAE,EACF,OAAO,CACR,4CAYF,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,SAAS,SAAS,aAAa,KAC5B,cAAc,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACvC,aAAa,EAAE,EAAE,CAAC;IAClB,QAAQ,EAAE,EAAE,CAAC;IACb,cAAc,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9C,SAAS,EAAE,OAAO,cAAc,CAAC;CAClC,CAAC,CAED"}
1
+ {"version":3,"file":"createStackNavigator.d.ts","sourceRoot":"","sources":["../../../../src/__stubs__/createStackNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAG1B,MAAM,wBAAwB,CAAC;AAEhC,QAAA,MAAM,cAAc,GAClB,OAAO,uBAAuB,CAC5B,aAAa,EACb,oBAAoB,CAAC,aAAa,CAAC,EACnC,EAAE,EACF,EAAE,EACF,OAAO,CACR,4CAYF,CAAC;AAEF,UAAU,gBAAiB,SAAQ,oBAAoB;IACrD,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/C,SAAS,EAAE,OAAO,cAAc,CAAC;CAClC;AAED,eAAO,MAAM,oBAAoB,0EACyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA4D9C;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAC;AAIF,wBAAgB,UAAU,CAAC,SAAS,SAAS,aAAa,EACxD,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,EAC9D,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,cAAc,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+U7B"}
1
+ {"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAkG9C;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAC;AAIF,wBAAgB,UAAU,CAAC,SAAS,SAAS,aAAa,EACxD,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,EAC9D,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,cAAc,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsW7B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/native",
3
3
  "description": "React Native integration for React Navigation",
4
- "version": "8.0.0-alpha.19",
4
+ "version": "8.0.0-alpha.20",
5
5
  "keywords": [
6
6
  "react-native",
7
7
  "react-navigation",
@@ -57,7 +57,7 @@
57
57
  "clean": "del lib"
58
58
  },
59
59
  "dependencies": {
60
- "@react-navigation/core": "^8.0.0-alpha.11",
60
+ "@react-navigation/core": "^8.0.0-alpha.12",
61
61
  "escape-string-regexp": "^5.0.0",
62
62
  "fast-deep-equal": "^3.1.3",
63
63
  "nanoid": "^5.1.7",
@@ -120,5 +120,5 @@
120
120
  }
121
121
  }
122
122
  },
123
- "gitHead": "d7d3b8f648421eff0bf832ec9b2759651c12fc98"
123
+ "gitHead": "d465f4e6b2996e5ed4648b23487e2027e83b263d"
124
124
  }
@@ -1,11 +1,10 @@
1
1
  import {
2
2
  createNavigatorFactory,
3
3
  type DefaultNavigatorOptions,
4
- type NavigationListBase,
4
+ type NavigatorTypeBagBase,
5
5
  type ParamListBase,
6
6
  type StackNavigationState,
7
7
  StackRouter,
8
- type TypedNavigator,
9
8
  useNavigationBuilder,
10
9
  } from '@react-navigation/core';
11
10
 
@@ -30,15 +29,10 @@ const StackNavigator = (
30
29
  );
31
30
  };
32
31
 
33
- export function createStackNavigator<
34
- ParamList extends ParamListBase,
35
- >(): TypedNavigator<{
36
- ParamList: ParamList;
37
- State: StackNavigationState<ParamList>;
38
- ScreenOptions: {};
39
- EventMap: {};
40
- NavigationList: NavigationListBase<ParamList>;
32
+ interface StubStackTypeBag extends NavigatorTypeBagBase {
33
+ State: StackNavigationState<this['ParamList']>;
41
34
  Navigator: typeof StackNavigator;
42
- }> {
43
- return createNavigatorFactory(StackNavigator)();
44
35
  }
36
+
37
+ export const createStackNavigator =
38
+ createNavigatorFactory<StubStackTypeBag>(StackNavigator);
@@ -18,15 +18,20 @@ import type { Thenable } from './useThenable';
18
18
 
19
19
  type ResultState = ReturnType<typeof getStateFromPathDefault>;
20
20
 
21
+ const getRoutesUntilIndex = (state: NavigationState) =>
22
+ state.routes.slice(0, state.index + 1);
23
+
21
24
  /**
22
25
  * Calculate total history length including both navigator history and route history
23
26
  */
24
27
  const getTotalHistoryLength = (state: NavigationState): number => {
28
+ const routes = getRoutesUntilIndex(state);
29
+
25
30
  const baseHistoryLength = state.history
26
31
  ? state.history.length
27
- : state.routes.length;
32
+ : routes.length;
28
33
 
29
- const routeHistoryLength = state.routes.reduce((acc, r) => {
34
+ const routeHistoryLength = routes.reduce((acc, r) => {
30
35
  return acc + (r.history ? r.history.length : 0);
31
36
  }, 0);
32
37
 
@@ -74,6 +79,39 @@ const findMatchingState = <T extends NavigationState>(
74
79
  return findMatchingState(aChildState, bChildState);
75
80
  };
76
81
 
82
+ /**
83
+ * Check if the state change is popping the last route or history entry.
84
+ */
85
+ const isPoppingLastEntry = (
86
+ current: NavigationState,
87
+ record: NavigationState
88
+ ): boolean => {
89
+ const currentRoute = current.routes[current.index];
90
+ const recordRoute = record.routes[record.index];
91
+ const currentRouteHistory = currentRoute.history;
92
+ const recordRouteHistory = recordRoute.history ?? [];
93
+
94
+ if (currentRouteHistory?.length) {
95
+ return (
96
+ currentRoute.key === recordRoute.key &&
97
+ currentRouteHistory.length === recordRouteHistory.length + 1
98
+ );
99
+ }
100
+
101
+ if (current.history && record.history) {
102
+ return current.history.length === record.history.length + 1;
103
+ }
104
+
105
+ const currentRoutes = getRoutesUntilIndex(current);
106
+ const recordRoutes = getRoutesUntilIndex(record);
107
+
108
+ if (currentRoutes.length === recordRoutes.length + 1) {
109
+ return recordRoutes.every((route, i) => route.key === currentRoutes[i].key);
110
+ }
111
+
112
+ return false;
113
+ };
114
+
77
115
  /**
78
116
  * Run async function in series as it's called.
79
117
  */
@@ -219,7 +257,27 @@ export function useLinking<ParamList extends ParamListBase>(
219
257
  const record = history.get(index);
220
258
 
221
259
  if (record?.path === path && record?.state) {
222
- navigation.resetRoot(record.state);
260
+ const currentState = navigation.getRootState();
261
+
262
+ const [currentFocused, recordFocused] = findMatchingState(
263
+ currentState,
264
+ record.state
265
+ );
266
+
267
+ if (
268
+ previousIndex - index === 1 &&
269
+ currentFocused &&
270
+ recordFocused &&
271
+ isPoppingLastEntry(currentFocused, recordFocused)
272
+ ) {
273
+ // If we detect that the state change is popping the last entry
274
+ // Dispatch a back action instead of resetting to the state
275
+ // This makes sure changes to history state since the entry was added don't get lost
276
+ navigation.goBack();
277
+ } else {
278
+ navigation.resetRoot(record.state);
279
+ }
280
+
223
281
  return;
224
282
  }
225
283
 
@@ -335,6 +393,7 @@ export function useLinking<ParamList extends ParamListBase>(
335
393
  }
336
394
 
337
395
  history.replace({ path, state });
396
+ previousIndexRef.current = history.index;
338
397
  }
339
398
  }
340
399
 
@@ -420,6 +479,8 @@ export function useLinking<ParamList extends ParamListBase>(
420
479
  // This would happen if the user did a reset/conditionally changed navigators
421
480
  history.replace({ path, state });
422
481
  }
482
+
483
+ previousIndexRef.current = history.index;
423
484
  };
424
485
 
425
486
  // We debounce onStateChange coz we don't want multiple state changes to be handled at one time