@react-navigation/native 7.2.1 → 7.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/theming/DarkTheme.js.map +1 -1
- package/lib/module/theming/DefaultTheme.js.map +1 -1
- package/lib/module/theming/fonts.js.map +1 -1
- package/lib/module/useLinking.js +37 -6
- package/lib/module/useLinking.js.map +1 -1
- package/lib/typescript/src/theming/DarkTheme.d.ts +1 -1
- package/lib/typescript/src/theming/DarkTheme.d.ts.map +1 -1
- package/lib/typescript/src/theming/DefaultTheme.d.ts +1 -1
- package/lib/typescript/src/theming/DefaultTheme.d.ts.map +1 -1
- package/lib/typescript/src/theming/fonts.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +2 -5
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useLinking.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/theming/DarkTheme.tsx +2 -1
- package/src/theming/DefaultTheme.tsx +2 -1
- package/src/theming/fonts.tsx +1 -2
- package/src/types.tsx +2 -7
- package/src/useLinking.tsx +58 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fonts","DarkTheme","dark","colors","primary","background","card","text","border","notification"],"sourceRoot":"../../../src","sources":["theming/DarkTheme.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["fonts","DarkTheme","dark","colors","primary","background","card","text","border","notification"],"sourceRoot":"../../../src","sources":["theming/DarkTheme.tsx"],"mappings":";;AAEA,SAASA,KAAK,QAAQ,YAAS;AAE/B,OAAO,MAAMC,SAAgB,GAAG;EAC9BC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE;IACNC,OAAO,EAAE,mBAAmB;IAC5BC,UAAU,EAAE,cAAc;IAC1BC,IAAI,EAAE,iBAAiB;IACvBC,IAAI,EAAE,oBAAoB;IAC1BC,MAAM,EAAE,iBAAiB;IACzBC,YAAY,EAAE;EAChB,CAAC;EACDT;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fonts","DefaultTheme","dark","colors","primary","background","card","text","border","notification"],"sourceRoot":"../../../src","sources":["theming/DefaultTheme.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["fonts","DefaultTheme","dark","colors","primary","background","card","text","border","notification"],"sourceRoot":"../../../src","sources":["theming/DefaultTheme.tsx"],"mappings":";;AAEA,SAASA,KAAK,QAAQ,YAAS;AAE/B,OAAO,MAAMC,YAAmB,GAAG;EACjCC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE;IACNC,OAAO,EAAE,kBAAkB;IAC3BC,UAAU,EAAE,oBAAoB;IAChCC,IAAI,EAAE,oBAAoB;IAC1BC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE,oBAAoB;IAC5BC,YAAY,EAAE;EAChB,CAAC;EACDT;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","WEB_FONT_STACK","fonts","select","web","regular","fontFamily","fontWeight","medium","bold","heavy","ios","default"],"sourceRoot":"../../../src","sources":["theming/fonts.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["Platform","WEB_FONT_STACK","fonts","select","web","regular","fontFamily","fontWeight","medium","bold","heavy","ios","default"],"sourceRoot":"../../../src","sources":["theming/fonts.tsx"],"mappings":";;AACA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,cAAc,GAClB,uHAAuH;AAEzH,OAAO,MAAMC,KAAK,GAAGF,QAAQ,CAACG,MAAM,CAAC;EACnCC,GAAG,EAAE;IACHC,OAAO,EAAE;MACPC,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd;EACF,CAAC;EACDI,GAAG,EAAE;IACHN,OAAO,EAAE;MACPC,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd;EACF,CAAC;EACDK,OAAO,EAAE;IACPP,OAAO,EAAE;MACPC,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAE,mBAAmB;MAC/BC,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd;EACF;AACF,CAAmD,CAAC","ignoreList":[]}
|
package/lib/module/useLinking.js
CHANGED
|
@@ -5,6 +5,13 @@ import isEqual from 'fast-deep-equal';
|
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { createMemoryHistory } from "./createMemoryHistory.js";
|
|
7
7
|
import { ServerContext } from "./ServerContext.js";
|
|
8
|
+
const getRoutesUntilIndex = state => state.routes.slice(0, state.index + 1);
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Calculate history length from navigator history or active routes.
|
|
12
|
+
*/
|
|
13
|
+
const getHistoryLength = state => state.history ? state.history.length : getRoutesUntilIndex(state).length;
|
|
14
|
+
|
|
8
15
|
/**
|
|
9
16
|
* Find the matching navigation state that changed between 2 navigation states
|
|
10
17
|
* e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state
|
|
@@ -13,10 +20,8 @@ const findMatchingState = (a, b) => {
|
|
|
13
20
|
if (a === undefined || b === undefined || a.key !== b.key) {
|
|
14
21
|
return [undefined, undefined];
|
|
15
22
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const aHistoryLength = a.history ? a.history.length : a.routes.length;
|
|
19
|
-
const bHistoryLength = b.history ? b.history.length : b.routes.length;
|
|
23
|
+
const aHistoryLength = getHistoryLength(a);
|
|
24
|
+
const bHistoryLength = getHistoryLength(b);
|
|
20
25
|
const aRoute = a.routes[a.index];
|
|
21
26
|
const bRoute = b.routes[b.index];
|
|
22
27
|
const aChildState = aRoute.state;
|
|
@@ -33,6 +38,21 @@ const findMatchingState = (a, b) => {
|
|
|
33
38
|
return findMatchingState(aChildState, bChildState);
|
|
34
39
|
};
|
|
35
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Check if the state change is popping the last route or history entry.
|
|
43
|
+
*/
|
|
44
|
+
const isPoppingLastEntry = (current, record) => {
|
|
45
|
+
if (current.history && record.history) {
|
|
46
|
+
return current.history.length === record.history.length + 1;
|
|
47
|
+
}
|
|
48
|
+
const currentRoutes = getRoutesUntilIndex(current);
|
|
49
|
+
const recordRoutes = getRoutesUntilIndex(record);
|
|
50
|
+
if (currentRoutes.length === recordRoutes.length + 1) {
|
|
51
|
+
return recordRoutes.every((route, i) => route.key === currentRoutes[i].key);
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
};
|
|
55
|
+
|
|
36
56
|
/**
|
|
37
57
|
* Run async function in series as it's called.
|
|
38
58
|
*/
|
|
@@ -146,7 +166,16 @@ export function useLinking(ref, {
|
|
|
146
166
|
// Otherwise, we'll handle it like a regular deep link
|
|
147
167
|
const record = history.get(index);
|
|
148
168
|
if (record?.path === path && record?.state) {
|
|
149
|
-
navigation.
|
|
169
|
+
const currentState = navigation.getRootState();
|
|
170
|
+
const [currentFocused, recordFocused] = findMatchingState(currentState, record.state);
|
|
171
|
+
if (previousIndex - index === 1 && currentFocused && recordFocused && isPoppingLastEntry(currentFocused, recordFocused)) {
|
|
172
|
+
// If we detect that the state change is popping the last entry
|
|
173
|
+
// Dispatch a back action instead of resetting to the state
|
|
174
|
+
// This makes sure changes to history state since the entry was added don't get lost
|
|
175
|
+
navigation.goBack();
|
|
176
|
+
} else {
|
|
177
|
+
navigation.resetRoot(record.state);
|
|
178
|
+
}
|
|
150
179
|
return;
|
|
151
180
|
}
|
|
152
181
|
const state = getStateFromPathRef.current(path, configRef.current);
|
|
@@ -226,6 +255,7 @@ export function useLinking(ref, {
|
|
|
226
255
|
path,
|
|
227
256
|
state
|
|
228
257
|
});
|
|
258
|
+
previousIndexRef.current = history.index;
|
|
229
259
|
}
|
|
230
260
|
}
|
|
231
261
|
const onStateChange = async () => {
|
|
@@ -255,7 +285,7 @@ export function useLinking(ref, {
|
|
|
255
285
|
// We should only handle push/pop if path changed from what was in last `popstate`
|
|
256
286
|
// Otherwise it's likely a change triggered by `popstate`
|
|
257
287
|
path !== pendingPath) {
|
|
258
|
-
const historyDelta = (focusedState
|
|
288
|
+
const historyDelta = getHistoryLength(focusedState) - getHistoryLength(previousFocusedState);
|
|
259
289
|
if (historyDelta > 0) {
|
|
260
290
|
// If history length is increased, we should pushState
|
|
261
291
|
// Note that path might not actually change here, for example, drawer open should pushState
|
|
@@ -306,6 +336,7 @@ export function useLinking(ref, {
|
|
|
306
336
|
state
|
|
307
337
|
});
|
|
308
338
|
}
|
|
339
|
+
previousIndexRef.current = history.index;
|
|
309
340
|
};
|
|
310
341
|
|
|
311
342
|
// We debounce onStateChange coz we don't want multiple state changes to be handled at one time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","findMatchingState","a","b","undefined","key","aHistoryLength","history","length","routes","bHistoryLength","aRoute","index","bRoute","aChildState","state","bChildState","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","useLinking","ref","enabled","config","onUnhandledLinking","independent","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","current","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","r","routeNames","includes","name","server","useContext","getInitialState","value","location","window","path","pathname","search","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","record","get","resetRoot","action","dispatch","e","warn","message","getPathForRoute","route","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getRoutesUntilIndex","state","routes","slice","index","getHistoryLength","history","length","findMatchingState","a","b","undefined","key","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","isPoppingLastEntry","current","record","currentRoutes","recordRoutes","every","route","i","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","useLinking","ref","enabled","config","onUnhandledLinking","independent","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","r","routeNames","includes","name","server","useContext","getInitialState","value","location","window","path","pathname","search","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","get","currentState","currentFocused","recordFocused","goBack","resetRoot","action","dispatch","e","warn","message","getPathForRoute","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DarkTheme.d.ts","sourceRoot":"","sources":["../../../../src/theming/DarkTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DarkTheme.d.ts","sourceRoot":"","sources":["../../../../src/theming/DarkTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAIpD,eAAO,MAAM,SAAS,EAAE,KAWvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultTheme.d.ts","sourceRoot":"","sources":["../../../../src/theming/DefaultTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DefaultTheme.d.ts","sourceRoot":"","sources":["../../../../src/theming/DefaultTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAIpD,eAAO,MAAM,YAAY,EAAE,KAW1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../../../src/theming/fonts.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../../../src/theming/fonts.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDkC,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault, PathConfigMap, Route } from '@react-navigation/core';
|
|
2
|
-
declare
|
|
3
|
-
|
|
4
|
-
interface Theme extends NativeTheme {
|
|
5
|
-
}
|
|
2
|
+
declare module '@react-navigation/core' {
|
|
3
|
+
interface Theme extends NativeTheme {
|
|
6
4
|
}
|
|
7
5
|
}
|
|
8
6
|
type FontStyle = {
|
|
@@ -26,7 +24,6 @@ interface NativeTheme {
|
|
|
26
24
|
heavy: FontStyle;
|
|
27
25
|
};
|
|
28
26
|
}
|
|
29
|
-
export type Theme = NativeTheme;
|
|
30
27
|
export type LocaleDirection = 'ltr' | 'rtl';
|
|
31
28
|
export type LinkingOptions<ParamList extends {}> = {
|
|
32
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,IAAI,yBAAyB,EAC/C,gBAAgB,IAAI,uBAAuB,EAC3C,gBAAgB,IAAI,uBAAuB,EAC3C,aAAa,EACb,KAAK,EACN,MAAM,wBAAwB,CAAC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,IAAI,yBAAyB,EAC/C,gBAAgB,IAAI,uBAAuB,EAC3C,gBAAgB,IAAI,uBAAuB,EAC3C,aAAa,EACb,KAAK,EACN,MAAM,wBAAwB,CAAC;AAEhC,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,KAAM,SAAQ,WAAW;KAAG;CACvC;AAED,KAAK,SAAS,GAAG;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EACN,QAAQ,GACR,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;CACX,CAAC;AAEF,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,SAAS,CAAC;QACnB,MAAM,EAAE,SAAS,CAAC;QAClB,IAAI,EAAE,SAAS,CAAC;QAChB,KAAK,EAAE,SAAS,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5C,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,EAAE,IAAI;IACjD;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE;QACP;;;;;WAKG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;QAClC;;WAEG;QACH,gBAAgB,CAAC,EAAE,MAAM,SAAS,CAAC;KACpC,CAAC;IACF;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,MACZ,MAAM,GACN,IAAI,GACJ,SAAS,GACT,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACvC;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,EAAE,CACV,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,KAC5B,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IACrC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IAClD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IAClD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,yBAAyB,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,CACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACxC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,KAC7B,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;CACtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,IAAI,uBAAuB,EAC3C,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,IAAI,uBAAuB,EAC3C,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAuE9D;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAC;AAIF,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAE7C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO,EACV,kBAAkB,EAAE,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI;2BAmGhD,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;EAqR1D"}
|
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": "7.2.
|
|
4
|
+
"version": "7.2.3",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
7
7
|
"react-navigation",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"clean": "del lib"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@react-navigation/core": "^7.17.
|
|
45
|
+
"@react-navigation/core": "^7.17.3",
|
|
46
46
|
"escape-string-regexp": "^4.0.0",
|
|
47
47
|
"fast-deep-equal": "^3.1.3",
|
|
48
48
|
"nanoid": "^3.3.11",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
]
|
|
84
84
|
]
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "e8a05bbfaf33a2fd0c6b67e9a186b823d697d323"
|
|
87
87
|
}
|
package/src/theming/fonts.tsx
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import type { Theme } from '@react-navigation/core';
|
|
1
2
|
import { Platform } from 'react-native';
|
|
2
3
|
|
|
3
|
-
import type { Theme } from '../types';
|
|
4
|
-
|
|
5
4
|
const WEB_FONT_STACK =
|
|
6
5
|
'system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';
|
|
7
6
|
|
package/src/types.tsx
CHANGED
|
@@ -6,11 +6,8 @@ import type {
|
|
|
6
6
|
Route,
|
|
7
7
|
} from '@react-navigation/core';
|
|
8
8
|
|
|
9
|
-
declare
|
|
10
|
-
|
|
11
|
-
namespace ReactNavigation {
|
|
12
|
-
interface Theme extends NativeTheme {}
|
|
13
|
-
}
|
|
9
|
+
declare module '@react-navigation/core' {
|
|
10
|
+
interface Theme extends NativeTheme {}
|
|
14
11
|
}
|
|
15
12
|
|
|
16
13
|
type FontStyle = {
|
|
@@ -47,8 +44,6 @@ interface NativeTheme {
|
|
|
47
44
|
};
|
|
48
45
|
}
|
|
49
46
|
|
|
50
|
-
export type Theme = NativeTheme;
|
|
51
|
-
|
|
52
47
|
export type LocaleDirection = 'ltr' | 'rtl';
|
|
53
48
|
|
|
54
49
|
export type LinkingOptions<ParamList extends {}> = {
|
package/src/useLinking.tsx
CHANGED
|
@@ -17,6 +17,15 @@ import type { LinkingOptions } from './types';
|
|
|
17
17
|
|
|
18
18
|
type ResultState = ReturnType<typeof getStateFromPathDefault>;
|
|
19
19
|
|
|
20
|
+
const getRoutesUntilIndex = (state: NavigationState) =>
|
|
21
|
+
state.routes.slice(0, state.index + 1);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Calculate history length from navigator history or active routes.
|
|
25
|
+
*/
|
|
26
|
+
const getHistoryLength = (state: NavigationState): number =>
|
|
27
|
+
state.history ? state.history.length : getRoutesUntilIndex(state).length;
|
|
28
|
+
|
|
20
29
|
/**
|
|
21
30
|
* Find the matching navigation state that changed between 2 navigation states
|
|
22
31
|
* e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state
|
|
@@ -29,9 +38,8 @@ const findMatchingState = <T extends NavigationState>(
|
|
|
29
38
|
return [undefined, undefined];
|
|
30
39
|
}
|
|
31
40
|
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
const bHistoryLength = b.history ? b.history.length : b.routes.length;
|
|
41
|
+
const aHistoryLength = getHistoryLength(a);
|
|
42
|
+
const bHistoryLength = getHistoryLength(b);
|
|
35
43
|
|
|
36
44
|
const aRoute = a.routes[a.index];
|
|
37
45
|
const bRoute = b.routes[b.index];
|
|
@@ -57,6 +65,27 @@ const findMatchingState = <T extends NavigationState>(
|
|
|
57
65
|
return findMatchingState(aChildState, bChildState);
|
|
58
66
|
};
|
|
59
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Check if the state change is popping the last route or history entry.
|
|
70
|
+
*/
|
|
71
|
+
const isPoppingLastEntry = (
|
|
72
|
+
current: NavigationState,
|
|
73
|
+
record: NavigationState
|
|
74
|
+
): boolean => {
|
|
75
|
+
if (current.history && record.history) {
|
|
76
|
+
return current.history.length === record.history.length + 1;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const currentRoutes = getRoutesUntilIndex(current);
|
|
80
|
+
const recordRoutes = getRoutesUntilIndex(record);
|
|
81
|
+
|
|
82
|
+
if (currentRoutes.length === recordRoutes.length + 1) {
|
|
83
|
+
return recordRoutes.every((route, i) => route.key === currentRoutes[i].key);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return false;
|
|
87
|
+
};
|
|
88
|
+
|
|
60
89
|
/**
|
|
61
90
|
* Run async function in series as it's called.
|
|
62
91
|
*/
|
|
@@ -215,7 +244,27 @@ export function useLinking(
|
|
|
215
244
|
const record = history.get(index);
|
|
216
245
|
|
|
217
246
|
if (record?.path === path && record?.state) {
|
|
218
|
-
navigation.
|
|
247
|
+
const currentState = navigation.getRootState();
|
|
248
|
+
|
|
249
|
+
const [currentFocused, recordFocused] = findMatchingState(
|
|
250
|
+
currentState,
|
|
251
|
+
record.state
|
|
252
|
+
);
|
|
253
|
+
|
|
254
|
+
if (
|
|
255
|
+
previousIndex - index === 1 &&
|
|
256
|
+
currentFocused &&
|
|
257
|
+
recordFocused &&
|
|
258
|
+
isPoppingLastEntry(currentFocused, recordFocused)
|
|
259
|
+
) {
|
|
260
|
+
// If we detect that the state change is popping the last entry
|
|
261
|
+
// Dispatch a back action instead of resetting to the state
|
|
262
|
+
// This makes sure changes to history state since the entry was added don't get lost
|
|
263
|
+
navigation.goBack();
|
|
264
|
+
} else {
|
|
265
|
+
navigation.resetRoot(record.state);
|
|
266
|
+
}
|
|
267
|
+
|
|
219
268
|
return;
|
|
220
269
|
}
|
|
221
270
|
|
|
@@ -339,6 +388,7 @@ export function useLinking(
|
|
|
339
388
|
}
|
|
340
389
|
|
|
341
390
|
history.replace({ path, state });
|
|
391
|
+
previousIndexRef.current = history.index;
|
|
342
392
|
}
|
|
343
393
|
}
|
|
344
394
|
|
|
@@ -381,12 +431,8 @@ export function useLinking(
|
|
|
381
431
|
path !== pendingPath
|
|
382
432
|
) {
|
|
383
433
|
const historyDelta =
|
|
384
|
-
(focusedState
|
|
385
|
-
|
|
386
|
-
: focusedState.routes.length) -
|
|
387
|
-
(previousFocusedState.history
|
|
388
|
-
? previousFocusedState.history.length
|
|
389
|
-
: previousFocusedState.routes.length);
|
|
434
|
+
getHistoryLength(focusedState) -
|
|
435
|
+
getHistoryLength(previousFocusedState);
|
|
390
436
|
|
|
391
437
|
if (historyDelta > 0) {
|
|
392
438
|
// If history length is increased, we should pushState
|
|
@@ -428,6 +474,8 @@ export function useLinking(
|
|
|
428
474
|
// This would happen if the user did a reset/conditionally changed navigators
|
|
429
475
|
history.replace({ path, state });
|
|
430
476
|
}
|
|
477
|
+
|
|
478
|
+
previousIndexRef.current = history.index;
|
|
431
479
|
};
|
|
432
480
|
|
|
433
481
|
// We debounce onStateChange coz we don't want multiple state changes to be handled at one time
|