@react-navigation/native 8.0.0-alpha.46 → 8.0.0-alpha.48

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.
@@ -29,7 +29,10 @@ buildscript {
29
29
 
30
30
 
31
31
  apply plugin: "com.android.library"
32
- apply plugin: "kotlin-android"
32
+
33
+ if (project.extensions.findByName("kotlin") == null) {
34
+ apply plugin: "kotlin-android"
35
+ }
33
36
 
34
37
  apply plugin: "com.facebook.react"
35
38
 
@@ -52,7 +52,7 @@ class MaterialSymbolModule(reactContext: ReactApplicationContext) :
52
52
  val density = reactApplicationContext.resources.displayMetrics.density
53
53
  val scaledSize = (size * density).roundToInt().coerceAtLeast(1)
54
54
 
55
- val (resolvedTypeface, typefaceSuffix) = MaterialSymbolTypeface.get(
55
+ val typefaceSuffix = MaterialSymbolTypeface.getSuffix(
56
56
  reactApplicationContext, variant, weight?.toInt()
57
57
  )
58
58
 
@@ -82,6 +82,10 @@ class MaterialSymbolModule(reactContext: ReactApplicationContext) :
82
82
 
83
83
  cacheDir.mkdirs()
84
84
 
85
+ val resolvedTypeface = MaterialSymbolTypeface.get(
86
+ reactApplicationContext, variant, weight?.toInt()
87
+ ).typeface
88
+
85
89
  val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
86
90
  typeface = resolvedTypeface
87
91
  textSize = scaledSize.toFloat()
@@ -11,6 +11,22 @@ object MaterialSymbolTypeface {
11
11
  private var availableFonts: Map<String, Set<Int>>? = null
12
12
 
13
13
  fun get(context: Context, variant: String?, weight: Int?): MaterialSymbolTypefaceResult {
14
+ val suffix = getSuffix(context, variant, weight)
15
+
16
+ val typeface = typefaces.getOrPut(suffix) {
17
+ val path = "fonts/MaterialSymbols${suffix}.ttf"
18
+
19
+ try {
20
+ Typeface.createFromAsset(context.assets, path)
21
+ } catch (e: Exception) {
22
+ throw RuntimeException("$path not found.", e)
23
+ }
24
+ }
25
+
26
+ return MaterialSymbolTypefaceResult(typeface, suffix)
27
+ }
28
+
29
+ fun getSuffix(context: Context, variant: String?, weight: Int?): String {
14
30
  val fonts = getAvailableFonts(context)
15
31
 
16
32
  val resolvedVariant = if (variant != null) {
@@ -25,19 +41,7 @@ object MaterialSymbolTypeface {
25
41
 
26
42
  val resolvedWeight = weight ?: resolveDefaultWeight(fonts, resolvedVariant)
27
43
 
28
- val suffix = "${resolvedVariant}_$resolvedWeight"
29
-
30
- val typeface = typefaces.getOrPut(suffix) {
31
- val path = "fonts/MaterialSymbols${suffix}.ttf"
32
-
33
- try {
34
- Typeface.createFromAsset(context.assets, path)
35
- } catch (e: Exception) {
36
- throw RuntimeException("$path not found.", e)
37
- }
38
- }
39
-
40
- return MaterialSymbolTypefaceResult(typeface, suffix)
44
+ return "${resolvedVariant}_$resolvedWeight"
41
45
  }
42
46
 
43
47
  private fun getAvailableFonts(context: Context): Map<String, Set<Int>> {
@@ -13,6 +13,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  */
14
14
  export function createStaticNavigation(tree) {
15
15
  const Component = tree.getComponent();
16
+ const element = /*#__PURE__*/_jsx(Component, {});
16
17
  function Navigation({
17
18
  linking,
18
19
  ref,
@@ -44,7 +45,7 @@ export function createStaticNavigation(tree) {
44
45
  ...rest,
45
46
  ref: ref,
46
47
  linking: memoizedLinking,
47
- children: /*#__PURE__*/_jsx(Component, {})
48
+ children: element
48
49
  });
49
50
  }
50
51
  return Navigation;
@@ -1 +1 @@
1
- {"version":3,"names":["createPathConfigForStaticNavigation","React","NavigationContainer","jsx","_jsx","createStaticNavigation","tree","Component","getComponent","Navigation","linking","ref","rest","linkingConfig","useMemo","screens","initialRouteName","config","enabled","path","memoizedLinking","Error","children"],"sourceRoot":"../../src","sources":["createStaticNavigation.tsx"],"mappings":";;AAAA,SACEA,mCAAmC,QAG9B,wBAAwB;AAC/B,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,mBAAmB,QAAQ,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA2B5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,IAA2B,EAAE;EAClE,MAAMC,SAAS,GAAGD,IAAI,CAACE,YAAY,CAAC,CAAC;EAErC,SAASC,UAAUA,CAAuC;IACxDC,OAAO;IACPC,GAAG;IACH,GAAGC;EACa,CAAC,EAAE;IACnB,MAAMC,aAAa,GAAGZ,KAAK,CAACa,OAAO,CAAC,MAAM;MACxC,MAAMC,OAAO,GAAGf,mCAAmC,CACjDM,IAAI,EACJ;QAAEU,gBAAgB,EAAEN,OAAO,EAAEO,MAAM,EAAED;MAAiB,CAAC,EACvDN,OAAO,EAAEQ,OAAO,IAAI,IAAI,IAAIR,OAAO,CAACQ,OAAO,KAAK,MAClD,CAAC;MAED,IAAI,CAACH,OAAO,EAAE;MAEd,OAAO;QACLI,IAAI,EAAET,OAAO,EAAEO,MAAM,EAAEE,IAAI;QAC3BH,gBAAgB,EAAEN,OAAO,EAAEO,MAAM,EAAED,gBAAgB;QACnDD;MACF,CAAC;IACH,CAAC,EAAE,CACDL,OAAO,EAAEQ,OAAO,EAChBR,OAAO,EAAEO,MAAM,EAAEE,IAAI,EACrBT,OAAO,EAAEO,MAAM,EAAED,gBAAgB,CAClC,CAAC;IAEF,MAAMI,eAAe,GAAGnB,KAAK,CAACa,OAAO,CAAC,MAAM;MAC1C,MAAMI,OAAO,GACXR,OAAO,EAAEQ,OAAO,IAAI,IAAI,IAAIR,OAAO,CAACQ,OAAO,KAAK,MAAM,GAClD,IAAI,GACJR,OAAO,CAACQ,OAAO;MAErB,OAAO;QACL,GAAGR,OAAO;QACVQ,OAAO;QACPD,MAAM,EAAEJ;MACV,CAAC;IACH,CAAC,EAAE,CAACH,OAAO,EAAEG,aAAa,CAAC,CAAC;IAE5B,IAAIH,OAAO,EAAEQ,OAAO,KAAK,IAAI,IAAIL,aAAa,EAAEE,OAAO,IAAI,IAAI,EAAE;MAC/D,MAAM,IAAIM,KAAK,CACb,gFAAgF,GAC9E,kBAAkB,GAClB,0FAA0F,GAC1F,2EAA2E,GAC3E,gFACJ,CAAC;IACH;IAEA,oBACEjB,IAAA,CAACF,mBAAmB;MAAA,GAAKU,IAAI;MAAED,GAAG,EAAEA,GAAI;MAACD,OAAO,EAAEU,eAAgB;MAAAE,QAAA,eAChElB,IAAA,CAACG,SAAS,IAAE;IAAC,CACM,CAAC;EAE1B;EAEA,OAAOE,UAAU;AACnB","ignoreList":[]}
1
+ {"version":3,"names":["createPathConfigForStaticNavigation","React","NavigationContainer","jsx","_jsx","createStaticNavigation","tree","Component","getComponent","element","Navigation","linking","ref","rest","linkingConfig","useMemo","screens","initialRouteName","config","enabled","path","memoizedLinking","Error","children"],"sourceRoot":"../../src","sources":["createStaticNavigation.tsx"],"mappings":";;AAAA,SACEA,mCAAmC,QAG9B,wBAAwB;AAC/B,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,mBAAmB,QAAQ,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA2B5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,IAA2B,EAAE;EAClE,MAAMC,SAAS,GAAGD,IAAI,CAACE,YAAY,CAAC,CAAC;EACrC,MAAMC,OAAO,gBAAGL,IAAA,CAACG,SAAS,IAAE,CAAC;EAE7B,SAASG,UAAUA,CAAuC;IACxDC,OAAO;IACPC,GAAG;IACH,GAAGC;EACa,CAAC,EAAE;IACnB,MAAMC,aAAa,GAAGb,KAAK,CAACc,OAAO,CAAC,MAAM;MACxC,MAAMC,OAAO,GAAGhB,mCAAmC,CACjDM,IAAI,EACJ;QAAEW,gBAAgB,EAAEN,OAAO,EAAEO,MAAM,EAAED;MAAiB,CAAC,EACvDN,OAAO,EAAEQ,OAAO,IAAI,IAAI,IAAIR,OAAO,CAACQ,OAAO,KAAK,MAClD,CAAC;MAED,IAAI,CAACH,OAAO,EAAE;MAEd,OAAO;QACLI,IAAI,EAAET,OAAO,EAAEO,MAAM,EAAEE,IAAI;QAC3BH,gBAAgB,EAAEN,OAAO,EAAEO,MAAM,EAAED,gBAAgB;QACnDD;MACF,CAAC;IACH,CAAC,EAAE,CACDL,OAAO,EAAEQ,OAAO,EAChBR,OAAO,EAAEO,MAAM,EAAEE,IAAI,EACrBT,OAAO,EAAEO,MAAM,EAAED,gBAAgB,CAClC,CAAC;IAEF,MAAMI,eAAe,GAAGpB,KAAK,CAACc,OAAO,CAAC,MAAM;MAC1C,MAAMI,OAAO,GACXR,OAAO,EAAEQ,OAAO,IAAI,IAAI,IAAIR,OAAO,CAACQ,OAAO,KAAK,MAAM,GAClD,IAAI,GACJR,OAAO,CAACQ,OAAO;MAErB,OAAO;QACL,GAAGR,OAAO;QACVQ,OAAO;QACPD,MAAM,EAAEJ;MACV,CAAC;IACH,CAAC,EAAE,CAACH,OAAO,EAAEG,aAAa,CAAC,CAAC;IAE5B,IAAIH,OAAO,EAAEQ,OAAO,KAAK,IAAI,IAAIL,aAAa,EAAEE,OAAO,IAAI,IAAI,EAAE;MAC/D,MAAM,IAAIM,KAAK,CACb,gFAAgF,GAC9E,kBAAkB,GAClB,0FAA0F,GAC1F,2EAA2E,GAC3E,gFACJ,CAAC;IACH;IAEA,oBACElB,IAAA,CAACF,mBAAmB;MAAA,GAAKW,IAAI;MAAED,GAAG,EAAEA,GAAI;MAACD,OAAO,EAAEU,eAAgB;MAAAE,QAAA,EAC/Dd;IAAO,CACW,CAAC;EAE1B;EAEA,OAAOC,UAAU;AACnB","ignoreList":[]}
@@ -85,6 +85,25 @@ const findMatchingState = (a, b) => {
85
85
  return findMatchingState(aChildState, bChildState);
86
86
  };
87
87
 
88
+ /**
89
+ * Calculate the history delta between 2 navigation states.
90
+ * If no common navigation state is found, only replace the history entry.
91
+ */
92
+ const getHistoryDelta = (previous, next) => {
93
+ const [previousFocused, nextFocused] = findMatchingState(previous, next);
94
+ return previousFocused && nextFocused ? getTotalHistoryLength(nextFocused) - getTotalHistoryLength(previousFocused) : 'replace';
95
+ };
96
+
97
+ /**
98
+ * Check if navigator history matches between committed and latest state.
99
+ */
100
+ const hasMatchingBackHistory = (current, latest) => {
101
+ if (current.history !== undefined || latest.history !== undefined) {
102
+ return isEqual(current.history, latest.history);
103
+ }
104
+ return current.routes.slice(0, Math.min(current.index, latest.index) + 1).every((route, i) => route.key === latest.routes[i]?.key);
105
+ };
106
+
88
107
  /**
89
108
  * Check if the state change is popping the last route or history entry.
90
109
  */
@@ -205,7 +224,7 @@ export function useLinking(ref, {
205
224
  }, []);
206
225
  const previousIndexRef = React.useRef(undefined);
207
226
  const previousStateRef = React.useRef(undefined);
208
- const pendingPopStateDeltaRef = React.useRef(undefined);
227
+ const pendingPopStateRef = React.useRef(undefined);
209
228
  React.useEffect(() => {
210
229
  if (!history) {
211
230
  return;
@@ -262,7 +281,10 @@ export function useLinking(ref, {
262
281
  if (actionChangedState) {
263
282
  // The change may be committed later, e.g. with transitions
264
283
  // Remember the delta so it can be subtracted when syncing the commit
265
- pendingPopStateDeltaRef.current = pendingDelta;
284
+ pendingPopStateRef.current = {
285
+ state: navigation.getRootState(),
286
+ delta: pendingDelta
287
+ };
266
288
  } else if (removePrevented) {
267
289
  rollbackHistory();
268
290
  }
@@ -279,20 +301,42 @@ export function useLinking(ref, {
279
301
  // Otherwise, we'll handle it like a regular deep link
280
302
  const record = history.get(index);
281
303
  if (record?.path === path && record?.state) {
282
- const currentState = navigation.getRootState();
283
- const [currentFocused, recordFocused] = findMatchingState(currentState, record.state);
284
- if (previousIndex - index === 1 && currentFocused && recordFocused && isPoppingLastEntry(currentFocused, recordFocused)) {
285
- const pending = pendingPopStateDeltaRef.current;
304
+ const pending = pendingPopStateRef.current;
286
305
 
306
+ // Use the state synced to browser history or the result of a pending traversal,
307
+ // since the store may already contain another navigation that hasn't committed yet.
308
+ const currentState = pending?.state ?? previousStateRef.current;
309
+ const [currentFocused, recordFocused] = findMatchingState(currentState, record.state);
310
+ const [latestFocused] = findMatchingState(navigation.getRootState(), record.state);
311
+ const [pendingFocused] = findMatchingState(previousStateRef.current, pending?.state);
312
+ const currentRoute = currentFocused?.routes[currentFocused.index];
313
+ const latestRoute = latestFocused && getRoutesUntilIndex(latestFocused).find(route => route.key === currentRoute?.key);
314
+ if (previousIndex - index === 1 && currentFocused && recordFocused && latestFocused && currentFocused.key === latestFocused.key && (
315
+ // Only combine pending browser history deltas within the same navigator,
316
+ // as history lengths from different navigators aren't comparable.
317
+ !pending?.state || pendingFocused?.key === currentFocused.key) &&
318
+ // We don't want to dispatch `goBack` if route history has grown since,
319
+ // as we can't specify the entry to go back from.
320
+ // We can only specify route to go back from with `source`.
321
+ // Entries removed since are fine, they were already popped by a back action.
322
+ (latestRoute?.history?.length ?? 0) <= (currentRoute?.history?.length ?? 0) && hasMatchingBackHistory(currentFocused, latestFocused) && isPoppingLastEntry(currentFocused, recordFocused)) {
287
323
  // If we detect that the state change is popping the last entry
288
324
  // Dispatch a back action instead of resetting to the state
289
325
  // This makes sure changes to history state since the entry was added don't get lost
290
- dispatch(CommonActions.goBack(),
326
+ dispatch({
327
+ ...CommonActions.goBack(),
328
+ target: currentFocused.key,
329
+ // If another back action already removed the source, go back
330
+ // from the current route in the same navigator instead.
331
+ source: latestRoute?.key
332
+ },
291
333
  // Stack on any delta from a previous `popstate` that hasn't committed yet
292
- pending === 'replace' ? 'replace' : (pending ?? 0) - 1);
334
+ pending?.delta === 'replace' ? 'replace' : (pending?.delta ?? 0) - 1);
293
335
  } else {
294
336
  // The browser already moved from the current state to the record's state
295
- resetRoot(record.state, currentFocused && recordFocused ? getTotalHistoryLength(recordFocused) - getTotalHistoryLength(currentFocused) : 'replace');
337
+ // We measure the delta from the last synced state,
338
+ // since that's what the pending delta gets subtracted from when syncing the commit
339
+ resetRoot(record.state, getHistoryDelta(previousStateRef.current, record.state));
296
340
  }
297
341
  return;
298
342
  }
@@ -305,35 +349,28 @@ export function useLinking(ref, {
305
349
  state = undefined;
306
350
  }
307
351
 
352
+ // Make sure that the routes in the state exist in the root navigator
353
+ // Otherwise there's an error in the linking configuration
354
+ if (state && validateRoutesNotExistInRootState(state, rootState)) {
355
+ return;
356
+ }
357
+
308
358
  // We should only dispatch an action when going forward
309
359
  // Otherwise the action will likely add items to history, which would mess things up
310
- if (state) {
311
- // Make sure that the routes in the state exist in the root navigator
312
- // Otherwise there's an error in the linking configuration
313
- if (validateRoutesNotExistInRootState(state, rootState)) {
314
- return;
315
- }
316
- if (index > previousIndex) {
317
- const action = getActionFromStateRef.current(state, configRef.current);
318
- if (action !== undefined) {
319
- try {
320
- dispatch({
321
- target: rootState?.key,
322
- ...action
323
- }, 'replace');
324
- } catch (e) {
325
- // Ignore any errors from deep linking.
326
- // This could happen in case of malformed links, navigation object not being initialized etc.
327
- console.warn(`An error occurred when trying to handle the link '${path}': ${typeof e === 'object' && e != null && 'message' in e ? e.message : e}`);
328
- }
329
- } else {
330
- resetRoot(state, 'replace');
331
- }
332
- } else {
333
- resetRoot(state, 'replace');
360
+ const action = state && index > previousIndex ? getActionFromStateRef.current(state, configRef.current) : undefined;
361
+ if (action !== undefined) {
362
+ try {
363
+ dispatch({
364
+ target: rootState?.key,
365
+ ...action
366
+ }, 'replace');
367
+ } catch (e) {
368
+ // Ignore any errors from deep linking.
369
+ // This could happen in case of malformed links, navigation object not being initialized etc.
370
+ console.warn(`An error occurred when trying to handle the link '${path}': ${typeof e === 'object' && e != null && 'message' in e ? e.message : e}`);
334
371
  }
335
372
  } else {
336
- // if current path didn't return any state, we should revert to initial state
373
+ // If current path didn't return any state, we should revert to initial state
337
374
  resetRoot(state, 'replace');
338
375
  }
339
376
  });
@@ -411,19 +448,19 @@ export function useLinking(ref, {
411
448
  const stateForPath = getStateForPath(state, navigation.getState());
412
449
  const route = findFocusedRoute(stateForPath);
413
450
  const path = getPathForRoute(route, stateForPath);
414
- const pendingPopStateDelta = pendingPopStateDeltaRef.current;
451
+ const pendingPopStateDelta = pendingPopStateRef.current?.delta;
415
452
  previousStateRef.current = state;
416
- pendingPopStateDeltaRef.current = undefined;
453
+ pendingPopStateRef.current = undefined;
417
454
 
418
455
  // To detect the kind of state change, we need to:
419
456
  // - Find the common focused navigation state in previous and current state
420
457
  // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace
421
458
  // - If no common focused navigation state found, it's a replace
422
- const [previousFocusedState, focusedState] = findMatchingState(previousState, state);
423
- if (previousFocusedState && focusedState &&
459
+ const delta = getHistoryDelta(previousState, state);
460
+ if (delta !== 'replace' &&
424
461
  // If the delta from `popstate` is unknown, we can only replace
425
462
  pendingPopStateDelta !== 'replace') {
426
- const historyDelta = getTotalHistoryLength(focusedState) - getTotalHistoryLength(previousFocusedState) - (
463
+ const historyDelta = delta - (
427
464
  // Subtract the delta already applied by the browser to sync only the remaining changes
428
465
  pendingPopStateDelta ?? 0);
429
466
  if (historyDelta > 0) {
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getRoutesUntilIndex","state","routes","slice","index","getStateForPath","fallbackState","length","route","fallbackRoute","key","name","childState","map","item","getTotalHistoryLength","baseHistoryLength","history","routeHistoryLength","reduce","acc","r","findMatchingState","a","b","undefined","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","isPoppingLastEntry","current","record","currentRoute","recordRoute","currentRouteHistory","recordRouteHistory","currentRoutes","recordRoutes","every","i","series","cb","queue","Promise","resolve","callback","then","catch","e","console","error","linkingHandlers","Set","useLinking","ref","enabled","config","independent","useEffect","process","env","NODE_ENV","size","join","trim","handler","Symbol","add","delete","server","use","useState","window","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","validateRoutesNotExistInRootState","useCallback","rootState","some","routeNames","includes","getInitialState","value","location","path","pathname","search","thenable","onfulfilled","previousIndexRef","previousStateRef","pendingPopStateDeltaRef","listen","navigation","previousIndex","rollbackHistory","delta","go","rollbackHistoryIfPrevented","pendingDelta","removePrevented","actionChangedState","unsubscribeEvent","addListener","data","type","defaultPrevented","unsubscribeAction","noop","dispatch","action","resetRoot","get","currentState","getRootState","currentFocused","recordFocused","pending","goBack","target","warn","message","getPathForRoute","stateForPath","focusedRoute","params","previousRoute","hash","getState","replace","onUpdate","previousState","pendingPopStateDelta","previousFocusedState","focusedState","historyDelta","push","nextIndex","backIndex","currentIndex","handleUpdate"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getRoutesUntilIndex","state","routes","slice","index","getStateForPath","fallbackState","length","route","fallbackRoute","key","name","childState","map","item","getTotalHistoryLength","baseHistoryLength","history","routeHistoryLength","reduce","acc","r","findMatchingState","a","b","undefined","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","getHistoryDelta","previous","next","previousFocused","nextFocused","hasMatchingBackHistory","current","latest","Math","min","every","i","isPoppingLastEntry","record","currentRoute","recordRoute","currentRouteHistory","recordRouteHistory","currentRoutes","recordRoutes","series","cb","queue","Promise","resolve","callback","then","catch","e","console","error","linkingHandlers","Set","useLinking","ref","enabled","config","independent","useEffect","process","env","NODE_ENV","size","join","trim","handler","Symbol","add","delete","server","use","useState","window","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","validateRoutesNotExistInRootState","useCallback","rootState","some","routeNames","includes","getInitialState","value","location","path","pathname","search","thenable","onfulfilled","previousIndexRef","previousStateRef","pendingPopStateRef","listen","navigation","previousIndex","rollbackHistory","delta","go","rollbackHistoryIfPrevented","pendingDelta","removePrevented","actionChangedState","unsubscribeEvent","addListener","data","type","defaultPrevented","unsubscribeAction","noop","getRootState","dispatch","action","resetRoot","get","pending","currentState","currentFocused","recordFocused","latestFocused","pendingFocused","latestRoute","find","goBack","target","source","warn","message","getPathForRoute","stateForPath","focusedRoute","params","previousRoute","hash","getState","replace","onUpdate","previousState","pendingPopStateDelta","historyDelta","push","nextIndex","backIndex","currentIndex","handleUpdate"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createStaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/createStaticNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,IAAI,CACrC,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAC3D,SAAS,GAAG,UAAU,CACvB,GAAG;IACF;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG;QAChE;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAChC;;WAEG;QACH,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KAC5E,CAAC;CACH,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAG5C,SAAS,SAAS,EAAE,kCAIrC,KAAK,CAAC,SAAS,CAAC,uBAoDpB"}
1
+ {"version":3,"file":"createStaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/createStaticNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,IAAI,CACrC,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAC3D,SAAS,GAAG,UAAU,CACvB,GAAG;IACF;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG;QAChE;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAChC;;WAEG;QACH,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KAC5E,CAAC;CACH,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAI5C,SAAS,SAAS,EAAE,kCAIrC,KAAK,CAAC,SAAS,CAAC,uBAoDpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAe,CAAC;AAkK9C;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAW7C,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;;;;;;;;;;EA8f7B"}
1
+ {"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAe,CAAC;AAkM9C;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAW7C,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;;;;;;;;;;EAwhB7B"}
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.46",
4
+ "version": "8.0.0-alpha.48",
5
5
  "keywords": [
6
6
  "react-native",
7
7
  "react-navigation",
@@ -62,7 +62,7 @@
62
62
  "clean": "del lib"
63
63
  },
64
64
  "dependencies": {
65
- "@react-navigation/core": "^8.0.0-alpha.36",
65
+ "@react-navigation/core": "^8.0.0-alpha.38",
66
66
  "escape-string-regexp": "^5.0.0",
67
67
  "fast-deep-equal": "^3.1.3",
68
68
  "nanoid": "^5.1.11",
@@ -132,5 +132,5 @@
132
132
  }
133
133
  }
134
134
  },
135
- "gitHead": "ac6baf188f7a456429a87b644053e765233f0151"
135
+ "gitHead": "904ba65a2938924d87658b7009a95698f93c7731"
136
136
  }
@@ -41,6 +41,7 @@ type Props<ParamList extends {}> = Omit<
41
41
  */
42
42
  export function createStaticNavigation(tree: StaticNavigation<any>) {
43
43
  const Component = tree.getComponent();
44
+ const element = <Component />;
44
45
 
45
46
  function Navigation<ParamList extends {} = RootParamList>({
46
47
  linking,
@@ -92,7 +93,7 @@ export function createStaticNavigation(tree: StaticNavigation<any>) {
92
93
 
93
94
  return (
94
95
  <NavigationContainer {...rest} ref={ref} linking={memoizedLinking}>
95
- <Component />
96
+ {element}
96
97
  </NavigationContainer>
97
98
  );
98
99
  }
@@ -136,6 +136,38 @@ const findMatchingState = <T extends NavigationState>(
136
136
  return findMatchingState(aChildState, bChildState);
137
137
  };
138
138
 
139
+ /**
140
+ * Calculate the history delta between 2 navigation states.
141
+ * If no common navigation state is found, only replace the history entry.
142
+ */
143
+ const getHistoryDelta = (
144
+ previous: NavigationState | undefined,
145
+ next: NavigationState | undefined
146
+ ): PopStateDelta => {
147
+ const [previousFocused, nextFocused] = findMatchingState(previous, next);
148
+
149
+ return previousFocused && nextFocused
150
+ ? getTotalHistoryLength(nextFocused) -
151
+ getTotalHistoryLength(previousFocused)
152
+ : 'replace';
153
+ };
154
+
155
+ /**
156
+ * Check if navigator history matches between committed and latest state.
157
+ */
158
+ const hasMatchingBackHistory = (
159
+ current: NavigationState,
160
+ latest: NavigationState
161
+ ): boolean => {
162
+ if (current.history !== undefined || latest.history !== undefined) {
163
+ return isEqual(current.history, latest.history);
164
+ }
165
+
166
+ return current.routes
167
+ .slice(0, Math.min(current.index, latest.index) + 1)
168
+ .every((route, i) => route.key === latest.routes[i]?.key);
169
+ };
170
+
139
171
  /**
140
172
  * Check if the state change is popping the last route or history entry.
141
173
  */
@@ -314,9 +346,9 @@ export function useLinking<ParamList extends ParamListBase>(
314
346
 
315
347
  const previousIndexRef = React.useRef<number | undefined>(undefined);
316
348
  const previousStateRef = React.useRef<NavigationState | undefined>(undefined);
317
- const pendingPopStateDeltaRef = React.useRef<PopStateDelta | undefined>(
318
- undefined
319
- );
349
+ const pendingPopStateRef = React.useRef<
350
+ { state: NavigationState | undefined; delta: PopStateDelta } | undefined
351
+ >(undefined);
320
352
 
321
353
  React.useEffect(() => {
322
354
  if (!history) {
@@ -397,7 +429,10 @@ export function useLinking<ParamList extends ParamListBase>(
397
429
  if (actionChangedState) {
398
430
  // The change may be committed later, e.g. with transitions
399
431
  // Remember the delta so it can be subtracted when syncing the commit
400
- pendingPopStateDeltaRef.current = pendingDelta;
432
+ pendingPopStateRef.current = {
433
+ state: navigation.getRootState(),
434
+ delta: pendingDelta,
435
+ };
401
436
  } else if (removePrevented) {
402
437
  rollbackHistory();
403
438
  }
@@ -429,37 +464,73 @@ export function useLinking<ParamList extends ParamListBase>(
429
464
  const record = history.get(index);
430
465
 
431
466
  if (record?.path === path && record?.state) {
432
- const currentState = navigation.getRootState();
467
+ const pending = pendingPopStateRef.current;
468
+
469
+ // Use the state synced to browser history or the result of a pending traversal,
470
+ // since the store may already contain another navigation that hasn't committed yet.
471
+ const currentState = pending?.state ?? previousStateRef.current;
433
472
 
434
473
  const [currentFocused, recordFocused] = findMatchingState(
435
474
  currentState,
436
475
  record.state
437
476
  );
438
477
 
478
+ const [latestFocused] = findMatchingState(
479
+ navigation.getRootState(),
480
+ record.state
481
+ );
482
+
483
+ const [pendingFocused] = findMatchingState(
484
+ previousStateRef.current,
485
+ pending?.state
486
+ );
487
+
488
+ const currentRoute = currentFocused?.routes[currentFocused.index];
489
+ const latestRoute =
490
+ latestFocused &&
491
+ getRoutesUntilIndex(latestFocused).find(
492
+ (route) => route.key === currentRoute?.key
493
+ );
494
+
439
495
  if (
440
496
  previousIndex - index === 1 &&
441
497
  currentFocused &&
442
498
  recordFocused &&
499
+ latestFocused &&
500
+ currentFocused.key === latestFocused.key &&
501
+ // Only combine pending browser history deltas within the same navigator,
502
+ // as history lengths from different navigators aren't comparable.
503
+ (!pending?.state || pendingFocused?.key === currentFocused.key) &&
504
+ // We don't want to dispatch `goBack` if route history has grown since,
505
+ // as we can't specify the entry to go back from.
506
+ // We can only specify route to go back from with `source`.
507
+ // Entries removed since are fine, they were already popped by a back action.
508
+ (latestRoute?.history?.length ?? 0) <=
509
+ (currentRoute?.history?.length ?? 0) &&
510
+ hasMatchingBackHistory(currentFocused, latestFocused) &&
443
511
  isPoppingLastEntry(currentFocused, recordFocused)
444
512
  ) {
445
- const pending = pendingPopStateDeltaRef.current;
446
-
447
513
  // If we detect that the state change is popping the last entry
448
514
  // Dispatch a back action instead of resetting to the state
449
515
  // This makes sure changes to history state since the entry was added don't get lost
450
516
  dispatch(
451
- CommonActions.goBack(),
517
+ {
518
+ ...CommonActions.goBack(),
519
+ target: currentFocused.key,
520
+ // If another back action already removed the source, go back
521
+ // from the current route in the same navigator instead.
522
+ source: latestRoute?.key,
523
+ },
452
524
  // Stack on any delta from a previous `popstate` that hasn't committed yet
453
- pending === 'replace' ? 'replace' : (pending ?? 0) - 1
525
+ pending?.delta === 'replace' ? 'replace' : (pending?.delta ?? 0) - 1
454
526
  );
455
527
  } else {
456
528
  // The browser already moved from the current state to the record's state
529
+ // We measure the delta from the last synced state,
530
+ // since that's what the pending delta gets subtracted from when syncing the commit
457
531
  resetRoot(
458
532
  record.state,
459
- currentFocused && recordFocused
460
- ? getTotalHistoryLength(recordFocused) -
461
- getTotalHistoryLength(currentFocused)
462
- : 'replace'
533
+ getHistoryDelta(previousStateRef.current, record.state)
463
534
  );
464
535
  }
465
536
 
@@ -478,49 +549,41 @@ export function useLinking<ParamList extends ParamListBase>(
478
549
  state = undefined;
479
550
  }
480
551
 
552
+ // Make sure that the routes in the state exist in the root navigator
553
+ // Otherwise there's an error in the linking configuration
554
+ if (state && validateRoutesNotExistInRootState(state, rootState)) {
555
+ return;
556
+ }
557
+
481
558
  // We should only dispatch an action when going forward
482
559
  // Otherwise the action will likely add items to history, which would mess things up
483
- if (state) {
484
- // Make sure that the routes in the state exist in the root navigator
485
- // Otherwise there's an error in the linking configuration
486
- if (validateRoutesNotExistInRootState(state, rootState)) {
487
- return;
488
- }
560
+ const action =
561
+ state && index > previousIndex
562
+ ? getActionFromStateRef.current(state, configRef.current)
563
+ : undefined;
489
564
 
490
- if (index > previousIndex) {
491
- const action = getActionFromStateRef.current(
492
- state,
493
- configRef.current
565
+ if (action !== undefined) {
566
+ try {
567
+ dispatch(
568
+ {
569
+ target: rootState?.key,
570
+ ...action,
571
+ },
572
+ 'replace'
573
+ );
574
+ } catch (e) {
575
+ // Ignore any errors from deep linking.
576
+ // This could happen in case of malformed links, navigation object not being initialized etc.
577
+ console.warn(
578
+ `An error occurred when trying to handle the link '${path}': ${
579
+ typeof e === 'object' && e != null && 'message' in e
580
+ ? e.message
581
+ : e
582
+ }`
494
583
  );
495
-
496
- if (action !== undefined) {
497
- try {
498
- dispatch(
499
- {
500
- target: rootState?.key,
501
- ...action,
502
- },
503
- 'replace'
504
- );
505
- } catch (e) {
506
- // Ignore any errors from deep linking.
507
- // This could happen in case of malformed links, navigation object not being initialized etc.
508
- console.warn(
509
- `An error occurred when trying to handle the link '${path}': ${
510
- typeof e === 'object' && e != null && 'message' in e
511
- ? e.message
512
- : e
513
- }`
514
- );
515
- }
516
- } else {
517
- resetRoot(state, 'replace');
518
- }
519
- } else {
520
- resetRoot(state, 'replace');
521
584
  }
522
585
  } else {
523
- // if current path didn't return any state, we should revert to initial state
586
+ // If current path didn't return any state, we should revert to initial state
524
587
  resetRoot(state, 'replace');
525
588
  }
526
589
  });
@@ -633,29 +696,24 @@ export function useLinking<ParamList extends ParamListBase>(
633
696
  const route = findFocusedRoute(stateForPath);
634
697
  const path = getPathForRoute(route, stateForPath);
635
698
 
636
- const pendingPopStateDelta = pendingPopStateDeltaRef.current;
699
+ const pendingPopStateDelta = pendingPopStateRef.current?.delta;
637
700
 
638
701
  previousStateRef.current = state;
639
- pendingPopStateDeltaRef.current = undefined;
702
+ pendingPopStateRef.current = undefined;
640
703
 
641
704
  // To detect the kind of state change, we need to:
642
705
  // - Find the common focused navigation state in previous and current state
643
706
  // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace
644
707
  // - If no common focused navigation state found, it's a replace
645
- const [previousFocusedState, focusedState] = findMatchingState(
646
- previousState,
647
- state
648
- );
708
+ const delta = getHistoryDelta(previousState, state);
649
709
 
650
710
  if (
651
- previousFocusedState &&
652
- focusedState &&
711
+ delta !== 'replace' &&
653
712
  // If the delta from `popstate` is unknown, we can only replace
654
713
  pendingPopStateDelta !== 'replace'
655
714
  ) {
656
715
  const historyDelta =
657
- getTotalHistoryLength(focusedState) -
658
- getTotalHistoryLength(previousFocusedState) -
716
+ delta -
659
717
  // Subtract the delta already applied by the browser to sync only the remaining changes
660
718
  (pendingPopStateDelta ?? 0);
661
719