@react-navigation/native 8.0.0-alpha.47 → 8.0.0-alpha.49

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.
@@ -1 +1 @@
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":[]}
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;AA+B5D;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
  */
@@ -116,7 +135,7 @@ const isPoppingLastEntry = (current, record) => {
116
135
  /**
117
136
  * Run async function in series as it's called.
118
137
  */
119
- export const series = cb => {
138
+ const series = cb => {
120
139
  let queue = Promise.resolve();
121
140
  const callback = () => {
122
141
  // eslint-disable-next-line promise/no-callback-in-promise
@@ -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":[]}
@@ -56,7 +56,9 @@ export function useScrollToTop(ref) {
56
56
  // This is necessary to know if preventDefault() has been called
57
57
  requestAnimationFrame(() => {
58
58
  const scrollable = getScrollableNode(ref);
59
- if (isFocused && isFirst && scrollable && !e.defaultPrevented) {
59
+ if (isFocused && isFirst && scrollable && e.data?.behavior?.scrollToTop !== false &&
60
+ // Native tabs scroll to top natively, so we don't need to handle it
61
+ e.data?.origin !== 'native' && !e.defaultPrevented) {
60
62
  if ('scrollToTop' in scrollable) {
61
63
  scrollable.scrollToTop();
62
64
  } else if ('scrollTo' in scrollable) {
@@ -1 +1 @@
1
- {"version":3,"names":["NavigationContext","useRoute","React","getScrollableNode","ref","current","getScrollResponder","useScrollToTop","navigation","use","route","undefined","Error","useEffect","tabNavigations","currentNavigation","getState","type","push","getParent","length","unsubscribers","map","tab","addListener","e","isFocused","firstRoute","routes","isFirst","includes","key","requestAnimationFrame","scrollable","defaultPrevented","scrollToTop","scrollTo","y","animated","scrollToOffset","offset","scrollResponderScrollTo","forEach","unsubscribe"],"sourceRoot":"../../src","sources":["useScrollToTop.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NavigationContext","useRoute","React","getScrollableNode","ref","current","getScrollResponder","useScrollToTop","navigation","use","route","undefined","Error","useEffect","tabNavigations","currentNavigation","getState","type","push","getParent","length","unsubscribers","map","tab","addListener","e","isFocused","firstRoute","routes","isFirst","includes","key","requestAnimationFrame","scrollable","data","behavior","scrollToTop","origin","defaultPrevented","scrollTo","y","animated","scrollToOffset","offset","scrollResponderScrollTo","forEach","unsubscribe"],"sourceRoot":"../../src","sources":["useScrollToTop.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ type LinkBaseProps = {
8
8
  disabled?: boolean | undefined;
9
9
  id?: string | undefined;
10
10
  testID?: string | undefined;
11
- onPress?: (e: PressEvent) => void;
11
+ onPress?: ((e: PressEvent) => void) | undefined;
12
12
  numberOfLines?: number | undefined;
13
13
  className?: React.AnchorHTMLAttributes<HTMLAnchorElement>['className'];
14
14
  style?: (React.CSSProperties & TextStyle) | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,mBAAgB,CAAC;AAE9D,KAAK,UAAU,GACX,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAC/C,qBAAqB,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,CAAC;IACvE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,IAAI,CACN,SAAS,EACP,WAAW,GACX,eAAe,GACf,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,WAAW,CACd,CAAC;AAEF,MAAM,MAAM,KAAK,CACf,SAAS,SAAS,EAAE,GAAG,aAAa,EACpC,SAAS,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAC1D,MAAM,SAAS,EACf,MAAM,CACP,IACC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAClB,SAAS,SAAS,EAAE,GAAG,aAAa,EACpC,SAAS,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAC1D,MAAM,SAAS,EACf,MAAM,CACP,EACD,EACA,EAAE,EAAE,MAAM,EACV,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,EAAE,EACF,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,YAAY,EAC7B,aAAa,EAAE,UAAU,EACzB,iBAAiB,EAAE,cAAc,EACjC,WAAW,EAAE,QAAQ,GACtB,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,qBAqF7B"}
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,mBAAgB,CAAC;AAE9D,KAAK,UAAU,GACX,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAC/C,qBAAqB,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,CAAC;IACvE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,IAAI,CACN,SAAS,EACP,WAAW,GACX,eAAe,GACf,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,WAAW,CACd,CAAC;AAEF,MAAM,MAAM,KAAK,CACf,SAAS,SAAS,EAAE,GAAG,aAAa,EACpC,SAAS,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAC1D,MAAM,SAAS,EACf,MAAM,CACP,IACC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAClB,SAAS,SAAS,EAAE,GAAG,aAAa,EACpC,SAAS,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAC1D,MAAM,SAAS,EACf,MAAM,CACP,EACD,EACA,EAAE,EAAE,MAAM,EACV,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,EAAE,EACF,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,YAAY,EAC7B,aAAa,EAAE,UAAU,EACzB,iBAAiB,EAAE,cAAc,EACjC,WAAW,EAAE,QAAQ,GACtB,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,qBAqF7B"}
@@ -2,6 +2,6 @@ import type { ParamListBase } from '@react-navigation/core';
2
2
  import * as React from 'react';
3
3
  import type { LinkingOptions } from './types.js';
4
4
  export declare const LinkingContext: React.Context<{
5
- options?: LinkingOptions<ParamListBase>;
5
+ options?: LinkingOptions<ParamListBase> | undefined;
6
6
  }>;
7
7
  //# sourceMappingURL=LinkingContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkingContext.d.ts","sourceRoot":"","sources":["../../../src/LinkingContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAI9C,eAAO,MAAM,cAAc;cACf,cAAc,CAAC,aAAa,CAAC;EAKvC,CAAC"}
1
+ {"version":3,"file":"LinkingContext.d.ts","sourceRoot":"","sources":["../../../src/LinkingContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAI9C,eAAO,MAAM,cAAc;cACf,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS;EAKnD,CAAC"}
@@ -23,14 +23,14 @@ type Props<ParamList extends {}> = NavigationContainerProps & {
23
23
  /**
24
24
  * Text direction of the components. Defaults to `'ltr'`.
25
25
  */
26
- direction?: LocaleDirection;
26
+ direction?: LocaleDirection | undefined;
27
27
  /**
28
28
  * Options for deep linking.
29
29
  *
30
30
  * Deep link handling is enabled when this prop is provided,
31
31
  * unless `linking.enabled` is `false`.
32
32
  */
33
- linking?: LinkingOptions<ParamList>;
33
+ linking?: LinkingOptions<ParamList> | undefined;
34
34
  /**
35
35
  * Persistor object to persist and restore navigation state.
36
36
  *
@@ -58,21 +58,21 @@ type Props<ParamList extends {}> = NavigationContainerProps & {
58
58
  * <NavigationContainer persistor={persistor}>...</NavigationContainer>
59
59
  * ```
60
60
  */
61
- persistor?: Persistor;
61
+ persistor?: Persistor | undefined;
62
62
  /**
63
63
  * Fallback element to render until initial state is resolved.
64
64
  * Used when deep link or persisted state is being restored asynchronously.
65
65
  *
66
66
  * Defaults to `null`.
67
67
  */
68
- fallback?: React.ReactElement | null;
68
+ fallback?: React.ReactElement | null | undefined;
69
69
  /**
70
70
  * Options to configure the document title on Web.
71
71
  *
72
72
  * Updating document title is handled by default,
73
73
  * unless `documentTitle.enabled` is `false`.
74
74
  */
75
- documentTitle?: DocumentTitleOptions;
75
+ documentTitle?: DocumentTitleOptions | undefined;
76
76
  /**
77
77
  * Ref object which refers to the navigation object containing helper methods.
78
78
  */
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/NavigationContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAGnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,SAAS,EACV,MAAM,YAAS,CAAC;AAMjB,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,yBAAyB,EAAE,OAAO,CACpC,MAAM,EACN;QACE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,SAAS,EAAE,GAAG,CACrB,CAAC,IAAI,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;SAClD,KAAK,IAAI,CACX,CAAC;KACH,CACF,CAAC;CACH;AAID,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACrC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;OAEG;IACH,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;CAChE,CAAC;AAaF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAAE,EACxE,SAA6B,EAC7B,KAAkB,EAClB,OAAO,EACP,SAAS,EACT,QAAe,EACf,aAAa,EACb,aAAa,EACb,GAAG,EACH,GAAG,IAAI,EACR,EAAE,KAAK,CAAC,SAAS,CAAC,qBA+LlB"}
1
+ {"version":3,"file":"NavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/NavigationContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAGnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,SAAS,EACV,MAAM,YAAS,CAAC;AAMjB,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,yBAAyB,EAAE,OAAO,CACpC,MAAM,EACN;QACE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,SAAS,EAAE,GAAG,CACrB,CAAC,IAAI,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;SAClD,KAAK,IAAI,CACX,CAAC;KACH,CACF,CAAC;CACH;AAID,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAChD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjD;;OAEG;IACH,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;CAChE,CAAC;AAaF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAAE,EACxE,SAA6B,EAC7B,KAAkB,EAClB,OAAO,EACP,SAAS,EACT,QAAe,EACf,aAAa,EACb,aAAa,EACb,GAAG,EACH,GAAG,IAAI,EACR,EAAE,KAAK,CAAC,SAAS,CAAC,qBA+LlB"}
@@ -6,7 +6,7 @@ type Props<ParamList extends {}> = Omit<React.ComponentProps<typeof NavigationCo
6
6
  /**
7
7
  * Options for deep linking.
8
8
  */
9
- linking?: Omit<LinkingOptions<ParamList>, 'config' | 'enabled'> & {
9
+ linking?: (Omit<LinkingOptions<ParamList>, 'config' | 'enabled'> & {
10
10
  /**
11
11
  * Whether deep link handling should be enabled.
12
12
  * Defaults to `auto`.
@@ -15,12 +15,12 @@ type Props<ParamList extends {}> = Omit<React.ComponentProps<typeof NavigationCo
15
15
  * The generated paths will be kebab-case versions of the screen names.
16
16
  * This can be overridden for specific screens by specifying `linking` for the screen.
17
17
  */
18
- enabled?: 'auto' | true | false;
18
+ enabled?: 'auto' | true | false | undefined;
19
19
  /**
20
20
  * Additional configuration
21
21
  */
22
- config?: Omit<NonNullable<LinkingOptions<ParamList>['config']>, 'screens'>;
23
- };
22
+ config?: Omit<NonNullable<LinkingOptions<ParamList>['config']>, 'screens'> | undefined;
23
+ }) | undefined;
24
24
  };
25
25
  /**
26
26
  * Create a navigation component from a static navigation config.
@@ -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,IAI5C,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,EACJ,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG;QACvD;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;QAC5C;;WAEG;QACH,MAAM,CAAC,EACH,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,GACjE,SAAS,CAAC;KACf,CAAC,GACF,SAAS,CAAC;CACf,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAI5C,SAAS,SAAS,EAAE,kCAIrC,KAAK,CAAC,SAAS,CAAC,uBAoDpB"}
@@ -15,7 +15,7 @@ export type CornerInsetProps = {
15
15
  *
16
16
  * @default true
17
17
  */
18
- adaptive?: boolean;
18
+ adaptive?: boolean | undefined;
19
19
  /**
20
20
  * Style object for the inset view.
21
21
  */
@@ -25,7 +25,7 @@ export type CornerInsetRef = {
25
25
  relayout(): void;
26
26
  };
27
27
  type Props = CornerInsetProps & {
28
- ref?: React.Ref<CornerInsetRef>;
28
+ ref?: React.Ref<CornerInsetRef> | undefined;
29
29
  };
30
30
  export declare function CornerInset({ ref }: Props): null;
31
31
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"CornerInset.d.ts","sourceRoot":"","sources":["../../../../src/native/CornerInset.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,SAAS,EAAE,UAAU,GAAG,YAAY,CAAC;IACrC;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,IAAI,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,KAAK,GAAG,gBAAgB,GAAG;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,QAUzC"}
1
+ {"version":3,"file":"CornerInset.d.ts","sourceRoot":"","sources":["../../../../src/native/CornerInset.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,SAAS,EAAE,UAAU,GAAG,YAAY,CAAC;IACrC;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,IAAI,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,KAAK,GAAG,gBAAgB,GAAG;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,QAUzC"}
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import type { CornerInsetProps, CornerInsetRef } from './CornerInset.js';
3
3
  type Props = CornerInsetProps & {
4
- ref?: React.Ref<CornerInsetRef>;
4
+ ref?: React.Ref<CornerInsetRef> | undefined;
5
5
  };
6
6
  export declare function CornerInset({ ref, ...rest }: Props): React.JSX.Element;
7
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"CornerInset.ios.d.ts","sourceRoot":"","sources":["../../../../src/native/CornerInset.ios.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAmB,CAAC;AAK1E,KAAK,KAAK,GAAG,gBAAgB,GAAG;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,qBAwElD"}
1
+ {"version":3,"file":"CornerInset.ios.d.ts","sourceRoot":"","sources":["../../../../src/native/CornerInset.ios.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAmB,CAAC;AAK1E,KAAK,KAAK,GAAG,gBAAgB,GAAG;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,qBAwElD"}
@@ -2,10 +2,6 @@ import { type NavigationContainerRef, type ParamListBase, type PartialState } fr
2
2
  import * as React from 'react';
3
3
  import type { LinkingOptions } from './types.js';
4
4
  import type { Thenable } from './useThenable.js';
5
- /**
6
- * Run async function in series as it's called.
7
- */
8
- export declare const series: (cb: () => Promise<void>) => () => void;
9
5
  export declare function useLinking<ParamList extends ParamListBase>(ref: React.RefObject<NavigationContainerRef<ParamList> | null>, { enabled, config, getStateFromPath, getPathFromState, getActionFromState, }: LinkingOptions<ParamList>): {
10
6
  getInitialState: () => Thenable<PartialState<Readonly<{
11
7
  key: string;
@@ -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;AAoN9C,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollToTop.d.ts","sourceRoot":"","sources":["../../../src/useScrollToTop.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,aAAa,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpE,KAAK,cAAc,GACf;IAAE,WAAW,IAAI,IAAI,CAAA;CAAE,GACvB;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,GAC1C;IAAE,cAAc,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,GACzE;IAAE,uBAAuB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,CAAC;AAE9D,KAAK,iBAAiB,GAClB;IAAE,kBAAkB,IAAI,KAAK,CAAC,SAAS,GAAG,cAAc,CAAA;CAAE,GAC1D,cAAc,GACd,IAAI,CAAC;AAwBT,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAuErE"}
1
+ {"version":3,"file":"useScrollToTop.d.ts","sourceRoot":"","sources":["../../../src/useScrollToTop.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,aAAa,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpE,KAAK,cAAc,GACf;IAAE,WAAW,IAAI,IAAI,CAAA;CAAE,GACvB;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,GAC1C;IAAE,cAAc,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,GACzE;IAAE,uBAAuB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,CAAC;AAE9D,KAAK,iBAAiB,GAClB;IAAE,kBAAkB,IAAI,KAAK,CAAC,SAAS,GAAG,cAAc,CAAA;CAAE,GAC1D,cAAc,GACd,IAAI,CAAC;AA8BT,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAgFrE"}
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.47",
4
+ "version": "8.0.0-alpha.49",
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.37",
65
+ "@react-navigation/core": "^8.0.0-alpha.39",
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": "e83cb9a88ab92d24caad272442c338de046cfac2"
135
+ "gitHead": "110f8e897f476977b7227e5f0326996106a742f0"
136
136
  }
package/src/Link.tsx CHANGED
@@ -13,7 +13,7 @@ type LinkBaseProps = {
13
13
  disabled?: boolean | undefined;
14
14
  id?: string | undefined;
15
15
  testID?: string | undefined;
16
- onPress?: (e: PressEvent) => void;
16
+ onPress?: ((e: PressEvent) => void) | undefined;
17
17
  numberOfLines?: number | undefined;
18
18
  className?: React.AnchorHTMLAttributes<HTMLAnchorElement>['className'];
19
19
  style?: (React.CSSProperties & TextStyle) | undefined;
@@ -6,7 +6,7 @@ import type { LinkingOptions } from './types';
6
6
  const MISSING_CONTEXT_ERROR = "Couldn't find a LinkingContext context.";
7
7
 
8
8
  export const LinkingContext = React.createContext<{
9
- options?: LinkingOptions<ParamListBase>;
9
+ options?: LinkingOptions<ParamListBase> | undefined;
10
10
  }>({
11
11
  get options(): any {
12
12
  throw new Error(MISSING_CONTEXT_ERROR);
@@ -62,14 +62,14 @@ type Props<ParamList extends {}> = NavigationContainerProps & {
62
62
  /**
63
63
  * Text direction of the components. Defaults to `'ltr'`.
64
64
  */
65
- direction?: LocaleDirection;
65
+ direction?: LocaleDirection | undefined;
66
66
  /**
67
67
  * Options for deep linking.
68
68
  *
69
69
  * Deep link handling is enabled when this prop is provided,
70
70
  * unless `linking.enabled` is `false`.
71
71
  */
72
- linking?: LinkingOptions<ParamList>;
72
+ linking?: LinkingOptions<ParamList> | undefined;
73
73
  /**
74
74
  * Persistor object to persist and restore navigation state.
75
75
  *
@@ -97,21 +97,21 @@ type Props<ParamList extends {}> = NavigationContainerProps & {
97
97
  * <NavigationContainer persistor={persistor}>...</NavigationContainer>
98
98
  * ```
99
99
  */
100
- persistor?: Persistor;
100
+ persistor?: Persistor | undefined;
101
101
  /**
102
102
  * Fallback element to render until initial state is resolved.
103
103
  * Used when deep link or persisted state is being restored asynchronously.
104
104
  *
105
105
  * Defaults to `null`.
106
106
  */
107
- fallback?: React.ReactElement | null;
107
+ fallback?: React.ReactElement | null | undefined;
108
108
  /**
109
109
  * Options to configure the document title on Web.
110
110
  *
111
111
  * Updating document title is handled by default,
112
112
  * unless `documentTitle.enabled` is `false`.
113
113
  */
114
- documentTitle?: DocumentTitleOptions;
114
+ documentTitle?: DocumentTitleOptions | undefined;
115
115
  /**
116
116
  * Ref object which refers to the navigation object containing helper methods.
117
117
  */
@@ -15,21 +15,25 @@ type Props<ParamList extends {}> = Omit<
15
15
  /**
16
16
  * Options for deep linking.
17
17
  */
18
- linking?: Omit<LinkingOptions<ParamList>, 'config' | 'enabled'> & {
19
- /**
20
- * Whether deep link handling should be enabled.
21
- * Defaults to `auto`.
22
- *
23
- * When set to 'auto', all leaf screens will get autogenerated paths.
24
- * The generated paths will be kebab-case versions of the screen names.
25
- * This can be overridden for specific screens by specifying `linking` for the screen.
26
- */
27
- enabled?: 'auto' | true | false;
28
- /**
29
- * Additional configuration
30
- */
31
- config?: Omit<NonNullable<LinkingOptions<ParamList>['config']>, 'screens'>;
32
- };
18
+ linking?:
19
+ | (Omit<LinkingOptions<ParamList>, 'config' | 'enabled'> & {
20
+ /**
21
+ * Whether deep link handling should be enabled.
22
+ * Defaults to `auto`.
23
+ *
24
+ * When set to 'auto', all leaf screens will get autogenerated paths.
25
+ * The generated paths will be kebab-case versions of the screen names.
26
+ * This can be overridden for specific screens by specifying `linking` for the screen.
27
+ */
28
+ enabled?: 'auto' | true | false | undefined;
29
+ /**
30
+ * Additional configuration
31
+ */
32
+ config?:
33
+ | Omit<NonNullable<LinkingOptions<ParamList>['config']>, 'screens'>
34
+ | undefined;
35
+ })
36
+ | undefined;
33
37
  };
34
38
 
35
39
  /**
@@ -9,7 +9,7 @@ import ReactNavigationCornerInsetViewNativeComponent, {
9
9
  } from './ReactNavigationCornerInsetViewNativeComponent';
10
10
 
11
11
  type Props = CornerInsetProps & {
12
- ref?: React.Ref<CornerInsetRef>;
12
+ ref?: React.Ref<CornerInsetRef> | undefined;
13
13
  };
14
14
 
15
15
  export function CornerInset({ ref, ...rest }: Props) {
@@ -16,7 +16,7 @@ export type CornerInsetProps = {
16
16
  *
17
17
  * @default true
18
18
  */
19
- adaptive?: boolean;
19
+ adaptive?: boolean | undefined;
20
20
  /**
21
21
  * Style object for the inset view.
22
22
  */
@@ -28,7 +28,7 @@ export type CornerInsetRef = {
28
28
  };
29
29
 
30
30
  type Props = CornerInsetProps & {
31
- ref?: React.Ref<CornerInsetRef>;
31
+ ref?: React.Ref<CornerInsetRef> | undefined;
32
32
  };
33
33
 
34
34
  export function CornerInset({ ref }: Props) {
@@ -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
  */
@@ -181,7 +213,7 @@ const isPoppingLastEntry = (
181
213
  /**
182
214
  * Run async function in series as it's called.
183
215
  */
184
- export const series = (cb: () => Promise<void>) => {
216
+ const series = (cb: () => Promise<void>) => {
185
217
  let queue = Promise.resolve();
186
218
 
187
219
  const callback = () => {
@@ -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
 
@@ -20,6 +20,12 @@ type ScrollableWrapper =
20
20
  | ScrollableView
21
21
  | null;
22
22
 
23
+ type TabPressEventArg = EventArg<
24
+ 'tabPress',
25
+ true,
26
+ { origin?: string; behavior?: { scrollToTop?: boolean } } | undefined
27
+ >;
28
+
23
29
  function getScrollableNode(ref: React.RefObject<ScrollableWrapper>) {
24
30
  if (ref.current == null) {
25
31
  return null;
@@ -54,6 +60,7 @@ export function useScrollToTop(ref: React.RefObject<ScrollableWrapper>) {
54
60
 
55
61
  React.useEffect(() => {
56
62
  const tabNavigations: NavigationProp<ParamListBase>[] = [];
63
+
57
64
  let currentNavigation: NavigationProp<ParamListBase> | undefined =
58
65
  navigation;
59
66
 
@@ -77,7 +84,7 @@ export function useScrollToTop(ref: React.RefObject<ScrollableWrapper>) {
77
84
  // in addition, there are multiple tab implementations
78
85
  // @ts-expect-error the `tabPress` event is only available when navigation type is tab
79
86
  'tabPress',
80
- (e: EventArg<'tabPress', true>) => {
87
+ (e: TabPressEventArg) => {
81
88
  // We should scroll to top only when the screen is focused
82
89
  const isFocused = navigation.isFocused();
83
90
 
@@ -93,7 +100,15 @@ export function useScrollToTop(ref: React.RefObject<ScrollableWrapper>) {
93
100
  requestAnimationFrame(() => {
94
101
  const scrollable = getScrollableNode(ref) as ScrollableWrapper;
95
102
 
96
- if (isFocused && isFirst && scrollable && !e.defaultPrevented) {
103
+ if (
104
+ isFocused &&
105
+ isFirst &&
106
+ scrollable &&
107
+ e.data?.behavior?.scrollToTop !== false &&
108
+ // Native tabs scroll to top natively, so we don't need to handle it
109
+ e.data?.origin !== 'native' &&
110
+ !e.defaultPrevented
111
+ ) {
97
112
  if ('scrollToTop' in scrollable) {
98
113
  scrollable.scrollToTop();
99
114
  } else if ('scrollTo' in scrollable) {