@react-navigation/core 7.21.2 → 7.21.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/PreventRemoveContext.js.map +1 -1
- package/lib/module/PreventRemoveProvider.js +34 -24
- package/lib/module/PreventRemoveProvider.js.map +1 -1
- package/lib/module/createNavigationContainerRef.js +6 -8
- package/lib/module/createNavigationContainerRef.js.map +1 -1
- package/lib/module/getStateFromPath.js +82 -58
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/useEventEmitter.js +1 -1
- package/lib/module/useEventEmitter.js.map +1 -1
- package/lib/module/useKeyedChildListeners.js +4 -2
- package/lib/module/useKeyedChildListeners.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +3 -15
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useNavigationCache.js +5 -2
- package/lib/module/useNavigationCache.js.map +1 -1
- package/lib/module/useNavigationHelpers.js +27 -9
- package/lib/module/useNavigationHelpers.js.map +1 -1
- package/lib/module/useNavigationState.js +1 -1
- package/lib/module/useNavigationState.js.map +1 -1
- package/lib/module/useOnAction.js +1 -1
- package/lib/module/useOnAction.js.map +1 -1
- package/lib/module/useOptionsGetters.js +3 -1
- package/lib/module/useOptionsGetters.js.map +1 -1
- package/lib/module/usePreventRemove.js +9 -2
- package/lib/module/usePreventRemove.js.map +1 -1
- package/lib/module/useRouteCache.js +14 -7
- package/lib/module/useRouteCache.js.map +1 -1
- package/lib/module/useScheduleUpdate.js +8 -8
- package/lib/module/useScheduleUpdate.js.map +1 -1
- package/lib/module/useSyncState.js +4 -1
- package/lib/module/useSyncState.js.map +1 -1
- package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
- package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
- package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
- package/lib/typescript/src/StaticNavigation.d.ts +2 -2
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
- package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +3 -3
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationHelpers.d.ts +2 -3
- package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
- package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
- package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
- package/lib/typescript/src/usePreventRemoveContext.d.ts +1 -0
- package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
- package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
- package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
- package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
- package/lib/typescript/src/useSyncState.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/PreventRemoveContext.tsx +1 -0
- package/src/PreventRemoveProvider.tsx +48 -43
- package/src/StaticNavigation.tsx +2 -2
- package/src/createNavigationContainerRef.tsx +12 -9
- package/src/getStateFromPath.tsx +112 -74
- package/src/types.tsx +18 -16
- package/src/useEventEmitter.tsx +1 -1
- package/src/useKeyedChildListeners.tsx +4 -2
- package/src/useNavigationBuilder.tsx +2 -16
- package/src/useNavigationCache.tsx +6 -2
- package/src/useNavigationHelpers.tsx +26 -9
- package/src/useNavigationState.tsx +1 -1
- package/src/useOnAction.tsx +1 -1
- package/src/useOptionsGetters.tsx +4 -1
- package/src/usePreventRemove.tsx +11 -2
- package/src/useRouteCache.tsx +19 -11
- package/src/useScheduleUpdate.tsx +8 -7
- package/src/useSyncState.tsx +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,
|
|
1
|
+
{"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAWrDC,SAAS,CAAC","ignoreList":[]}
|
|
@@ -11,16 +11,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
11
11
|
* Util function to transform map of prevented routes to a simpler object.
|
|
12
12
|
*/
|
|
13
13
|
const transformPreventedRoutes = preventedRoutesMap => {
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
routeKey
|
|
17
|
-
|
|
18
|
-
}) => {
|
|
19
|
-
acc[routeKey] = {
|
|
20
|
-
preventRemove: acc[routeKey]?.preventRemove || preventRemove
|
|
14
|
+
const preventedRoutes = {};
|
|
15
|
+
for (const routeKey of preventedRoutesMap.values()) {
|
|
16
|
+
preventedRoutes[routeKey] = {
|
|
17
|
+
preventRemove: true
|
|
21
18
|
};
|
|
22
|
-
|
|
23
|
-
}, {});
|
|
19
|
+
}
|
|
24
20
|
return preventedRoutes;
|
|
25
21
|
};
|
|
26
22
|
|
|
@@ -32,36 +28,49 @@ export function PreventRemoveProvider({
|
|
|
32
28
|
}) {
|
|
33
29
|
const [parentId] = React.useState(() => nanoid());
|
|
34
30
|
const [preventedRoutesMap, setPreventedRoutesMap] = React.useState(() => new Map());
|
|
31
|
+
const registry = React.useRef(new Map());
|
|
35
32
|
const navigation = React.useContext(NavigationHelpersContext);
|
|
36
33
|
const route = React.useContext(NavigationRouteContext);
|
|
37
34
|
const preventRemoveContextValue = React.useContext(PreventRemoveContext);
|
|
38
35
|
// take `setPreventRemove` from parent context - if exist it means we're in a nested context
|
|
39
36
|
const setParentPrevented = preventRemoveContextValue?.setPreventRemove;
|
|
37
|
+
const notifyParentPrevented = preventRemoveContextValue?.notifyPreventRemove;
|
|
40
38
|
const setPreventRemove = useLatestCallback((id, routeKey, preventRemove) => {
|
|
41
39
|
if (preventRemove && (navigation == null || navigation?.getState().routes.every(route => route.key !== routeKey))) {
|
|
42
40
|
throw new Error(`Couldn't find a route with the key ${routeKey}. Is your component inside NavigationContent?`);
|
|
43
41
|
}
|
|
42
|
+
if (preventRemove) {
|
|
43
|
+
registry.current.set(id, routeKey);
|
|
44
|
+
} else {
|
|
45
|
+
registry.current.delete(id);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
const notifyPreventRemove = useLatestCallback(() => {
|
|
49
|
+
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
|
|
44
50
|
setPreventedRoutesMap(prevPrevented => {
|
|
51
|
+
const nextPrevented = registry.current;
|
|
52
|
+
const hasChanged = prevPrevented.size !== nextPrevented.size || [...nextPrevented].some(([id, routeKey]) => prevPrevented.get(id) !== routeKey);
|
|
53
|
+
|
|
45
54
|
// values haven't changed - do nothing
|
|
46
|
-
if (
|
|
55
|
+
if (!hasChanged) {
|
|
47
56
|
return prevPrevented;
|
|
48
57
|
}
|
|
49
|
-
|
|
50
|
-
if (preventRemove) {
|
|
51
|
-
nextPrevented.set(id, {
|
|
52
|
-
routeKey,
|
|
53
|
-
preventRemove
|
|
54
|
-
});
|
|
55
|
-
} else {
|
|
56
|
-
nextPrevented.delete(id);
|
|
57
|
-
}
|
|
58
|
-
return nextPrevented;
|
|
58
|
+
return new Map(nextPrevented);
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
|
|
62
|
+
// Sync the state on every commit in case the registry was changed by a screen
|
|
63
|
+
// unmounting while hidden with `<Activity>`, where no passive effects run
|
|
64
|
+
// Also notify the parent so nested prevention propagates upwards
|
|
64
65
|
React.useEffect(() => {
|
|
66
|
+
notifyPreventRemove();
|
|
67
|
+
notifyParentPrevented?.();
|
|
68
|
+
return () => {
|
|
69
|
+
notifyParentPrevented?.();
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
const isPrevented = preventedRoutesMap.size > 0;
|
|
73
|
+
React.useInsertionEffect(() => {
|
|
65
74
|
if (route?.key !== undefined && setParentPrevented !== undefined) {
|
|
66
75
|
// when route is defined (and setParentPrevented) it means we're in a nested stack
|
|
67
76
|
// route.key then will be the route key of parent
|
|
@@ -74,8 +83,9 @@ export function PreventRemoveProvider({
|
|
|
74
83
|
}, [parentId, isPrevented, route?.key, setParentPrevented]);
|
|
75
84
|
const value = React.useMemo(() => ({
|
|
76
85
|
setPreventRemove,
|
|
86
|
+
notifyPreventRemove,
|
|
77
87
|
preventedRoutes: transformPreventedRoutes(preventedRoutesMap)
|
|
78
|
-
}), [setPreventRemove, preventedRoutesMap]);
|
|
88
|
+
}), [setPreventRemove, notifyPreventRemove, preventedRoutesMap]);
|
|
79
89
|
return /*#__PURE__*/_jsx(PreventRemoveContext.Provider, {
|
|
80
90
|
value: value,
|
|
81
91
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","React","useLatestCallback","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","jsx","_jsx","transformPreventedRoutes","preventedRoutesMap","
|
|
1
|
+
{"version":3,"names":["nanoid","React","useLatestCallback","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","jsx","_jsx","transformPreventedRoutes","preventedRoutesMap","preventedRoutes","routeKey","values","preventRemove","PreventRemoveProvider","children","parentId","useState","setPreventedRoutesMap","Map","registry","useRef","navigation","useContext","route","preventRemoveContextValue","setParentPrevented","setPreventRemove","notifyParentPrevented","notifyPreventRemove","id","getState","routes","every","key","Error","current","set","delete","prevPrevented","nextPrevented","hasChanged","size","some","get","useEffect","isPrevented","useInsertionEffect","undefined","value","useMemo","Provider"],"sourceRoot":"../../src","sources":["PreventRemoveProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,12 +5,13 @@ export const NOT_INITIALIZED_ERROR = "The 'navigation' object hasn't been initia
|
|
|
5
5
|
export function createNavigationContainerRef() {
|
|
6
6
|
const methods = [...Object.keys(CommonActions), 'addListener', 'removeListener', 'resetRoot', 'dispatch', 'isFocused', 'canGoBack', 'getRootState', 'getState', 'getParent', 'getCurrentRoute', 'getCurrentOptions'];
|
|
7
7
|
const listeners = {};
|
|
8
|
+
let current = null;
|
|
8
9
|
const removeListener = (event, callback) => {
|
|
9
10
|
if (listeners[event]) {
|
|
10
11
|
listeners[event] = listeners[event].filter(cb => cb !== callback);
|
|
11
12
|
}
|
|
13
|
+
current?.removeListener(event, callback);
|
|
12
14
|
};
|
|
13
|
-
let current = null;
|
|
14
15
|
const ref = {
|
|
15
16
|
get current() {
|
|
16
17
|
return current;
|
|
@@ -33,7 +34,10 @@ export function createNavigationContainerRef() {
|
|
|
33
34
|
},
|
|
34
35
|
...methods.reduce((acc, name) => {
|
|
35
36
|
acc[name] = (...args) => {
|
|
36
|
-
if (
|
|
37
|
+
if (name === 'removeListener') {
|
|
38
|
+
const [event, callback] = args;
|
|
39
|
+
removeListener(event, callback);
|
|
40
|
+
} else if (current == null) {
|
|
37
41
|
switch (name) {
|
|
38
42
|
case 'addListener':
|
|
39
43
|
{
|
|
@@ -42,12 +46,6 @@ export function createNavigationContainerRef() {
|
|
|
42
46
|
listeners[event].push(callback);
|
|
43
47
|
return () => removeListener(event, callback);
|
|
44
48
|
}
|
|
45
|
-
case 'removeListener':
|
|
46
|
-
{
|
|
47
|
-
const [event, callback] = args;
|
|
48
|
-
removeListener(event, callback);
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
49
|
default:
|
|
52
50
|
console.error(NOT_INITIALIZED_ERROR);
|
|
53
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","removeListener","event","callback","filter","cb","
|
|
1
|
+
{"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","current","removeListener","event","callback","filter","cb","ref","value","entries","forEach","callbacks","addListener","isReady","reduce","acc","name","args","push","console","error"],"sourceRoot":"../../src","sources":["createNavigationContainerRef.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAQzD,OAAO,MAAMC,qBAAqB,GAChC,+QAA+Q;AAEjR,OAAO,SAASC,4BAA4BA,CAAA,EAEM;EAChD,MAAMC,OAAO,GAAG,CACd,GAAGC,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC,EAC7B,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,CACX;EAEV,MAAMM,SAAuD,GAAG,CAAC,CAAC;EAElE,IAAIC,OAAiD,GAAG,IAAI;EAE5D,MAAMC,cAAc,GAAGA,CACrBC,KAAa,EACbC,QAAkC,KAC/B;IACH,IAAIJ,SAAS,CAACG,KAAK,CAAC,EAAE;MACpBH,SAAS,CAACG,KAAK,CAAC,GAAGH,SAAS,CAACG,KAAK,CAAC,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKF,QAAQ,CAAC;IACrE;IAEAH,OAAO,EAAEC,cAAc,CACrBC,KAAK,EACLC,QACF,CAAC;EACH,CAAC;EAED,MAAMG,GAAiD,GAAG;IACxD,IAAIN,OAAOA,CAAA,EAAG;MACZ,OAAOA,OAAO;IAChB,CAAC;IACD,IAAIA,OAAOA,CAACO,KAA+C,EAAE;MAC3DP,OAAO,GAAGO,KAAK;MAEf,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjBV,MAAM,CAACW,OAAO,CAACT,SAAS,CAAC,CAACU,OAAO,CAAC,CAAC,CAACP,KAAK,EAAEQ,SAAS,CAAC,KAAK;UACxDA,SAAS,CAACD,OAAO,CAAEN,QAAQ,IAAK;YAC9BI,KAAK,CAACI,WAAW,CACfT,KAAK,EACLC,QACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC;IACDS,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIZ,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,KAAK;MACd;MAEA,OAAOA,OAAO,CAACY,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,GAAGhB,OAAO,CAACiB,MAAM,CAAM,CAACC,GAAG,EAAEC,IAAI,KAAK;MACpCD,GAAG,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGC,IAAW,KAAK;QAC9B,IAAID,IAAI,KAAK,gBAAgB,EAAE;UAC7B,MAAM,CAACb,KAAK,EAAEC,QAAQ,CAAC,GAAGa,IAAI;UAE9Bf,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;QACjC,CAAC,MAAM,IAAIH,OAAO,IAAI,IAAI,EAAE;UAC1B,QAAQe,IAAI;YACV,KAAK,aAAa;cAAE;gBAClB,MAAM,CAACb,KAAK,EAAEC,QAAQ,CAAC,GAAGa,IAAI;gBAE9BjB,SAAS,CAACG,KAAK,CAAC,GAAGH,SAAS,CAACG,KAAK,CAAC,IAAI,EAAE;gBACzCH,SAAS,CAACG,KAAK,CAAC,CAACe,IAAI,CAACd,QAAQ,CAAC;gBAE/B,OAAO,MAAMF,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;cAC9C;YACA;cACEe,OAAO,CAACC,KAAK,CAACzB,qBAAqB,CAAC;UACxC;QACF,CAAC,MAAM;UACL;UACA,OAAOM,OAAO,CAACe,IAAI,CAAC,CAAC,GAAGC,IAAI,CAAC;QAC/B;MACF,CAAC;MACD,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC;EACP,CAAC;EAED,OAAOR,GAAG;AACZ","ignoreList":[]}
|
|
@@ -61,22 +61,21 @@ export function getStateFromPath(path, options) {
|
|
|
61
61
|
// Remove the prefix from the path
|
|
62
62
|
remaining = remaining.replace(normalizedPrefix, '');
|
|
63
63
|
}
|
|
64
|
-
const decodedSegments = [];
|
|
65
|
-
for (const segment of remaining.split('/')) {
|
|
66
|
-
if (!segment) {
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
try {
|
|
70
|
-
decodedSegments.push(decodeURIComponent(segment));
|
|
71
|
-
} catch {
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
64
|
if (screens === undefined) {
|
|
76
65
|
// When no config is specified, use the path segments as route names
|
|
77
|
-
const routes =
|
|
78
|
-
|
|
79
|
-
|
|
66
|
+
const routes = [];
|
|
67
|
+
for (const segment of remaining.split('/')) {
|
|
68
|
+
if (!segment) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
routes.push({
|
|
73
|
+
name: decodeURIComponent(segment)
|
|
74
|
+
});
|
|
75
|
+
} catch {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
80
79
|
if (routes.length) {
|
|
81
80
|
return createNestedStateObject(path, routes, initialRoutes);
|
|
82
81
|
}
|
|
@@ -96,10 +95,17 @@ export function getStateFromPath(path, options) {
|
|
|
96
95
|
|
|
97
96
|
// We match the whole path against the regex instead of segments
|
|
98
97
|
// This makes sure matches such as wildcard will catch any unmatched routes, even if nested
|
|
98
|
+
const firstRawSegment = remaining.split('/')[0];
|
|
99
|
+
let firstDecodedSegment;
|
|
100
|
+
try {
|
|
101
|
+
firstDecodedSegment = firstRawSegment != null ? decodeURIComponent(firstRawSegment) : undefined;
|
|
102
|
+
} catch {
|
|
103
|
+
firstDecodedSegment = undefined;
|
|
104
|
+
}
|
|
99
105
|
const {
|
|
100
106
|
routes,
|
|
101
107
|
config
|
|
102
|
-
} = matchAgainstConfigs(remaining,
|
|
108
|
+
} = matchAgainstConfigs(remaining, firstDecodedSegment, firstRawSegment, configs, configsByScreen);
|
|
103
109
|
if (routes === undefined || config === undefined) {
|
|
104
110
|
return undefined;
|
|
105
111
|
}
|
|
@@ -124,10 +130,14 @@ function prepareConfigResources(options) {
|
|
|
124
130
|
}
|
|
125
131
|
const initialRoutes = getInitialRoutes(options);
|
|
126
132
|
const configs = getSortedNormalizedConfigs(initialRoutes, options?.screens);
|
|
127
|
-
checkForDuplicatedConfigs(configs);
|
|
128
133
|
const configsByScreen = {};
|
|
134
|
+
const configsByPattern = new Map();
|
|
129
135
|
for (const c of configs) {
|
|
130
136
|
(configsByScreen[c.screen] ??= []).push(c);
|
|
137
|
+
const pattern = c.segments.join('/');
|
|
138
|
+
const existing = configsByPattern.get(pattern);
|
|
139
|
+
checkForDuplicatedConfigs(existing, c, pattern);
|
|
140
|
+
configsByPattern.set(pattern, c);
|
|
131
141
|
}
|
|
132
142
|
return {
|
|
133
143
|
initialRoutes,
|
|
@@ -224,32 +234,26 @@ function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
|
|
|
224
234
|
return a.segments.length - b.segments.length;
|
|
225
235
|
});
|
|
226
236
|
}
|
|
227
|
-
function checkForDuplicatedConfigs(configs) {
|
|
228
|
-
// Check for duplicate patterns in the config
|
|
229
|
-
configs.reduce((acc, config) => {
|
|
230
|
-
const pattern = config.segments.join('/');
|
|
231
|
-
if (acc[pattern]) {
|
|
232
|
-
const a = acc[pattern].routeNames;
|
|
233
|
-
const b = config.routeNames;
|
|
234
237
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
238
|
+
// Throw if two configs resolve to the same pattern but conflicting screens
|
|
239
|
+
function checkForDuplicatedConfigs(existing, config, pattern) {
|
|
240
|
+
if (!existing) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const a = existing.routeNames;
|
|
244
|
+
const b = config.routeNames;
|
|
245
|
+
|
|
246
|
+
// It's not a problem if the path string omitted from a inner most screen
|
|
247
|
+
// For example, it's ok if a path resolves to `A > B > C` or `A > B`
|
|
248
|
+
const intersects = a.length > b.length ? arrayStartsWith(a, b) : arrayStartsWith(b, a);
|
|
249
|
+
if (!intersects) {
|
|
250
|
+
throw new Error(`Found conflicting screens with the same pattern. The pattern '${pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`);
|
|
251
|
+
}
|
|
246
252
|
}
|
|
247
|
-
const matchAgainstConfigs = (remaining,
|
|
253
|
+
const matchAgainstConfigs = (remaining, firstDecodedSegment, firstRawSegment, configs, configsByScreen) => {
|
|
248
254
|
let routes;
|
|
249
255
|
let remainingPath = remaining;
|
|
250
256
|
let matchingConfig;
|
|
251
|
-
const firstDecodedSegment = decodedSegments[0];
|
|
252
|
-
const firstRawSegment = remainingPath.split('/')[0];
|
|
253
257
|
|
|
254
258
|
// Go through all configs, and see if the next path segment matches our regex
|
|
255
259
|
for (const config of configs) {
|
|
@@ -263,20 +267,19 @@ const matchAgainstConfigs = (remaining, decodedSegments, configs, configsByScree
|
|
|
263
267
|
|
|
264
268
|
// If our regex matches, we need to extract params from the path
|
|
265
269
|
if (match) {
|
|
266
|
-
|
|
267
|
-
|
|
270
|
+
const matchedRoutes = [];
|
|
271
|
+
let hasInvalidParam = false;
|
|
268
272
|
for (const routeName of config.routeNames) {
|
|
269
273
|
// Check matching name AND pattern in case same screen is used at different levels in config
|
|
270
274
|
const routeConfig = configsByScreen[routeName]?.find(c => arrayStartsWith(config.segments, c.segments));
|
|
271
275
|
let params;
|
|
272
276
|
if (routeConfig && match.groups) {
|
|
273
277
|
const paramEntries = [];
|
|
274
|
-
for (const
|
|
275
|
-
|
|
276
|
-
const param = routeConfig.params.find(it => it.index === index);
|
|
277
|
-
if (param?.screen !== routeName || !param.name) {
|
|
278
|
+
for (const param of routeConfig.params) {
|
|
279
|
+
if (param.screen !== routeName) {
|
|
278
280
|
continue;
|
|
279
281
|
}
|
|
282
|
+
const value = match.groups[`param_${param.index}`];
|
|
280
283
|
if (value == null) {
|
|
281
284
|
paramEntries.push([param.name, undefined]);
|
|
282
285
|
continue;
|
|
@@ -285,29 +288,35 @@ const matchAgainstConfigs = (remaining, decodedSegments, configs, configsByScree
|
|
|
285
288
|
try {
|
|
286
289
|
decoded = decodeURIComponent(value);
|
|
287
290
|
} catch {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
remainingPath
|
|
291
|
-
};
|
|
291
|
+
hasInvalidParam = true;
|
|
292
|
+
break;
|
|
292
293
|
}
|
|
293
294
|
const parser = routeConfig.parse?.[param.name];
|
|
294
295
|
paramEntries.push([param.name, parser ? parser(decoded) : decoded]);
|
|
295
296
|
}
|
|
297
|
+
if (hasInvalidParam) {
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
296
300
|
if (paramEntries.length) {
|
|
297
301
|
params = Object.fromEntries(paramEntries);
|
|
298
302
|
}
|
|
299
303
|
}
|
|
300
304
|
if (params && Object.keys(params).length) {
|
|
301
|
-
|
|
305
|
+
matchedRoutes.push({
|
|
302
306
|
name: routeName,
|
|
303
307
|
params
|
|
304
308
|
});
|
|
305
309
|
} else {
|
|
306
|
-
|
|
310
|
+
matchedRoutes.push({
|
|
307
311
|
name: routeName
|
|
308
312
|
});
|
|
309
313
|
}
|
|
310
314
|
}
|
|
315
|
+
if (hasInvalidParam) {
|
|
316
|
+
continue;
|
|
317
|
+
}
|
|
318
|
+
routes = matchedRoutes;
|
|
319
|
+
matchingConfig = config;
|
|
311
320
|
remainingPath = remainingPath.replace(match[0], '');
|
|
312
321
|
break;
|
|
313
322
|
}
|
|
@@ -410,12 +419,12 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
|
|
|
410
419
|
|
|
411
420
|
// Parse the path string into parts for easier matching
|
|
412
421
|
for (const {
|
|
413
|
-
screen,
|
|
422
|
+
screen: pathScreen,
|
|
414
423
|
path
|
|
415
424
|
} of paths) {
|
|
416
425
|
parts.push(...getPatternParts(path).map(part => ({
|
|
417
426
|
...part,
|
|
418
|
-
screen
|
|
427
|
+
screen: pathScreen
|
|
419
428
|
})));
|
|
420
429
|
}
|
|
421
430
|
const regex = parts.length ? new RegExp(`^(${parts.map((it, i) => {
|
|
@@ -426,11 +435,21 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
|
|
|
426
435
|
return `${it.segment === '*' ? '.*' : escape(it.segment)}\\/`;
|
|
427
436
|
}).join('')})$`) : undefined;
|
|
428
437
|
const segments = parts.map(it => it.segment);
|
|
429
|
-
const params =
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
438
|
+
const params = [];
|
|
439
|
+
const pathParamNames = new Set();
|
|
440
|
+
for (const [index, part] of parts.entries()) {
|
|
441
|
+
if (!part.param) {
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
params.push({
|
|
445
|
+
index,
|
|
446
|
+
screen: part.screen,
|
|
447
|
+
name: part.param
|
|
448
|
+
});
|
|
449
|
+
if (part.screen === screen) {
|
|
450
|
+
pathParamNames.add(part.param);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
434
453
|
return {
|
|
435
454
|
screen,
|
|
436
455
|
regex,
|
|
@@ -439,6 +458,7 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
|
|
|
439
458
|
routeNames,
|
|
440
459
|
parse,
|
|
441
460
|
explicitParamNames: getExplicitParamNames(parse),
|
|
461
|
+
pathParamNames,
|
|
442
462
|
hasNestedScreens
|
|
443
463
|
};
|
|
444
464
|
};
|
|
@@ -523,7 +543,7 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
|
|
|
523
543
|
}
|
|
524
544
|
route = findFocusedRoute(state);
|
|
525
545
|
route.path = path.replace(/\/$/, '');
|
|
526
|
-
const params = parseQueryParams(path, routeConfig?.parse, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, route.params);
|
|
546
|
+
const params = parseQueryParams(path, routeConfig?.parse, routeConfig?.pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, route.params);
|
|
527
547
|
if (params) {
|
|
528
548
|
route.params = {
|
|
529
549
|
...route.params,
|
|
@@ -532,9 +552,13 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
|
|
|
532
552
|
}
|
|
533
553
|
return state;
|
|
534
554
|
};
|
|
535
|
-
const parseQueryParams = (path, parseConfig, explicitParamNames, hasNestedScreens = false, routeParams) => {
|
|
555
|
+
const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explicitParamNames, hasNestedScreens = false, routeParams) => {
|
|
536
556
|
const query = path.split('?')[1];
|
|
537
557
|
const params = queryString.parse(query);
|
|
558
|
+
for (const name of pathParamNames) {
|
|
559
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
560
|
+
delete params[name];
|
|
561
|
+
}
|
|
538
562
|
if (parseConfig) {
|
|
539
563
|
Object.keys(params).forEach(name => {
|
|
540
564
|
if (Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","Object","entries","map","name","length","Set","undefined","getStateFromPath","path","options","initialRoutes","configs","configsByScreen","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","decodedSegments","segment","split","push","decodeURIComponent","routes","createNestedStateObject","match","find","config","segments","join","routeNames","matchAgainstConfigs","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","process","env","NODE_ENV","getInitialRoutes","getSortedNormalizedConfigs","checkForDuplicatedConfigs","c","screen","initialRouteName","parentScreens","concat","keys","key","createNormalizedConfigs","sort","a","b","localeCompare","i","Math","max","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","reduce","acc","pattern","intersects","every","it","Error","assign","remainingPath","matchingConfig","firstDecodedSegment","firstRawSegment","regex","canMatchFirstSegment","routeName","routeConfig","params","groups","paramEntries","value","index","Number","param","decoded","parser","fromEntries","configSegment","decodedSegment","rawSegment","initials","paths","createConfigItem","nestedScreens","hasNestedScreens","exact","aliasConfigs","alias","forEach","nestedConfig","result","pop","parts","part","RegExp","reg","optional","filter","explicitParamNames","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","parseQueryParams","parseConfig","routeParams","query","hasOwnProperty","call","has"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","Object","entries","map","name","length","Set","undefined","getStateFromPath","path","options","initialRoutes","configs","configsByScreen","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","routes","segment","split","push","decodeURIComponent","createNestedStateObject","match","find","config","segments","join","routeNames","firstRawSegment","firstDecodedSegment","matchAgainstConfigs","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","process","env","NODE_ENV","getInitialRoutes","getSortedNormalizedConfigs","configsByPattern","Map","c","screen","pattern","existing","checkForDuplicatedConfigs","initialRouteName","parentScreens","concat","keys","key","createNormalizedConfigs","sort","a","b","localeCompare","i","Math","max","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","intersects","Error","remainingPath","matchingConfig","regex","canMatchFirstSegment","matchedRoutes","hasInvalidParam","routeName","routeConfig","params","groups","paramEntries","param","value","index","decoded","parser","fromEntries","configSegment","decodedSegment","rawSegment","initials","paths","createConfigItem","nestedScreens","hasNestedScreens","exact","aliasConfigs","alias","forEach","nestedConfig","result","pop","parts","pathScreen","part","RegExp","it","reg","optional","pathParamNames","add","explicitParamNames","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","parseQueryParams","parseConfig","routeParams","query","hasOwnProperty","call","has"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ import * as React from 'react';
|
|
|
7
7
|
export function useEventEmitter(listen, onPostEmit) {
|
|
8
8
|
const listenRef = React.useRef(listen);
|
|
9
9
|
const onPostEmitRef = React.useRef(onPostEmit);
|
|
10
|
-
React.
|
|
10
|
+
React.useInsertionEffect(() => {
|
|
11
11
|
listenRef.current = listen;
|
|
12
12
|
onPostEmitRef.current = onPostEmit;
|
|
13
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEventEmitter","listen","onPostEmit","listenRef","useRef","onPostEmitRef","
|
|
1
|
+
{"version":3,"names":["React","useEventEmitter","listen","onPostEmit","listenRef","useRef","onPostEmitRef","useInsertionEffect","current","listeners","Object","create","useCallback","target","removeListener","type","callback","callbacks","undefined","index","indexOf","splice","addListener","push","removed","emit","data","canPreventDefault","items","slice","concat","keys","map","t","filter","cb","i","self","lastIndexOf","descriptors","enumerable","value","defaultPrevented","get","preventDefault","event","defineProperties","forEach","useMemo"],"sourceRoot":"../../src","sources":["useEventEmitter.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,8 +15,10 @@ export function useKeyedChildListeners() {
|
|
|
15
15
|
// @ts-expect-error: according to ref stated above you can use `key` to index type
|
|
16
16
|
keyedListeners[type][key] = listener;
|
|
17
17
|
return () => {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
if (keyedListeners[type][key] === listener) {
|
|
19
|
+
// @ts-expect-error: according to ref stated above you can use `key` to index type
|
|
20
|
+
keyedListeners[type][key] = undefined;
|
|
21
|
+
}
|
|
20
22
|
};
|
|
21
23
|
}, [keyedListeners]);
|
|
22
24
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sourceRoot":"../../src","sources":["useKeyedChildListeners.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IACH;IACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MACX;
|
|
1
|
+
{"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sourceRoot":"../../src","sources":["useKeyedChildListeners.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IACH;IACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MACX,IAAIX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,KAAKC,QAAQ,EAAE;QAC1C;QACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGE,SAAS;MACvC;IACF,CAAC;EACH,CAAC,EACD,CAACZ,cAAc,CACjB,CAAC;EAED,OAAO;IACLA,cAAc;IACdO;EACF,CAAC;AACH","ignoreList":[]}
|