@react-navigation/native 7.2.2 → 7.2.4
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/createMemoryHistory.js +10 -5
- package/lib/module/createMemoryHistory.js.map +1 -1
- package/lib/module/extractPathFromURL.js +3 -2
- package/lib/module/extractPathFromURL.js.map +1 -1
- 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 +57 -9
- package/lib/module/useLinking.js.map +1 -1
- package/lib/module/useLinking.native.js +8 -1
- package/lib/module/useLinking.native.js.map +1 -1
- package/lib/typescript/src/createMemoryHistory.d.ts.map +1 -1
- package/lib/typescript/src/extractPathFromURL.d.ts.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/lib/typescript/src/useLinking.native.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/createMemoryHistory.tsx +11 -5
- package/src/extractPathFromURL.tsx +7 -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.native.tsx +9 -3
- package/src/useLinking.tsx +86 -16
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { nanoid } from 'nanoid/non-secure';
|
|
4
|
+
const getPathWithoutHash = path => path.split('#')[0];
|
|
4
5
|
export function createMemoryHistory() {
|
|
5
6
|
let index = 0;
|
|
6
7
|
let items = [];
|
|
@@ -34,10 +35,12 @@ export function createMemoryHistory() {
|
|
|
34
35
|
backIndex({
|
|
35
36
|
path
|
|
36
37
|
}) {
|
|
38
|
+
const pathWithoutHash = getPathWithoutHash(path);
|
|
39
|
+
|
|
37
40
|
// We need to find the index from the element before current to get closest path to go back to
|
|
38
41
|
for (let i = index - 1; i >= 0; i--) {
|
|
39
42
|
const item = items[i];
|
|
40
|
-
if (item.path ===
|
|
43
|
+
if (item.path === pathWithoutHash) {
|
|
41
44
|
return i;
|
|
42
45
|
}
|
|
43
46
|
}
|
|
@@ -49,12 +52,13 @@ export function createMemoryHistory() {
|
|
|
49
52
|
}) {
|
|
50
53
|
interrupt();
|
|
51
54
|
const id = nanoid();
|
|
55
|
+
const pathWithoutHash = getPathWithoutHash(path);
|
|
52
56
|
|
|
53
57
|
// When a new entry is pushed, all the existing entries after index will be inaccessible
|
|
54
58
|
// So we remove any existing entries after the current index to clean them up
|
|
55
59
|
items = items.slice(0, index + 1);
|
|
56
60
|
items.push({
|
|
57
|
-
path,
|
|
61
|
+
path: pathWithoutHash,
|
|
58
62
|
state,
|
|
59
63
|
id
|
|
60
64
|
});
|
|
@@ -74,6 +78,7 @@ export function createMemoryHistory() {
|
|
|
74
78
|
}) {
|
|
75
79
|
interrupt();
|
|
76
80
|
const id = window.history.state?.id ?? nanoid();
|
|
81
|
+
const pathWithoutHash = getPathWithoutHash(path);
|
|
77
82
|
|
|
78
83
|
// Need to keep the hash part of the path if there was no previous history entry
|
|
79
84
|
// or the previous history entry had the same path
|
|
@@ -89,17 +94,17 @@ export function createMemoryHistory() {
|
|
|
89
94
|
|
|
90
95
|
pathWithHash = pathWithHash + hash;
|
|
91
96
|
items = [{
|
|
92
|
-
path:
|
|
97
|
+
path: pathWithoutHash,
|
|
93
98
|
state,
|
|
94
99
|
id
|
|
95
100
|
}];
|
|
96
101
|
index = 0;
|
|
97
102
|
} else {
|
|
98
|
-
if (items[index].path ===
|
|
103
|
+
if (items[index].path === pathWithoutHash) {
|
|
99
104
|
pathWithHash = pathWithHash + hash;
|
|
100
105
|
}
|
|
101
106
|
items[index] = {
|
|
102
|
-
path,
|
|
107
|
+
path: pathWithoutHash,
|
|
103
108
|
state,
|
|
104
109
|
id
|
|
105
110
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","createMemoryHistory","index","items","pending","interrupt","forEach","it","cb","history","id","window","state","findIndex","item","get","backIndex","
|
|
1
|
+
{"version":3,"names":["nanoid","getPathWithoutHash","path","split","createMemoryHistory","index","items","pending","interrupt","forEach","it","cb","history","id","window","state","findIndex","item","get","backIndex","pathWithoutHash","i","push","slice","length","pushState","replace","pathWithHash","hash","includes","location","replaceState","go","n","nextIndex","lastItemIndex","Promise","resolve","reject","done","interrupted","clearTimeout","timer","Error","title","document","ref","setTimeout","foundIndex","splice","onPopState","last","pop","removeEventListener","addEventListener","listen","listener"],"sourceRoot":"../../src","sources":["createMemoryHistory.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,11 +7,12 @@ export function extractPathFromURL(prefixes, url) {
|
|
|
7
7
|
const host = prefix.replace(new RegExp(`^${escapeStringRegexp(protocol)}`), '').replace(/\/+/g, '/') // Replace multiple slash (//) with single ones
|
|
8
8
|
.replace(/^\//, ''); // Remove extra leading slash
|
|
9
9
|
|
|
10
|
-
const prefixRegex = new RegExp(`^${escapeStringRegexp(protocol)}(/)*${host.split('.').map(it => it === '*' ? '[
|
|
10
|
+
const prefixRegex = new RegExp(`^${escapeStringRegexp(protocol)}(/)*${host.split('.').map(it => it === '*' ? '[^/?#]+' : escapeStringRegexp(it)).join('\\.')}${host === '' || host.endsWith('/') ? '' : '(?=$|[/?#])'}`);
|
|
11
11
|
const [originAndPath, ...searchParams] = url.split('?');
|
|
12
12
|
const normalizedURL = originAndPath.replace(/\/+/g, '/').concat(searchParams.length ? `?${searchParams.join('?')}` : '');
|
|
13
13
|
if (prefixRegex.test(normalizedURL)) {
|
|
14
|
-
|
|
14
|
+
const result = normalizedURL.replace(prefixRegex, '');
|
|
15
|
+
return result.startsWith('?') || result.startsWith('#') ? `/${result}` : result;
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["escapeStringRegexp","extractPathFromURL","prefixes","url","prefix","protocol","match","host","replace","RegExp","prefixRegex","split","map","it","join","originAndPath","searchParams","normalizedURL","concat","length","test","undefined"],"sourceRoot":"../../src","sources":["extractPathFromURL.tsx"],"mappings":";;AAAA,OAAOA,kBAAkB,MAAM,sBAAsB;AAErD,OAAO,SAASC,kBAAkBA,CAACC,QAAkB,EAAEC,GAAW,EAAE;EAClE,KAAK,MAAMC,MAAM,IAAIF,QAAQ,EAAE;IAC7B,MAAMG,QAAQ,GAAGD,MAAM,CAACE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACnD,MAAMC,IAAI,GAAGH,MAAM,CAChBI,OAAO,CAAC,IAAIC,MAAM,CAAC,IAAIT,kBAAkB,CAACK,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3DG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAA,CACrBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;;IAEvB,MAAME,WAAW,GAAG,IAAID,MAAM,CAC5B,IAAIT,kBAAkB,CAACK,QAAQ,CAAC,OAAOE,IAAI,CACxCI,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,EAAE,IAAMA,EAAE,KAAK,GAAG,GAAG,
|
|
1
|
+
{"version":3,"names":["escapeStringRegexp","extractPathFromURL","prefixes","url","prefix","protocol","match","host","replace","RegExp","prefixRegex","split","map","it","join","endsWith","originAndPath","searchParams","normalizedURL","concat","length","test","result","startsWith","undefined"],"sourceRoot":"../../src","sources":["extractPathFromURL.tsx"],"mappings":";;AAAA,OAAOA,kBAAkB,MAAM,sBAAsB;AAErD,OAAO,SAASC,kBAAkBA,CAACC,QAAkB,EAAEC,GAAW,EAAE;EAClE,KAAK,MAAMC,MAAM,IAAIF,QAAQ,EAAE;IAC7B,MAAMG,QAAQ,GAAGD,MAAM,CAACE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACnD,MAAMC,IAAI,GAAGH,MAAM,CAChBI,OAAO,CAAC,IAAIC,MAAM,CAAC,IAAIT,kBAAkB,CAACK,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3DG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAA,CACrBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;;IAEvB,MAAME,WAAW,GAAG,IAAID,MAAM,CAC5B,IAAIT,kBAAkB,CAACK,QAAQ,CAAC,OAAOE,IAAI,CACxCI,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,EAAE,IAAMA,EAAE,KAAK,GAAG,GAAG,SAAS,GAAGb,kBAAkB,CAACa,EAAE,CAAE,CAAC,CAC9DC,IAAI,CAAC,KAAK,CAAC,GAAGP,IAAI,KAAK,EAAE,IAAIA,IAAI,CAACQ,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,EACzE,CAAC;IAED,MAAM,CAACC,aAAa,EAAE,GAAGC,YAAY,CAAC,GAAGd,GAAG,CAACQ,KAAK,CAAC,GAAG,CAAC;IACvD,MAAMO,aAAa,GAAGF,aAAa,CAChCR,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBW,MAAM,CAACF,YAAY,CAACG,MAAM,GAAG,IAAIH,YAAY,CAACH,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAElE,IAAIJ,WAAW,CAACW,IAAI,CAACH,aAAa,CAAC,EAAE;MACnC,MAAMI,MAAM,GAAGJ,aAAa,CAACV,OAAO,CAACE,WAAW,EAAE,EAAE,CAAC;MAErD,OAAOY,MAAM,CAACC,UAAU,CAAC,GAAG,CAAC,IAAID,MAAM,CAACC,UAAU,CAAC,GAAG,CAAC,GACnD,IAAID,MAAM,EAAE,GACZA,MAAM;IACZ;EACF;EAEA,OAAOE,SAAS;AAClB","ignoreList":[]}
|
|
@@ -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
|
*/
|
|
@@ -105,7 +125,12 @@ export function useLinking(ref, {
|
|
|
105
125
|
const location = server?.location ?? (typeof window !== 'undefined' ? window.location : undefined);
|
|
106
126
|
const path = location ? location.pathname + location.search : undefined;
|
|
107
127
|
if (path) {
|
|
108
|
-
|
|
128
|
+
try {
|
|
129
|
+
value = getStateFromPathRef.current(path, configRef.current);
|
|
130
|
+
} catch (e) {
|
|
131
|
+
console.error(e);
|
|
132
|
+
value = undefined;
|
|
133
|
+
}
|
|
109
134
|
}
|
|
110
135
|
|
|
111
136
|
// If the link were handled, it gets cleared in NavigationContainer
|
|
@@ -146,10 +171,25 @@ export function useLinking(ref, {
|
|
|
146
171
|
// Otherwise, we'll handle it like a regular deep link
|
|
147
172
|
const record = history.get(index);
|
|
148
173
|
if (record?.path === path && record?.state) {
|
|
149
|
-
navigation.
|
|
174
|
+
const currentState = navigation.getRootState();
|
|
175
|
+
const [currentFocused, recordFocused] = findMatchingState(currentState, record.state);
|
|
176
|
+
if (previousIndex - index === 1 && currentFocused && recordFocused && isPoppingLastEntry(currentFocused, recordFocused)) {
|
|
177
|
+
// If we detect that the state change is popping the last entry
|
|
178
|
+
// Dispatch a back action instead of resetting to the state
|
|
179
|
+
// This makes sure changes to history state since the entry was added don't get lost
|
|
180
|
+
navigation.goBack();
|
|
181
|
+
} else {
|
|
182
|
+
navigation.resetRoot(record.state);
|
|
183
|
+
}
|
|
150
184
|
return;
|
|
151
185
|
}
|
|
152
|
-
|
|
186
|
+
let state;
|
|
187
|
+
try {
|
|
188
|
+
state = getStateFromPathRef.current(path, configRef.current);
|
|
189
|
+
} catch (e) {
|
|
190
|
+
console.error(e);
|
|
191
|
+
state = undefined;
|
|
192
|
+
}
|
|
153
193
|
|
|
154
194
|
// We should only dispatch an action when going forward
|
|
155
195
|
// Otherwise the action will likely add items to history, which would mess things up
|
|
@@ -193,7 +233,13 @@ export function useLinking(ref, {
|
|
|
193
233
|
// If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match
|
|
194
234
|
// This makes sure that we preserve the original URL for wildcard routes
|
|
195
235
|
if (route?.path) {
|
|
196
|
-
|
|
236
|
+
let stateForPath;
|
|
237
|
+
try {
|
|
238
|
+
stateForPath = getStateFromPathRef.current(route.path, configRef.current);
|
|
239
|
+
} catch (e) {
|
|
240
|
+
console.error(e);
|
|
241
|
+
stateForPath = undefined;
|
|
242
|
+
}
|
|
197
243
|
if (stateForPath) {
|
|
198
244
|
const focusedRoute = findFocusedRoute(stateForPath);
|
|
199
245
|
if (focusedRoute && focusedRoute.name === route.name && isEqual(focusedRoute.params, route.params)) {
|
|
@@ -226,6 +272,7 @@ export function useLinking(ref, {
|
|
|
226
272
|
path,
|
|
227
273
|
state
|
|
228
274
|
});
|
|
275
|
+
previousIndexRef.current = history.index;
|
|
229
276
|
}
|
|
230
277
|
}
|
|
231
278
|
const onStateChange = async () => {
|
|
@@ -255,7 +302,7 @@ export function useLinking(ref, {
|
|
|
255
302
|
// We should only handle push/pop if path changed from what was in last `popstate`
|
|
256
303
|
// Otherwise it's likely a change triggered by `popstate`
|
|
257
304
|
path !== pendingPath) {
|
|
258
|
-
const historyDelta = (focusedState
|
|
305
|
+
const historyDelta = getHistoryLength(focusedState) - getHistoryLength(previousFocusedState);
|
|
259
306
|
if (historyDelta > 0) {
|
|
260
307
|
// If history length is increased, we should pushState
|
|
261
308
|
// Note that path might not actually change here, for example, drawer open should pushState
|
|
@@ -306,6 +353,7 @@ export function useLinking(ref, {
|
|
|
306
353
|
state
|
|
307
354
|
});
|
|
308
355
|
}
|
|
356
|
+
previousIndexRef.current = history.index;
|
|
309
357
|
};
|
|
310
358
|
|
|
311
359
|
// 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":";;AAAA,SACEA,gBAAgB,EAChBC,kBAAkB,IAAIC,yBAAyB,EAC/CC,gBAAgB,IAAIC,uBAAuB,EAC3CC,gBAAgB,IAAIC,uBAAuB,EAI3CC,4BAA4B,QACvB,wBAAwB;AAC/B,OAAOC,OAAO,MAAM,iBAAiB;AACrC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,aAAa,QAAQ,oBAAiB;AAK/C;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAGA,CACxBC,CAAgB,EAChBC,CAAgB,KACmB;EACnC,IAAID,CAAC,KAAKE,SAAS,IAAID,CAAC,KAAKC,SAAS,IAAIF,CAAC,CAACG,GAAG,KAAKF,CAAC,CAACE,GAAG,EAAE;IACzD,OAAO,CAACD,SAAS,EAAEA,SAAS,CAAC;EAC/B;;EAEA;EACA,MAAME,cAAc,GAAGJ,CAAC,CAACK,OAAO,GAAGL,CAAC,CAACK,OAAO,CAACC,MAAM,GAAGN,CAAC,CAACO,MAAM,CAACD,MAAM;EACrE,MAAME,cAAc,GAAGP,CAAC,CAACI,OAAO,GAAGJ,CAAC,CAACI,OAAO,CAACC,MAAM,GAAGL,CAAC,CAACM,MAAM,CAACD,MAAM;EAErE,MAAMG,MAAM,GAAGT,CAAC,CAACO,MAAM,CAACP,CAAC,CAACU,KAAK,CAAC;EAChC,MAAMC,MAAM,GAAGV,CAAC,CAACM,MAAM,CAACN,CAAC,CAACS,KAAK,CAAC;EAEhC,MAAME,WAAW,GAAGH,MAAM,CAACI,KAAsB;EACjD,MAAMC,WAAW,GAAGH,MAAM,CAACE,KAAsB;;EAEjD;EACA;EACA;EACA;EACA;EACA,IACET,cAAc,KAAKI,cAAc,IACjCC,MAAM,CAACN,GAAG,KAAKQ,MAAM,CAACR,GAAG,IACzBS,WAAW,KAAKV,SAAS,IACzBY,WAAW,KAAKZ,SAAS,IACzBU,WAAW,CAACT,GAAG,KAAKW,WAAW,CAACX,GAAG,EACnC;IACA,OAAO,CAACH,CAAC,EAAEC,CAAC,CAAC;EACf;EAEA,OAAOF,iBAAiB,CAACa,WAAW,EAAEE,WAAW,CAAC;AACpD,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAIC,EAAuB,IAAK;EACjD,IAAIC,KAAK,GAAGC,OAAO,CAACC,OAAO,CAAC,CAAC;EAC7B,MAAMC,QAAQ,GAAGA,CAAA,KAAM;IACrB;IACAH,KAAK,GAAGA,KAAK,CAACI,IAAI,CAACL,EAAE,CAAC;EACxB,CAAC;EACD,OAAOI,QAAQ;AACjB,CAAC;AAED,MAAME,eAAyB,GAAG,EAAE;AAIpC,OAAO,SAASC,UAAUA,CACxBC,GAAkE,EAClE;EACEC,OAAO,GAAG,IAAI;EACdC,MAAM;EACNlC,gBAAgB,GAAGC,uBAAuB;EAC1CH,gBAAgB,GAAGC,uBAAuB;EAC1CH,kBAAkB,GAAGC;AACd,CAAC,EACVsC,kBAAqE,EACrE;EACA,MAAMC,WAAW,GAAGlC,4BAA4B,CAAC,CAAC;EAElDE,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpB,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,OAAO9B,SAAS;IAClB;IAEA,IAAI0B,WAAW,EAAE;MACf,OAAO1B,SAAS;IAClB;IAEA,IAAIuB,OAAO,KAAK,KAAK,IAAIH,eAAe,CAAChB,MAAM,EAAE;MAC/C2B,OAAO,CAACC,KAAK,CACX,CACE,6KAA6K,EAC7K,uFAAuF,EACvF,4DAA4D,CAC7D,CACEC,IAAI,CAAC,IAAI,CAAC,CACVC,IAAI,CAAC,CACV,CAAC;IACH;IAEA,MAAMC,OAAO,GAAGC,MAAM,CAAC,CAAC;IAExB,IAAIb,OAAO,KAAK,KAAK,EAAE;MACrBH,eAAe,CAACiB,IAAI,CAACF,OAAO,CAAC;IAC/B;IAEA,OAAO,MAAM;MACX,MAAM3B,KAAK,GAAGY,eAAe,CAACkB,OAAO,CAACH,OAAO,CAAC;MAE9C,IAAI3B,KAAK,GAAG,CAAC,CAAC,EAAE;QACdY,eAAe,CAACmB,MAAM,CAAC/B,KAAK,EAAE,CAAC,CAAC;MAClC;IACF,CAAC;EACH,CAAC,EAAE,CAACe,OAAO,EAAEG,WAAW,CAAC,CAAC;EAE1B,MAAM,CAACvB,OAAO,CAAC,GAAGT,KAAK,CAAC8C,QAAQ,CAAC7C,mBAAmB,CAAC;;EAErD;EACA;EACA;EACA,MAAM8C,UAAU,GAAG/C,KAAK,CAACgD,MAAM,CAACnB,OAAO,CAAC;EACxC,MAAMoB,SAAS,GAAGjD,KAAK,CAACgD,MAAM,CAAClB,MAAM,CAAC;EACtC,MAAMoB,mBAAmB,GAAGlD,KAAK,CAACgD,MAAM,CAACpD,gBAAgB,CAAC;EAC1D,MAAMuD,mBAAmB,GAAGnD,KAAK,CAACgD,MAAM,CAACtD,gBAAgB,CAAC;EAC1D,MAAM0D,qBAAqB,GAAGpD,KAAK,CAACgD,MAAM,CAACxD,kBAAkB,CAAC;EAE9DQ,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpBc,UAAU,CAACM,OAAO,GAAGxB,OAAO;IAC5BoB,SAAS,CAACI,OAAO,GAAGvB,MAAM;IAC1BoB,mBAAmB,CAACG,OAAO,GAAGzD,gBAAgB;IAC9CuD,mBAAmB,CAACE,OAAO,GAAG3D,gBAAgB;IAC9C0D,qBAAqB,CAACC,OAAO,GAAG7D,kBAAkB;EACpD,CAAC,CAAC;EAEF,MAAM8D,iCAAiC,GAAGtD,KAAK,CAACuD,WAAW,CACxDtC,KAAkB,IAAK;IACtB,MAAMuC,UAAU,GAAG5B,GAAG,CAACyB,OAAO;IAC9B,MAAMI,SAAS,GAAGD,UAAU,EAAEE,YAAY,CAAC,CAAC;IAC5C;IACA;IACA,OAAOzC,KAAK,EAAEN,MAAM,CAACgD,IAAI,CAAEC,CAAC,IAAK,CAACH,SAAS,EAAEI,UAAU,CAACC,QAAQ,CAACF,CAAC,CAACG,IAAI,CAAC,CAAC;EAC3E,CAAC,EACD,CAACnC,GAAG,CACN,CAAC;EAED,MAAMoC,MAAM,GAAGhE,KAAK,CAACiE,UAAU,CAAC/D,aAAa,CAAC;EAE9C,MAAMgE,eAAe,GAAGlE,KAAK,CAACuD,WAAW,CAAC,MAAM;IAC9C,IAAIY,KAA8B;IAElC,IAAIpB,UAAU,CAACM,OAAO,EAAE;MACtB,MAAMe,QAAQ,GACZJ,MAAM,EAAEI,QAAQ,KACf,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,CAACD,QAAQ,GAAG9D,SAAS,CAAC;MAE/D,MAAMgE,IAAI,GAAGF,QAAQ,GAAGA,QAAQ,CAACG,QAAQ,GAAGH,QAAQ,CAACI,MAAM,GAAGlE,SAAS;MAEvE,IAAIgE,IAAI,EAAE;QACRH,KAAK,GAAGjB,mBAAmB,CAACG,OAAO,CAACiB,IAAI,EAAErB,SAAS,CAACI,OAAO,CAAC;MAC9D;;MAEA;MACAtB,kBAAkB,CAACuC,IAAI,CAAC;IAC1B;IAEA,MAAMG,QAAQ,GAAG;MACfhD,IAAIA,CAACiD,WAAsD,EAAE;QAC3D,OAAOpD,OAAO,CAACC,OAAO,CAACmD,WAAW,GAAGA,WAAW,CAACP,KAAK,CAAC,GAAGA,KAAK,CAAC;MAClE,CAAC;MACDQ,KAAKA,CAAA,EAAG;QACN,OAAOF,QAAQ;MACjB;IACF,CAAC;IAED,OAAOA,QAAQ;IACf;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,gBAAgB,GAAG5E,KAAK,CAACgD,MAAM,CAAqB1C,SAAS,CAAC;EACpE,MAAMuE,gBAAgB,GAAG7E,KAAK,CAACgD,MAAM,CAA8B1C,SAAS,CAAC;EAC7E,MAAMwE,sBAAsB,GAAG9E,KAAK,CAACgD,MAAM,CAAqB1C,SAAS,CAAC;EAE1EN,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpB2C,gBAAgB,CAACvB,OAAO,GAAG5C,OAAO,CAACK,KAAK;IAExC,OAAOL,OAAO,CAACsE,MAAM,CAAC,MAAM;MAC1B,MAAMvB,UAAU,GAAG5B,GAAG,CAACyB,OAAO;MAE9B,IAAI,CAACG,UAAU,IAAI,CAAC3B,OAAO,EAAE;QAC3B;MACF;MAEA,MAAM;QAAEuC;MAAS,CAAC,GAAGC,MAAM;MAE3B,MAAMC,IAAI,GAAGF,QAAQ,CAACG,QAAQ,GAAGH,QAAQ,CAACI,MAAM;MAChD,MAAM1D,KAAK,GAAGL,OAAO,CAACK,KAAK;MAE3B,MAAMkE,aAAa,GAAGJ,gBAAgB,CAACvB,OAAO,IAAI,CAAC;MAEnDuB,gBAAgB,CAACvB,OAAO,GAAGvC,KAAK;MAChCgE,sBAAsB,CAACzB,OAAO,GAAGiB,IAAI;;MAErC;MACA;MACA;MACA,MAAMW,MAAM,GAAGxE,OAAO,CAACyE,GAAG,CAACpE,KAAK,CAAC;MAEjC,IAAImE,MAAM,EAAEX,IAAI,KAAKA,IAAI,IAAIW,MAAM,EAAEhE,KAAK,EAAE;QAC1CuC,UAAU,CAAC2B,SAAS,CAACF,MAAM,CAAChE,KAAK,CAAC;QAClC;MACF;MAEA,MAAMA,KAAK,GAAGiC,mBAAmB,CAACG,OAAO,CAACiB,IAAI,EAAErB,SAAS,CAACI,OAAO,CAAC;;MAElE;MACA;MACA,IAAIpC,KAAK,EAAE;QACT;QACAc,kBAAkB,CAACuC,IAAI,CAAC;QACxB;QACA;QACA,IAAIhB,iCAAiC,CAACrC,KAAK,CAAC,EAAE;UAC5C;QACF;QAEA,IAAIH,KAAK,GAAGkE,aAAa,EAAE;UACzB,MAAMI,MAAM,GAAGhC,qBAAqB,CAACC,OAAO,CAC1CpC,KAAK,EACLgC,SAAS,CAACI,OACZ,CAAC;UAED,IAAI+B,MAAM,KAAK9E,SAAS,EAAE;YACxB,IAAI;cACFkD,UAAU,CAAC6B,QAAQ,CAACD,MAAM,CAAC;YAC7B,CAAC,CAAC,OAAOE,CAAC,EAAE;cACV;cACA;cACAjD,OAAO,CAACkD,IAAI,CACV,qDAAqDjB,IAAI,MACvD,OAAOgB,CAAC,KAAK,QAAQ,IAAIA,CAAC,IAAI,IAAI,IAAI,SAAS,IAAIA,CAAC,GAChDA,CAAC,CAACE,OAAO,GACTF,CAAC,EAET,CAAC;YACH;UACF,CAAC,MAAM;YACL9B,UAAU,CAAC2B,SAAS,CAAClE,KAAK,CAAC;UAC7B;QACF,CAAC,MAAM;UACLuC,UAAU,CAAC2B,SAAS,CAAClE,KAAK,CAAC;QAC7B;MACF,CAAC,MAAM;QACL;QACAuC,UAAU,CAAC2B,SAAS,CAAClE,KAAK,CAAC;MAC7B;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CACDY,OAAO,EACPpB,OAAO,EACPsB,kBAAkB,EAClBH,GAAG,EACH0B,iCAAiC,CAClC,CAAC;EAEFtD,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpB,IAAI,CAACJ,OAAO,EAAE;MACZ;IACF;IAEA,MAAM4D,eAAe,GAAGA,CACtBC,KAA0C,EAC1CzE,KAAsB,KACX;MACX,IAAIqD,IAAI;;MAER;MACA;MACA,IAAIoB,KAAK,EAAEpB,IAAI,EAAE;QACf,MAAMqB,YAAY,GAAGzC,mBAAmB,CAACG,OAAO,CAC9CqC,KAAK,CAACpB,IAAI,EACVrB,SAAS,CAACI,OACZ,CAAC;QAED,IAAIsC,YAAY,EAAE;UAChB,MAAMC,YAAY,GAAGrG,gBAAgB,CAACoG,YAAY,CAAC;UAEnD,IACEC,YAAY,IACZA,YAAY,CAAC7B,IAAI,KAAK2B,KAAK,CAAC3B,IAAI,IAChChE,OAAO,CAAC6F,YAAY,CAACC,MAAM,EAAEH,KAAK,CAACG,MAAM,CAAC,EAC1C;YACAvB,IAAI,GAAGoB,KAAK,CAACpB,IAAI;UACnB;QACF;MACF;MAEA,IAAIA,IAAI,IAAI,IAAI,EAAE;QAChBA,IAAI,GAAGnB,mBAAmB,CAACE,OAAO,CAACpC,KAAK,EAAEgC,SAAS,CAACI,OAAO,CAAC;MAC9D;MAEA,MAAMyC,aAAa,GAAGjB,gBAAgB,CAACxB,OAAO,GAC1C9D,gBAAgB,CAACsF,gBAAgB,CAACxB,OAAO,CAAC,GAC1C/C,SAAS;;MAEb;MACA,IACEwF,aAAa,IACbJ,KAAK,IACL,KAAK,IAAII,aAAa,IACtB,KAAK,IAAIJ,KAAK,IACdI,aAAa,CAACvF,GAAG,KAAKmF,KAAK,CAACnF,GAAG,EAC/B;QACA+D,IAAI,GAAGA,IAAI,GAAGF,QAAQ,CAAC2B,IAAI;MAC7B;MAEA,OAAOzB,IAAI;IACb,CAAC;IAED,IAAI1C,GAAG,CAACyB,OAAO,EAAE;MACf;MACA;MACA,MAAMpC,KAAK,GAAGW,GAAG,CAACyB,OAAO,CAACK,YAAY,CAAC,CAAC;MAExC,IAAIzC,KAAK,EAAE;QACT,MAAMyE,KAAK,GAAGnG,gBAAgB,CAAC0B,KAAK,CAAC;QACrC,MAAMqD,IAAI,GAAGmB,eAAe,CAACC,KAAK,EAAEzE,KAAK,CAAC;QAE1C,IAAI4D,gBAAgB,CAACxB,OAAO,KAAK/C,SAAS,EAAE;UAC1CuE,gBAAgB,CAACxB,OAAO,GAAGpC,KAAK;QAClC;QAEAR,OAAO,CAACuF,OAAO,CAAC;UAAE1B,IAAI;UAAErD;QAAM,CAAC,CAAC;MAClC;IACF;IAEA,MAAMgF,aAAa,GAAG,MAAAA,CAAA,KAAY;MAChC,MAAMzC,UAAU,GAAG5B,GAAG,CAACyB,OAAO;MAE9B,IAAI,CAACG,UAAU,IAAI,CAAC3B,OAAO,EAAE;QAC3B;MACF;MAEA,MAAMqE,aAAa,GAAGrB,gBAAgB,CAACxB,OAAO;MAC9C,MAAMpC,KAAK,GAAGuC,UAAU,CAACE,YAAY,CAAC,CAAC;;MAEvC;MACA,IAAI,CAACzC,KAAK,EAAE;QACV;MACF;MAEA,MAAMkF,WAAW,GAAGrB,sBAAsB,CAACzB,OAAO;MAClD,MAAMqC,KAAK,GAAGnG,gBAAgB,CAAC0B,KAAK,CAAC;MACrC,MAAMqD,IAAI,GAAGmB,eAAe,CAACC,KAAK,EAAEzE,KAAK,CAAC;MAE1C4D,gBAAgB,CAACxB,OAAO,GAAGpC,KAAK;MAChC6D,sBAAsB,CAACzB,OAAO,GAAG/C,SAAS;;MAE1C;MACA;MACA;MACA;MACA,MAAM,CAAC8F,oBAAoB,EAAEC,YAAY,CAAC,GAAGlG,iBAAiB,CAC5D+F,aAAa,EACbjF,KACF,CAAC;MAED,IACEmF,oBAAoB,IACpBC,YAAY;MACZ;MACA;MACA/B,IAAI,KAAK6B,WAAW,EACpB;QACA,MAAMG,YAAY,GAChB,CAACD,YAAY,CAAC5F,OAAO,GACjB4F,YAAY,CAAC5F,OAAO,CAACC,MAAM,GAC3B2F,YAAY,CAAC1F,MAAM,CAACD,MAAM,KAC7B0F,oBAAoB,CAAC3F,OAAO,GACzB2F,oBAAoB,CAAC3F,OAAO,CAACC,MAAM,GACnC0F,oBAAoB,CAACzF,MAAM,CAACD,MAAM,CAAC;QAEzC,IAAI4F,YAAY,GAAG,CAAC,EAAE;UACpB;UACA;UACA7F,OAAO,CAACkC,IAAI,CAAC;YAAE2B,IAAI;YAAErD;UAAM,CAAC,CAAC;QAC/B,CAAC,MAAM,IAAIqF,YAAY,GAAG,CAAC,EAAE;UAC3B;;UAEA,MAAMC,SAAS,GAAG9F,OAAO,CAAC+F,SAAS,CAAC;YAAElC;UAAK,CAAC,CAAC;UAC7C,MAAMmC,YAAY,GAAGhG,OAAO,CAACK,KAAK;UAElC,IAAI;YACF,IACEyF,SAAS,KAAK,CAAC,CAAC,IAChBA,SAAS,GAAGE,YAAY;YACxB;YACAhG,OAAO,CAACyE,GAAG,CAACqB,SAAS,CAAC,EACtB;cACA;cACA,MAAM9F,OAAO,CAACiG,EAAE,CAACH,SAAS,GAAGE,YAAY,CAAC;YAC5C,CAAC,MAAM;cACL;cACA;cACA;cACA,MAAMhG,OAAO,CAACiG,EAAE,CAACJ,YAAY,CAAC;YAChC;;YAEA;YACA7F,OAAO,CAACuF,OAAO,CAAC;cAAE1B,IAAI;cAAErD;YAAM,CAAC,CAAC;UAClC,CAAC,CAAC,OAAOqE,CAAC,EAAE;YACV;UAAA;QAEJ,CAAC,MAAM;UACL;UACA7E,OAAO,CAACuF,OAAO,CAAC;YAAE1B,IAAI;YAAErD;UAAM,CAAC,CAAC;QAClC;MACF,CAAC,MAAM;QACL;QACA;QACAR,OAAO,CAACuF,OAAO,CAAC;UAAE1B,IAAI;UAAErD;QAAM,CAAC,CAAC;MAClC;IACF,CAAC;;IAED;IACA;IACA;IACA,OAAOW,GAAG,CAACyB,OAAO,EAAEsD,WAAW,CAAC,OAAO,EAAExF,MAAM,CAAC8E,aAAa,CAAC,CAAC;EACjE,CAAC,EAAE,CAACpE,OAAO,EAAEpB,OAAO,EAAEmB,GAAG,CAAC,CAAC;EAE3B,OAAO;IACLsC;EACF,CAAC;AACH","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","e","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","get","currentState","currentFocused","recordFocused","goBack","resetRoot","action","dispatch","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":[]}
|
|
@@ -83,7 +83,14 @@ export function useLinking(ref, {
|
|
|
83
83
|
return undefined;
|
|
84
84
|
}
|
|
85
85
|
const path = extractPathFromURL(prefixesRef.current, url);
|
|
86
|
-
|
|
86
|
+
if (path !== undefined) {
|
|
87
|
+
try {
|
|
88
|
+
return getStateFromPathRef.current(path, configRef.current);
|
|
89
|
+
} catch (e) {
|
|
90
|
+
console.error(e);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return undefined;
|
|
87
94
|
}, []);
|
|
88
95
|
const getInitialState = React.useCallback(() => {
|
|
89
96
|
let state;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getActionFromState","getActionFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","React","Linking","Platform","extractPathFromURL","linkingHandlers","useLinking","ref","enabled","prefixes","filter","config","getInitialURL","Promise","race","resolve","setTimeout","subscribe","listener","callback","url","subscription","addEventListener","removeEventListener","bind","remove","onUnhandledLinking","independent","useEffect","process","env","NODE_ENV","undefined","length","console","error","OS","join","trim","handler","Symbol","push","index","indexOf","splice","enabledRef","useRef","prefixesRef","filterRef","configRef","getInitialURLRef","getStateFromPathRef","getActionFromStateRef","current","getStateFromURL","useCallback","path","getInitialState","state","then","thenable","onfulfilled","catch","navigation","action","dispatch","
|
|
1
|
+
{"version":3,"names":["getActionFromState","getActionFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","React","Linking","Platform","extractPathFromURL","linkingHandlers","useLinking","ref","enabled","prefixes","filter","config","getInitialURL","Promise","race","resolve","setTimeout","subscribe","listener","callback","url","subscription","addEventListener","removeEventListener","bind","remove","onUnhandledLinking","independent","useEffect","process","env","NODE_ENV","undefined","length","console","error","OS","join","trim","handler","Symbol","push","index","indexOf","splice","enabledRef","useRef","prefixesRef","filterRef","configRef","getInitialURLRef","getStateFromPathRef","getActionFromStateRef","current","getStateFromURL","useCallback","path","e","getInitialState","state","then","thenable","onfulfilled","catch","navigation","action","dispatch","warn","message","resetRoot"],"sourceRoot":"../../src","sources":["useLinking.native.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMemoryHistory.d.ts","sourceRoot":"","sources":["../../../src/createMemoryHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,KAAK,aAAa,GAAG;IAEnB,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,eAAe,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;
|
|
1
|
+
{"version":3,"file":"createMemoryHistory.d.ts","sourceRoot":"","sources":["../../../src/createMemoryHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,KAAK,aAAa,GAAG;IAEnB,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,eAAe,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,wBAAgB,mBAAmB;oBAmBlB,MAAM;eAcR,MAAM;wBAIG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;0BAed;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;6BAoBrC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;UAqC3D,MAAM;qBA0FK,MAAM,IAAI;EAqB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractPathFromURL.d.ts","sourceRoot":"","sources":["../../../src/extractPathFromURL.tsx"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"extractPathFromURL.d.ts","sourceRoot":"","sources":["../../../src/extractPathFromURL.tsx"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,sBA8BjE"}
|
|
@@ -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;2BAyGhD,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;EAqS1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLinking.native.d.ts","sourceRoot":"","sources":["../../../src/useLinking.native.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAI7C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,QAAQ,EACR,MAAM,EACN,MAAM,EACN,aAQI,EACJ,SAmBC,EACD,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO,EACV,kBAAkB,EAAE,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useLinking.native.d.ts","sourceRoot":"","sources":["../../../src/useLinking.native.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAI7C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,QAAQ,EACR,MAAM,EACN,MAAM,EACN,aAQI,EACJ,SAmBC,EACD,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO,EACV,kBAAkB,EAAE,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;EAoKtE"}
|
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.4",
|
|
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.4",
|
|
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": "01ae31e084223989654cbaafeffc88b4448b5d4f"
|
|
87
87
|
}
|
|
@@ -10,6 +10,8 @@ type HistoryRecord = {
|
|
|
10
10
|
path: string;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
+
const getPathWithoutHash = (path: string) => path.split('#')[0];
|
|
14
|
+
|
|
13
15
|
export function createMemoryHistory() {
|
|
14
16
|
let index = 0;
|
|
15
17
|
let items: HistoryRecord[] = [];
|
|
@@ -48,11 +50,13 @@ export function createMemoryHistory() {
|
|
|
48
50
|
},
|
|
49
51
|
|
|
50
52
|
backIndex({ path }: { path: string }) {
|
|
53
|
+
const pathWithoutHash = getPathWithoutHash(path);
|
|
54
|
+
|
|
51
55
|
// We need to find the index from the element before current to get closest path to go back to
|
|
52
56
|
for (let i = index - 1; i >= 0; i--) {
|
|
53
57
|
const item = items[i];
|
|
54
58
|
|
|
55
|
-
if (item.path ===
|
|
59
|
+
if (item.path === pathWithoutHash) {
|
|
56
60
|
return i;
|
|
57
61
|
}
|
|
58
62
|
}
|
|
@@ -64,12 +68,13 @@ export function createMemoryHistory() {
|
|
|
64
68
|
interrupt();
|
|
65
69
|
|
|
66
70
|
const id = nanoid();
|
|
71
|
+
const pathWithoutHash = getPathWithoutHash(path);
|
|
67
72
|
|
|
68
73
|
// When a new entry is pushed, all the existing entries after index will be inaccessible
|
|
69
74
|
// So we remove any existing entries after the current index to clean them up
|
|
70
75
|
items = items.slice(0, index + 1);
|
|
71
76
|
|
|
72
|
-
items.push({ path, state, id });
|
|
77
|
+
items.push({ path: pathWithoutHash, state, id });
|
|
73
78
|
index = items.length - 1;
|
|
74
79
|
|
|
75
80
|
// We pass empty string for title because it's ignored in all browsers except safari
|
|
@@ -83,6 +88,7 @@ export function createMemoryHistory() {
|
|
|
83
88
|
interrupt();
|
|
84
89
|
|
|
85
90
|
const id = window.history.state?.id ?? nanoid();
|
|
91
|
+
const pathWithoutHash = getPathWithoutHash(path);
|
|
86
92
|
|
|
87
93
|
// Need to keep the hash part of the path if there was no previous history entry
|
|
88
94
|
// or the previous history entry had the same path
|
|
@@ -98,13 +104,13 @@ export function createMemoryHistory() {
|
|
|
98
104
|
// So we need to push the entry as there's nothing to replace
|
|
99
105
|
|
|
100
106
|
pathWithHash = pathWithHash + hash;
|
|
101
|
-
items = [{ path:
|
|
107
|
+
items = [{ path: pathWithoutHash, state, id }];
|
|
102
108
|
index = 0;
|
|
103
109
|
} else {
|
|
104
|
-
if (items[index].path ===
|
|
110
|
+
if (items[index].path === pathWithoutHash) {
|
|
105
111
|
pathWithHash = pathWithHash + hash;
|
|
106
112
|
}
|
|
107
|
-
items[index] = { path, state, id };
|
|
113
|
+
items[index] = { path: pathWithoutHash, state, id };
|
|
108
114
|
}
|
|
109
115
|
|
|
110
116
|
window.history.replaceState({ id }, '', pathWithHash);
|
|
@@ -11,8 +11,8 @@ export function extractPathFromURL(prefixes: string[], url: string) {
|
|
|
11
11
|
const prefixRegex = new RegExp(
|
|
12
12
|
`^${escapeStringRegexp(protocol)}(/)*${host
|
|
13
13
|
.split('.')
|
|
14
|
-
.map((it) => (it === '*' ? '[
|
|
15
|
-
.join('\\.')}`
|
|
14
|
+
.map((it) => (it === '*' ? '[^/?#]+' : escapeStringRegexp(it)))
|
|
15
|
+
.join('\\.')}${host === '' || host.endsWith('/') ? '' : '(?=$|[/?#])'}`
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
const [originAndPath, ...searchParams] = url.split('?');
|
|
@@ -21,7 +21,11 @@ export function extractPathFromURL(prefixes: string[], url: string) {
|
|
|
21
21
|
.concat(searchParams.length ? `?${searchParams.join('?')}` : '');
|
|
22
22
|
|
|
23
23
|
if (prefixRegex.test(normalizedURL)) {
|
|
24
|
-
|
|
24
|
+
const result = normalizedURL.replace(prefixRegex, '');
|
|
25
|
+
|
|
26
|
+
return result.startsWith('?') || result.startsWith('#')
|
|
27
|
+
? `/${result}`
|
|
28
|
+
: result;
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
31
|
|
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 {}> = {
|
|
@@ -128,9 +128,15 @@ export function useLinking(
|
|
|
128
128
|
|
|
129
129
|
const path = extractPathFromURL(prefixesRef.current, url);
|
|
130
130
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
if (path !== undefined) {
|
|
132
|
+
try {
|
|
133
|
+
return getStateFromPathRef.current(path, configRef.current);
|
|
134
|
+
} catch (e) {
|
|
135
|
+
console.error(e);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return undefined;
|
|
134
140
|
},
|
|
135
141
|
[]
|
|
136
142
|
);
|
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
|
*/
|
|
@@ -165,7 +194,13 @@ export function useLinking(
|
|
|
165
194
|
const path = location ? location.pathname + location.search : undefined;
|
|
166
195
|
|
|
167
196
|
if (path) {
|
|
168
|
-
|
|
197
|
+
try {
|
|
198
|
+
value = getStateFromPathRef.current(path, configRef.current);
|
|
199
|
+
} catch (e) {
|
|
200
|
+
console.error(e);
|
|
201
|
+
|
|
202
|
+
value = undefined;
|
|
203
|
+
}
|
|
169
204
|
}
|
|
170
205
|
|
|
171
206
|
// If the link were handled, it gets cleared in NavigationContainer
|
|
@@ -215,11 +250,39 @@ export function useLinking(
|
|
|
215
250
|
const record = history.get(index);
|
|
216
251
|
|
|
217
252
|
if (record?.path === path && record?.state) {
|
|
218
|
-
navigation.
|
|
253
|
+
const currentState = navigation.getRootState();
|
|
254
|
+
|
|
255
|
+
const [currentFocused, recordFocused] = findMatchingState(
|
|
256
|
+
currentState,
|
|
257
|
+
record.state
|
|
258
|
+
);
|
|
259
|
+
|
|
260
|
+
if (
|
|
261
|
+
previousIndex - index === 1 &&
|
|
262
|
+
currentFocused &&
|
|
263
|
+
recordFocused &&
|
|
264
|
+
isPoppingLastEntry(currentFocused, recordFocused)
|
|
265
|
+
) {
|
|
266
|
+
// If we detect that the state change is popping the last entry
|
|
267
|
+
// Dispatch a back action instead of resetting to the state
|
|
268
|
+
// This makes sure changes to history state since the entry was added don't get lost
|
|
269
|
+
navigation.goBack();
|
|
270
|
+
} else {
|
|
271
|
+
navigation.resetRoot(record.state);
|
|
272
|
+
}
|
|
273
|
+
|
|
219
274
|
return;
|
|
220
275
|
}
|
|
221
276
|
|
|
222
|
-
|
|
277
|
+
let state: ResultState | undefined;
|
|
278
|
+
|
|
279
|
+
try {
|
|
280
|
+
state = getStateFromPathRef.current(path, configRef.current);
|
|
281
|
+
} catch (e) {
|
|
282
|
+
console.error(e);
|
|
283
|
+
|
|
284
|
+
state = undefined;
|
|
285
|
+
}
|
|
223
286
|
|
|
224
287
|
// We should only dispatch an action when going forward
|
|
225
288
|
// Otherwise the action will likely add items to history, which would mess things up
|
|
@@ -285,10 +348,18 @@ export function useLinking(
|
|
|
285
348
|
// If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match
|
|
286
349
|
// This makes sure that we preserve the original URL for wildcard routes
|
|
287
350
|
if (route?.path) {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
351
|
+
let stateForPath: ResultState | undefined;
|
|
352
|
+
|
|
353
|
+
try {
|
|
354
|
+
stateForPath = getStateFromPathRef.current(
|
|
355
|
+
route.path,
|
|
356
|
+
configRef.current
|
|
357
|
+
);
|
|
358
|
+
} catch (e) {
|
|
359
|
+
console.error(e);
|
|
360
|
+
|
|
361
|
+
stateForPath = undefined;
|
|
362
|
+
}
|
|
292
363
|
|
|
293
364
|
if (stateForPath) {
|
|
294
365
|
const focusedRoute = findFocusedRoute(stateForPath);
|
|
@@ -339,6 +410,7 @@ export function useLinking(
|
|
|
339
410
|
}
|
|
340
411
|
|
|
341
412
|
history.replace({ path, state });
|
|
413
|
+
previousIndexRef.current = history.index;
|
|
342
414
|
}
|
|
343
415
|
}
|
|
344
416
|
|
|
@@ -381,12 +453,8 @@ export function useLinking(
|
|
|
381
453
|
path !== pendingPath
|
|
382
454
|
) {
|
|
383
455
|
const historyDelta =
|
|
384
|
-
(focusedState
|
|
385
|
-
|
|
386
|
-
: focusedState.routes.length) -
|
|
387
|
-
(previousFocusedState.history
|
|
388
|
-
? previousFocusedState.history.length
|
|
389
|
-
: previousFocusedState.routes.length);
|
|
456
|
+
getHistoryLength(focusedState) -
|
|
457
|
+
getHistoryLength(previousFocusedState);
|
|
390
458
|
|
|
391
459
|
if (historyDelta > 0) {
|
|
392
460
|
// If history length is increased, we should pushState
|
|
@@ -428,6 +496,8 @@ export function useLinking(
|
|
|
428
496
|
// This would happen if the user did a reset/conditionally changed navigators
|
|
429
497
|
history.replace({ path, state });
|
|
430
498
|
}
|
|
499
|
+
|
|
500
|
+
previousIndexRef.current = history.index;
|
|
431
501
|
};
|
|
432
502
|
|
|
433
503
|
// We debounce onStateChange coz we don't want multiple state changes to be handled at one time
|