@react-navigation/core 8.0.0-alpha.23 → 8.0.0-alpha.24
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/NavigationBuilderContext.js.map +1 -1
- package/lib/module/StaticNavigation.js +1 -1
- package/lib/module/StaticNavigation.js.map +1 -1
- package/lib/module/createNavigatorFactory.js.map +1 -1
- package/lib/module/getPathFromState.js +87 -57
- package/lib/module/getPathFromState.js.map +1 -1
- package/lib/module/getStateFromPath.js +77 -46
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +13 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/useEventEmitter.js +4 -1
- package/lib/module/useEventEmitter.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +1 -7
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useOnAction.js +4 -1
- package/lib/module/useOnAction.js.map +1 -1
- package/lib/module/useOnPreventRemove.js +35 -24
- package/lib/module/useOnPreventRemove.js.map +1 -1
- package/lib/module/useRoute.js.map +1 -1
- package/lib/module/validatePathConfig.js +50 -37
- package/lib/module/validatePathConfig.js.map +1 -1
- package/lib/typescript/src/NavigationBuilderContext.d.ts +2 -2
- package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
- package/lib/typescript/src/StaticNavigation.d.ts +3 -3
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/createNavigatorFactory.d.ts +4 -2
- package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
- package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
- package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +66 -17
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useEventEmitter.d.ts +1 -1
- package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useOnAction.d.ts.map +1 -1
- package/lib/typescript/src/useOnPreventRemove.d.ts +2 -6
- package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
- package/lib/typescript/src/useRoute.d.ts +1 -1
- package/lib/typescript/src/useRoute.d.ts.map +1 -1
- package/lib/typescript/src/utilities.d.ts +4 -38
- package/lib/typescript/src/utilities.d.ts.map +1 -1
- package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/NavigationBuilderContext.tsx +5 -1
- package/src/StaticNavigation.tsx +7 -6
- package/src/createNavigatorFactory.tsx +23 -2
- package/src/getPathFromState.tsx +97 -66
- package/src/getStateFromPath.tsx +168 -142
- package/src/index.tsx +1 -0
- package/src/types.tsx +257 -33
- package/src/useEventEmitter.tsx +6 -1
- package/src/useNavigationBuilder.tsx +1 -8
- package/src/useOnAction.tsx +6 -2
- package/src/useOnPreventRemove.tsx +68 -36
- package/src/useRoute.tsx +3 -5
- package/src/utilities.tsx +8 -41
- package/src/validatePathConfig.tsx +85 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAMA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAgD9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAkBxD;EACDC,gBAAgB,EAAEA,CAAA,KAAMC,SAAS;EACjCC,WAAW,EAAEA,CAAA,KAAMD,SAAS;EAC5BE,eAAe,EAAEA,CAAA,KAAMF,SAAS;EAChCG,cAAc,EAAEA,CAAA,KAAM;IACpB,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAID,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ import { useRoute } from "./useRoute.js";
|
|
|
21
21
|
// `= ParamsForScreen<C> | ParamsForScreen<S>`
|
|
22
22
|
|
|
23
23
|
// Only infer params from linking if it's a pattern (i.e., contains ':')
|
|
24
|
-
// or if parse is present
|
|
24
|
+
// or if parse is present, which can also define query params.
|
|
25
25
|
// This avoids inferring non-literals like 'string' without parse.
|
|
26
26
|
|
|
27
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isValidElementType","combinePatternParts","getPatternParts","useRoute","jsx","_jsx","createScreenFactory","config","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","_","screenOptions","options","screenListeners","markSharedPathConfigs","sources","blocked","candidates","Map","collect","parentParts","disabled","values","parts","path","exact","has","add","pattern","part","segment","join","get","set","shared","entry","source","undefined","some","candidate","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","hasEmptyPath","WeakSet","WeakMap","createPathConfigForTree","t","o","skipInitialDetection","allowAutoEmptyPath","initialRouteName","routeNames","Set","keys","forEach","createPathConfigForScreens","fromEntries","sort","a","b","screenConfig","normalizePath","replace","linking","assign","alias","hasExplicitScreens","hasDisabledLinking","childOptions","includes","skipInitialDetectionInChild","allowAutoEmptyPathInChild","toLowerCase","filter"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","isValidElementType","combinePatternParts","getPatternParts","useRoute","jsx","_jsx","createScreenFactory","config","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","_","screenOptions","options","screenListeners","markSharedPathConfigs","sources","blocked","candidates","Map","collect","parentParts","disabled","values","parts","path","exact","has","add","pattern","part","segment","join","get","set","shared","entry","source","undefined","some","candidate","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","hasEmptyPath","WeakSet","WeakMap","createPathConfigForTree","t","o","skipInitialDetection","allowAutoEmptyPath","initialRouteName","routeNames","Set","keys","forEach","createPathConfigForScreens","fromEntries","sort","a","b","screenConfig","normalizePath","replace","linking","assign","alias","hasExplicitScreens","hasDisabledLinking","childOptions","includes","skipInitialDetectionInChild","allowAutoEmptyPathInChild","toLowerCase","filter"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;AACjC,SACEC,8BAA8B,QAGzB,uBAAoB;
|
|
1
|
+
{"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;AACjC,SACEC,8BAA8B,QAGzB,uBAAoB;AA0D3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,SAAmC,EACH;EAChC,MAAMC,WAAW,GAAGD,SAAS,CAACC,WAAW,IAAID,SAAS,CAACE,IAAI,IAAI,WAAW;EAE1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,MAAMC,kBAAkB,GAAGP,8BAA8B,CACvD;QACEE,SAAS;QACTH,MAAM;QACND,KAAK;QACLQ;MACF,CAAC,EACDH,WACF,CAAC;MAED,OAAO;QACLG,MAAM;QACNE,IAAIA,CACFC,kBAEE,EACF;UACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;YAC1B,oBAAOb,KAAK,CAACc,aAAa,CAACF,kBAAkB,EAAE;cAC7CP,SAAS,EAAEK;YACb,CAAC,CAAC;UACJ,CAAC;UAEDG,aAAa,CAACP,WAAW,GAAG,GAAGA,WAAW,MAAM;UAEhD,OAAO;YACLG,MAAM;YACNM,YAAY,EAAEA,CAAA,KAAMF;UACtB,CAAC;QACH,CAAC;QACDE,YAAYA,CAAA,EAAG;UACb,OAAOL,kBAAkB;QAC3B;MACF,CAAC;IACH;IAEA,OAAO;MACLL,SAAS;MACTH,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOO,eAAe;AACxB","ignoreList":[]}
|
|
@@ -4,6 +4,15 @@ import queryString from 'query-string';
|
|
|
4
4
|
import { getPatternParts } from "./getPatternParts.js";
|
|
5
5
|
import { getStateFromRouteParams } from "./getStateFromRouteParams.js";
|
|
6
6
|
import { validatePathConfig } from "./validatePathConfig.js";
|
|
7
|
+
const encodePathParam = value => {
|
|
8
|
+
let result = '';
|
|
9
|
+
for (const char of value) {
|
|
10
|
+
const charCode = char.charCodeAt(0);
|
|
11
|
+
const safe = charCode >= 65 && charCode <= 90 || charCode >= 97 && charCode <= 122 || charCode >= 48 && charCode <= 57 || "-._~!$&'()*+,;=:@".includes(char);
|
|
12
|
+
result += safe ? char : encodeURIComponent(char);
|
|
13
|
+
}
|
|
14
|
+
return result;
|
|
15
|
+
};
|
|
7
16
|
const getActiveRoute = state => {
|
|
8
17
|
const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];
|
|
9
18
|
if (route == null) {
|
|
@@ -110,42 +119,45 @@ export function getPathFromState(state, options) {
|
|
|
110
119
|
nestedRouteNames.push(route.name);
|
|
111
120
|
if (route.params) {
|
|
112
121
|
const options = config;
|
|
113
|
-
const
|
|
122
|
+
const params = route.params;
|
|
123
|
+
const currentParams = {};
|
|
124
|
+
for (const key in params) {
|
|
125
|
+
const value = params[key];
|
|
114
126
|
if (value === undefined) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (
|
|
118
|
-
|
|
127
|
+
let optional = false;
|
|
128
|
+
for (const part of options.parts ?? []) {
|
|
129
|
+
if (part.param === key) {
|
|
130
|
+
optional = part.optional === true;
|
|
131
|
+
break;
|
|
119
132
|
}
|
|
120
|
-
}
|
|
121
|
-
|
|
133
|
+
}
|
|
134
|
+
if (optional) {
|
|
135
|
+
continue;
|
|
122
136
|
}
|
|
123
137
|
}
|
|
124
|
-
const stringify = options
|
|
125
|
-
|
|
126
|
-
}
|
|
138
|
+
const stringify = options.stringify?.[key] ?? String;
|
|
139
|
+
currentParams[key] = stringify(value);
|
|
140
|
+
}
|
|
127
141
|
if (parts?.length) {
|
|
128
142
|
Object.assign(allParams, currentParams);
|
|
129
143
|
}
|
|
130
144
|
if (focusedRoute === route) {
|
|
131
145
|
// If this is the focused route, keep the params for later use
|
|
132
146
|
// We save it here since it's been stringified already
|
|
133
|
-
focusedParams = {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}) => {
|
|
141
|
-
if (param) {
|
|
142
|
-
// Remove the params present in the pattern since we'll only use the rest for query string
|
|
143
|
-
if (focusedParams) {
|
|
144
|
-
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
145
|
-
delete focusedParams[param];
|
|
147
|
+
focusedParams = {};
|
|
148
|
+
for (const key in currentParams) {
|
|
149
|
+
let inPattern = false;
|
|
150
|
+
for (const part of parts ?? []) {
|
|
151
|
+
if (part.param === key) {
|
|
152
|
+
inPattern = true;
|
|
153
|
+
break;
|
|
146
154
|
}
|
|
147
155
|
}
|
|
148
|
-
|
|
156
|
+
const value = currentParams[key];
|
|
157
|
+
if (!inPattern && value !== undefined && value !== 'undefined') {
|
|
158
|
+
focusedParams[key] = value;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
149
161
|
}
|
|
150
162
|
}
|
|
151
163
|
|
|
@@ -171,47 +183,58 @@ export function getPathFromState(state, options) {
|
|
|
171
183
|
}
|
|
172
184
|
}
|
|
173
185
|
if (currentOptions[route.name] != null) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
186
|
+
if (parts) {
|
|
187
|
+
let index = 0;
|
|
188
|
+
for (const {
|
|
189
|
+
segment,
|
|
190
|
+
param,
|
|
191
|
+
optional
|
|
192
|
+
} of parts) {
|
|
193
|
+
if (index > 0) {
|
|
194
|
+
path += '/';
|
|
195
|
+
}
|
|
196
|
+
index++;
|
|
185
197
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (
|
|
190
|
-
|
|
191
|
-
|
|
198
|
+
// We don't know what to show for wildcard patterns
|
|
199
|
+
// Showing the route name seems ok, though whatever we show here will be incorrect
|
|
200
|
+
// Since the page doesn't actually exist
|
|
201
|
+
if (segment === '*') {
|
|
202
|
+
path += route.name;
|
|
203
|
+
continue;
|
|
192
204
|
}
|
|
193
205
|
|
|
194
|
-
//
|
|
195
|
-
|
|
196
|
-
|
|
206
|
+
// If the path has a pattern for a param, put the param in the path
|
|
207
|
+
if (param) {
|
|
208
|
+
const value = allParams[param];
|
|
209
|
+
if (value === undefined && optional) {
|
|
210
|
+
// Optional params without value assigned in route.params should be ignored
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// Valid characters according to
|
|
215
|
+
// https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 (see pchar definition)
|
|
216
|
+
path += encodePathParam(String(value));
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
path += encodeURIComponent(segment);
|
|
197
220
|
}
|
|
198
|
-
|
|
199
|
-
}).join('/');
|
|
221
|
+
}
|
|
200
222
|
} else {
|
|
201
223
|
path += encodeURIComponent(route.name);
|
|
202
224
|
}
|
|
203
225
|
if (!focusedParams && focusedRoute.params) {
|
|
204
|
-
focusedParams =
|
|
226
|
+
focusedParams = {};
|
|
227
|
+
const params = focusedRoute.params;
|
|
228
|
+
for (const key in params) {
|
|
229
|
+
const value = String(params[key]);
|
|
230
|
+
if (value !== 'undefined') {
|
|
231
|
+
focusedParams[key] = value;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
205
234
|
}
|
|
206
235
|
if (route.state) {
|
|
207
236
|
path += '/';
|
|
208
237
|
} else if (focusedParams) {
|
|
209
|
-
for (const param in focusedParams) {
|
|
210
|
-
if (focusedParams[param] === 'undefined') {
|
|
211
|
-
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
212
|
-
delete focusedParams[param];
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
238
|
const query = queryString.stringify(focusedParams, {
|
|
216
239
|
sort: false
|
|
217
240
|
});
|
|
@@ -265,8 +288,15 @@ const createConfigItem = (config, parentParts) => {
|
|
|
265
288
|
screens
|
|
266
289
|
};
|
|
267
290
|
};
|
|
268
|
-
const createNormalizedConfigs = (options, parts) =>
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
291
|
+
const createNormalizedConfigs = (options, parts) => {
|
|
292
|
+
const configs = {};
|
|
293
|
+
const screens = options;
|
|
294
|
+
for (const name in screens) {
|
|
295
|
+
const config = screens[name];
|
|
296
|
+
if (config !== undefined) {
|
|
297
|
+
configs[name] = createConfigItem(config, parts);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
return configs;
|
|
301
|
+
};
|
|
272
302
|
//# sourceMappingURL=getPathFromState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","getActiveRoute","state","route","index","routes","length","Error","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","screens","cached","get","normalizedConfigs","createNormalizedConfigs","set","getTransformedState","configs","map","config","name","params","screen","nestedState","getPathFromState","String","transformedState","path","current","allParams","initialRoute","parts","focusedParams","currentOptions","focusedRoute","nestedRouteNames","hasNext","push","currentParams","
|
|
1
|
+
{"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","encodePathParam","value","result","char","charCode","charCodeAt","safe","includes","encodeURIComponent","getActiveRoute","state","route","index","routes","length","Error","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","screens","cached","get","normalizedConfigs","createNormalizedConfigs","set","getTransformedState","configs","map","config","name","params","screen","nestedState","getPathFromState","String","transformedState","path","current","allParams","initialRoute","parts","focusedParams","currentOptions","focusedRoute","nestedRouteNames","hasNext","push","currentParams","key","undefined","optional","part","param","stringify","Object","assign","inPattern","nextRoute","nestedConfig","segment","query","sort","replace","startsWith","createConfigItem","parentParts","exact"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,14 @@ const INVALID_PARSER_ERROR = 'Invalid parser. Expected a function or a Standard
|
|
|
12
12
|
const PARAM_GROUP_PREFIX = 'param_';
|
|
13
13
|
const NESTED_SCREEN_PARAM_NAMES = ['screen', 'params', 'initial', 'path', 'merge', 'pop'];
|
|
14
14
|
const getExplicitParamNames = parse => {
|
|
15
|
-
const names =
|
|
15
|
+
const names = [];
|
|
16
|
+
if (parse) {
|
|
17
|
+
for (const name in parse) {
|
|
18
|
+
if (parse[name] != null) {
|
|
19
|
+
names.push(name);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
16
23
|
return names.length ? new Set(names) : undefined;
|
|
17
24
|
};
|
|
18
25
|
const getStandardSchema = parser => {
|
|
@@ -63,7 +70,7 @@ export function getStateFromPath(path, options, previous) {
|
|
|
63
70
|
// pick the one that best matches the current navigation state
|
|
64
71
|
const resolveSharedConfig = config => {
|
|
65
72
|
if (config.shared) {
|
|
66
|
-
const candidates = configsByPattern[config.
|
|
73
|
+
const candidates = configsByPattern[config.pattern];
|
|
67
74
|
if (candidates) {
|
|
68
75
|
return selectSharedConfig(config, candidates, previous, initialRoutes);
|
|
69
76
|
}
|
|
@@ -114,7 +121,7 @@ export function getStateFromPath(path, options, previous) {
|
|
|
114
121
|
if (remaining === '/') {
|
|
115
122
|
// We need to add special handling of empty path so navigation to empty path also works
|
|
116
123
|
// When handling empty path, we should only look at the root level config
|
|
117
|
-
const match = configs.find(config => config.
|
|
124
|
+
const match = configs.find(config => config.pattern === '');
|
|
118
125
|
if (match) {
|
|
119
126
|
const config = resolveSharedConfig(match);
|
|
120
127
|
return createNestedStateObject(path, config.routeNames.map(name => ({
|
|
@@ -172,7 +179,7 @@ function prepareConfigResources(options) {
|
|
|
172
179
|
const configsByPattern = {};
|
|
173
180
|
for (const c of configs) {
|
|
174
181
|
(configsByScreen[c.screen] ??= []).push(c);
|
|
175
|
-
(configsByPattern[c.
|
|
182
|
+
(configsByPattern[c.pattern] ??= []).push(c);
|
|
176
183
|
}
|
|
177
184
|
return {
|
|
178
185
|
initialRoutes,
|
|
@@ -193,10 +200,17 @@ function getInitialRoutes(options) {
|
|
|
193
200
|
}
|
|
194
201
|
function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
|
|
195
202
|
// Create a normalized configs array which will be easier to use
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
203
|
+
const configs = [];
|
|
204
|
+
for (const key in screens) {
|
|
205
|
+
configs.push(...createNormalizedConfigs(key, screens, initialRoutes, [], [], []));
|
|
206
|
+
}
|
|
207
|
+
for (let order = 0; order < configs.length; order++) {
|
|
208
|
+
const config = configs[order];
|
|
209
|
+
if (config) {
|
|
210
|
+
config.order = order;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return configs.sort((a, b) => {
|
|
200
214
|
// Sort config from most specific to least specific:
|
|
201
215
|
// - more segments
|
|
202
216
|
// - static segments
|
|
@@ -278,23 +292,23 @@ function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
|
|
|
278
292
|
}
|
|
279
293
|
function checkForDuplicatedConfigs(configs) {
|
|
280
294
|
// Check for duplicate patterns in the config
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
295
|
+
const patterns = {};
|
|
296
|
+
for (const config of configs) {
|
|
297
|
+
const pattern = config.pattern;
|
|
298
|
+
const existing = patterns[pattern];
|
|
299
|
+
if (existing) {
|
|
300
|
+
const a = existing.routeNames;
|
|
285
301
|
const b = config.routeNames;
|
|
286
302
|
|
|
287
303
|
// It's not a problem if the path string omitted from a inner most screen
|
|
288
304
|
// For example, it's ok if a path resolves to `A > B > C` or `A > B`
|
|
289
305
|
const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);
|
|
290
|
-
if (!intersects && (!
|
|
306
|
+
if (!intersects && (!existing.shared || !config.shared)) {
|
|
291
307
|
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 unless shared: true is specified.`);
|
|
292
308
|
}
|
|
293
309
|
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
});
|
|
297
|
-
}, {});
|
|
310
|
+
patterns[pattern] = config;
|
|
311
|
+
}
|
|
298
312
|
}
|
|
299
313
|
const matchAgainstConfig = (remaining, config, configsByScreen) => {
|
|
300
314
|
if (!config.regex) {
|
|
@@ -311,16 +325,19 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
|
|
|
311
325
|
// at different levels or branches in config
|
|
312
326
|
const routeConfig = configsByScreen[routeName]?.find(c => index === c.routeNames.length - 1 && arrayStartsWith(config.routeNames, c.routeNames) && arrayStartsWith(config.segments, c.segments));
|
|
313
327
|
let params;
|
|
328
|
+
let hasParams = false;
|
|
314
329
|
if (routeConfig && match.groups) {
|
|
315
|
-
|
|
316
|
-
for (const
|
|
330
|
+
params = {};
|
|
331
|
+
for (const key in match.groups) {
|
|
332
|
+
const value = match.groups[key];
|
|
317
333
|
const index = Number(key.replace(PARAM_GROUP_PREFIX, ''));
|
|
318
334
|
const param = routeConfig.params.find(it => it.index === index);
|
|
319
|
-
if (param
|
|
335
|
+
if (!param || param.screen !== routeName) {
|
|
320
336
|
continue;
|
|
321
337
|
}
|
|
322
338
|
if (value == null) {
|
|
323
|
-
|
|
339
|
+
params[param.name] = undefined;
|
|
340
|
+
hasParams = true;
|
|
324
341
|
continue;
|
|
325
342
|
}
|
|
326
343
|
let decoded;
|
|
@@ -331,7 +348,8 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
|
|
|
331
348
|
}
|
|
332
349
|
const parser = routeConfig.parse?.[param.name];
|
|
333
350
|
if (!parser) {
|
|
334
|
-
|
|
351
|
+
params[param.name] = decoded;
|
|
352
|
+
hasParams = true;
|
|
335
353
|
continue;
|
|
336
354
|
}
|
|
337
355
|
const schema = getStandardSchema(parser);
|
|
@@ -341,11 +359,13 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
|
|
|
341
359
|
validationFailed = true;
|
|
342
360
|
break;
|
|
343
361
|
}
|
|
344
|
-
|
|
362
|
+
params[param.name] = result.value;
|
|
363
|
+
hasParams = true;
|
|
345
364
|
continue;
|
|
346
365
|
}
|
|
347
366
|
if (typeof parser === 'function') {
|
|
348
|
-
|
|
367
|
+
params[param.name] = parser(decoded);
|
|
368
|
+
hasParams = true;
|
|
349
369
|
continue;
|
|
350
370
|
}
|
|
351
371
|
throw new Error(INVALID_PARSER_ERROR);
|
|
@@ -354,11 +374,8 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
|
|
|
354
374
|
// A failed param validation invalidates the whole nested route chain for this config.
|
|
355
375
|
break;
|
|
356
376
|
}
|
|
357
|
-
if (paramEntries.length) {
|
|
358
|
-
params = Object.fromEntries(paramEntries);
|
|
359
|
-
}
|
|
360
377
|
}
|
|
361
|
-
if (params &&
|
|
378
|
+
if (params && hasParams) {
|
|
362
379
|
matchedRoutes.push({
|
|
363
380
|
name: routeName,
|
|
364
381
|
params
|
|
@@ -420,7 +437,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, parts, parentScr
|
|
|
420
437
|
if (typeof config !== 'string' && typeof config.path !== 'string' && config.alias?.length) {
|
|
421
438
|
throw new Error(`Screen '${screen}' doesn't specify a 'path'. A 'path' needs to be specified in order to use 'alias'.`);
|
|
422
439
|
}
|
|
423
|
-
if (
|
|
440
|
+
if (nestedScreens) {
|
|
424
441
|
// property `initialRouteName` without `screens` has no purpose
|
|
425
442
|
if ('initialRouteName' in config && typeof config.initialRouteName === 'string') {
|
|
426
443
|
initials.push({
|
|
@@ -428,33 +445,46 @@ const createNormalizedConfigs = (screen, routeConfig, initials, parts, parentScr
|
|
|
428
445
|
parentScreens
|
|
429
446
|
});
|
|
430
447
|
}
|
|
431
|
-
|
|
448
|
+
for (const nestedConfig in nestedScreens) {
|
|
432
449
|
const result = createNormalizedConfigs(nestedConfig, nestedScreens, initials, currentParts, [...parentScreens], routeNames);
|
|
433
450
|
configs.push(...result);
|
|
434
|
-
}
|
|
451
|
+
}
|
|
435
452
|
}
|
|
436
453
|
}
|
|
437
454
|
routeNames.pop();
|
|
438
455
|
return configs;
|
|
439
456
|
};
|
|
440
457
|
const createConfigItem = (screen, routeNames, parts, parse, hasNestedScreens = false, shared = false) => {
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
458
|
+
let regex;
|
|
459
|
+
const segments = [];
|
|
460
|
+
const params = [];
|
|
461
|
+
if (parts.length) {
|
|
462
|
+
let regexString = '^(';
|
|
463
|
+
let index = 0;
|
|
464
|
+
for (const part of parts) {
|
|
465
|
+
segments.push(part.segment);
|
|
466
|
+
if (part.param) {
|
|
467
|
+
const reg = part.regex || '[^/]+';
|
|
468
|
+
regexString += `(((?<${PARAM_GROUP_PREFIX}${index}>${reg})\\/)${part.optional ? '?' : ''})`;
|
|
469
|
+
params.push({
|
|
470
|
+
index,
|
|
471
|
+
screen: part.screen,
|
|
472
|
+
name: part.param
|
|
473
|
+
});
|
|
474
|
+
} else {
|
|
475
|
+
regexString += `${part.segment === '*' ? '.*' : escape(part.segment)}\\/`;
|
|
476
|
+
}
|
|
477
|
+
index++;
|
|
478
|
+
}
|
|
479
|
+
regexString += ')$';
|
|
480
|
+
regex = new RegExp(regexString);
|
|
481
|
+
}
|
|
482
|
+
const pattern = segments.join('/');
|
|
454
483
|
return {
|
|
455
484
|
screen,
|
|
456
485
|
order: 0,
|
|
457
486
|
regex,
|
|
487
|
+
pattern,
|
|
458
488
|
segments,
|
|
459
489
|
params,
|
|
460
490
|
routeNames,
|
|
@@ -619,7 +649,7 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
|
|
|
619
649
|
return undefined;
|
|
620
650
|
}
|
|
621
651
|
focusedRoute.path = path.replace(/\/$/, '');
|
|
622
|
-
const pathParamNames = new Set(routeConfig?.params.filter(param => param.screen === routeConfig.screen
|
|
652
|
+
const pathParamNames = new Set(routeConfig?.params.filter(param => param.screen === routeConfig.screen).map(param => param.name));
|
|
623
653
|
const queryParams = parseQueryParams(path, routeConfig?.parse, pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, focusedRoute.params);
|
|
624
654
|
if (!queryParams.valid) {
|
|
625
655
|
return undefined;
|
|
@@ -642,7 +672,8 @@ const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explici
|
|
|
642
672
|
delete params[name];
|
|
643
673
|
}
|
|
644
674
|
if (parseConfig) {
|
|
645
|
-
for (const
|
|
675
|
+
for (const name in parseConfig) {
|
|
676
|
+
const parser = parseConfig[name];
|
|
646
677
|
if (!parser || pathParamNames.has(name)) {
|
|
647
678
|
continue;
|
|
648
679
|
}
|