@react-navigation/core 8.0.0-alpha.13 → 8.0.0-alpha.15
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/checkSerializable.js +11 -4
- package/lib/module/checkSerializable.js.map +1 -1
- package/lib/module/createNavigatorFactory.js.map +1 -1
- package/lib/module/getActionFromState.js +15 -2
- package/lib/module/getActionFromState.js.map +1 -1
- package/lib/module/getStateFromPath.js +61 -45
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/useEventEmitter.js +43 -31
- package/lib/module/useEventEmitter.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +48 -47
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useRouteCache.js +2 -1
- package/lib/module/useRouteCache.js.map +1 -1
- package/lib/typescript/src/checkSerializable.d.ts +5 -3
- package/lib/typescript/src/checkSerializable.d.ts.map +1 -1
- package/lib/typescript/src/createNavigatorFactory.d.ts +2 -1
- package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
- package/lib/typescript/src/getActionFromState.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/useEventEmitter.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/checkSerializable.tsx +22 -12
- package/src/createNavigatorFactory.tsx +13 -1
- package/src/getActionFromState.tsx +20 -4
- package/src/getStateFromPath.tsx +110 -70
- package/src/index.tsx +1 -1
- package/src/useEventEmitter.tsx +45 -36
- package/src/useNavigationBuilder.tsx +77 -76
- package/src/useRouteCache.tsx +2 -1
|
@@ -9,7 +9,7 @@ const checkSerializableWithoutCircularReference = (o, seen, location) => {
|
|
|
9
9
|
if (Object.prototype.toString.call(o) !== '[object Object]' && !Array.isArray(o)) {
|
|
10
10
|
return {
|
|
11
11
|
serializable: false,
|
|
12
|
-
location,
|
|
12
|
+
location: location.slice(),
|
|
13
13
|
reason: typeof o === 'function' ? 'Function' : String(o)
|
|
14
14
|
};
|
|
15
15
|
}
|
|
@@ -17,25 +17,32 @@ const checkSerializableWithoutCircularReference = (o, seen, location) => {
|
|
|
17
17
|
return {
|
|
18
18
|
serializable: false,
|
|
19
19
|
reason: 'Circular reference',
|
|
20
|
-
location
|
|
20
|
+
location: location.slice()
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
seen.add(o);
|
|
24
24
|
if (Array.isArray(o)) {
|
|
25
25
|
for (let i = 0; i < o.length; i++) {
|
|
26
|
-
|
|
26
|
+
location.push(i);
|
|
27
|
+
const childResult = checkSerializableWithoutCircularReference(o[i], seen, location);
|
|
28
|
+
location.pop();
|
|
27
29
|
if (!childResult.serializable) {
|
|
30
|
+
seen.delete(o);
|
|
28
31
|
return childResult;
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
} else {
|
|
32
35
|
for (const key in o) {
|
|
33
|
-
|
|
36
|
+
location.push(key);
|
|
37
|
+
const childResult = checkSerializableWithoutCircularReference(o[key], seen, location);
|
|
38
|
+
location.pop();
|
|
34
39
|
if (!childResult.serializable) {
|
|
40
|
+
seen.delete(o);
|
|
35
41
|
return childResult;
|
|
36
42
|
}
|
|
37
43
|
}
|
|
38
44
|
}
|
|
45
|
+
seen.delete(o);
|
|
39
46
|
return {
|
|
40
47
|
serializable: true
|
|
41
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkSerializableWithoutCircularReference","o","seen","location","undefined","serializable","Object","prototype","toString","call","Array","isArray","reason","String","has","add","i","length","childResult","
|
|
1
|
+
{"version":3,"names":["checkSerializableWithoutCircularReference","o","seen","location","undefined","serializable","Object","prototype","toString","call","Array","isArray","slice","reason","String","has","add","i","length","push","childResult","pop","delete","key","checkSerializable","Set"],"sourceRoot":"../../src","sources":["checkSerializable.tsx"],"mappings":";;AAQA,MAAMA,yCAAyC,GAAGA,CAChDC,CAAyB,EACzBC,IAAc,EACdC,QAA6B,KAClB;EACX,IACEF,CAAC,KAAKG,SAAS,IACfH,CAAC,KAAK,IAAI,IACV,OAAOA,CAAC,KAAK,SAAS,IACtB,OAAOA,CAAC,KAAK,QAAQ,IACrB,OAAOA,CAAC,KAAK,QAAQ,EACrB;IACA,OAAO;MAAEI,YAAY,EAAE;IAAK,CAAC;EAC/B;EAEA,IACEC,MAAM,CAACC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACR,CAAC,CAAC,KAAK,iBAAiB,IACvD,CAACS,KAAK,CAACC,OAAO,CAACV,CAAC,CAAC,EACjB;IACA,OAAO;MACLI,YAAY,EAAE,KAAK;MACnBF,QAAQ,EAAEA,QAAQ,CAACS,KAAK,CAAC,CAAC;MAC1BC,MAAM,EAAE,OAAOZ,CAAC,KAAK,UAAU,GAAG,UAAU,GAAGa,MAAM,CAACb,CAAC;IACzD,CAAC;EACH;EAEA,IAAIC,IAAI,CAACa,GAAG,CAACd,CAAC,CAAC,EAAE;IACf,OAAO;MACLI,YAAY,EAAE,KAAK;MACnBQ,MAAM,EAAE,oBAAoB;MAC5BV,QAAQ,EAAEA,QAAQ,CAACS,KAAK,CAAC;IAC3B,CAAC;EACH;EAEAV,IAAI,CAACc,GAAG,CAACf,CAAC,CAAC;EAEX,IAAIS,KAAK,CAACC,OAAO,CAACV,CAAC,CAAC,EAAE;IACpB,KAAK,IAAIgB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhB,CAAC,CAACiB,MAAM,EAAED,CAAC,EAAE,EAAE;MACjCd,QAAQ,CAACgB,IAAI,CAACF,CAAC,CAAC;MAChB,MAAMG,WAAW,GAAGpB,yCAAyC,CAC3DC,CAAC,CAACgB,CAAC,CAAC,EACJf,IAAI,EACJC,QACF,CAAC;MACDA,QAAQ,CAACkB,GAAG,CAAC,CAAC;MAEd,IAAI,CAACD,WAAW,CAACf,YAAY,EAAE;QAC7BH,IAAI,CAACoB,MAAM,CAACrB,CAAC,CAAC;QACd,OAAOmB,WAAW;MACpB;IACF;EACF,CAAC,MAAM;IACL,KAAK,MAAMG,GAAG,IAAItB,CAAC,EAAE;MACnBE,QAAQ,CAACgB,IAAI,CAACI,GAAG,CAAC;MAClB,MAAMH,WAAW,GAAGpB,yCAAyC,CAC3DC,CAAC,CAACsB,GAAG,CAAC,EACNrB,IAAI,EACJC,QACF,CAAC;MACDA,QAAQ,CAACkB,GAAG,CAAC,CAAC;MAEd,IAAI,CAACD,WAAW,CAACf,YAAY,EAAE;QAC7BH,IAAI,CAACoB,MAAM,CAACrB,CAAC,CAAC;QACd,OAAOmB,WAAW;MACpB;IACF;EACF;EAEAlB,IAAI,CAACoB,MAAM,CAACrB,CAAC,CAAC;EAEd,OAAO;IAAEI,YAAY,EAAE;EAAK,CAAC;AAC/B,CAAC;AAED,OAAO,SAASmB,iBAAiBA,CAACvB,CAAyB,EAAE;EAC3D,OAAOD,yCAAyC,CAACC,CAAC,EAAE,IAAIwB,GAAG,CAAM,CAAC,EAAE,EAAE,CAAC;AACzE","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;AAqC3B;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":[]}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
// Cache the normalized config across calls for the same `options` reference,
|
|
4
|
+
// so we don't re-walk the config tree on every action conversion.
|
|
5
|
+
const cachedNormalizedConfig = new WeakMap();
|
|
3
6
|
export function getActionFromState(state, options) {
|
|
4
|
-
|
|
5
|
-
|
|
7
|
+
let normalizedConfig;
|
|
8
|
+
if (options) {
|
|
9
|
+
const cached = cachedNormalizedConfig.get(options);
|
|
10
|
+
if (cached) {
|
|
11
|
+
normalizedConfig = cached;
|
|
12
|
+
} else {
|
|
13
|
+
normalizedConfig = createNormalizedConfigItem(options);
|
|
14
|
+
cachedNormalizedConfig.set(options, normalizedConfig);
|
|
15
|
+
}
|
|
16
|
+
} else {
|
|
17
|
+
normalizedConfig = {};
|
|
18
|
+
}
|
|
6
19
|
const routes = state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;
|
|
7
20
|
if (routes.length === 0) {
|
|
8
21
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getActionFromState","state","options","normalizedConfig","createNormalizedConfigItem","routes","index","slice","length","undefined","key","name","initialRouteName","type","payload","route","current","config","screens","params","path","Object","keys","pop","assign","initial","screen","createNormalizedConfigs","entries","reduce","acc","k","v"],"sourceRoot":"../../src","sources":["getActionFromState.tsx"],"mappings":";;AA8BA,OAAO,
|
|
1
|
+
{"version":3,"names":["cachedNormalizedConfig","WeakMap","getActionFromState","state","options","normalizedConfig","cached","get","createNormalizedConfigItem","set","routes","index","slice","length","undefined","key","name","initialRouteName","type","payload","route","current","config","screens","params","path","Object","keys","pop","assign","initial","screen","createNormalizedConfigs","entries","reduce","acc","k","v"],"sourceRoot":"../../src","sources":["getActionFromState.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,11 @@ import { validatePathConfig } from "./validatePathConfig.js";
|
|
|
10
10
|
const INVALID_SCHEMA_RESULT_ERROR = 'Invalid validation result from schema. It should be an object with either "value" or "issues" property and cannot be asynchronous.';
|
|
11
11
|
const INVALID_PARSER_ERROR = 'Invalid parser. Expected a function or a Standard Schema V1 object.';
|
|
12
12
|
const PARAM_GROUP_PREFIX = 'param_';
|
|
13
|
+
const NESTED_SCREEN_PARAM_NAMES = ['screen', 'params', 'initial', 'path', 'merge', 'pop'];
|
|
14
|
+
const getExplicitParamNames = parse => {
|
|
15
|
+
const names = Object.entries(parse ?? {}).filter(([, parser]) => parser != null).map(([name]) => name);
|
|
16
|
+
return names.length ? new Set(names) : undefined;
|
|
17
|
+
};
|
|
13
18
|
const getStandardSchema = parser => {
|
|
14
19
|
if ('~standard' in parser && typeof parser['~standard'] === 'object' && parser['~standard'] !== null && 'version' in parser['~standard'] && parser['~standard'].version === 1 && 'validate' in parser['~standard'] && typeof parser['~standard'].validate === 'function') {
|
|
15
20
|
return parser['~standard'];
|
|
@@ -48,7 +53,8 @@ const getValidationResult = (schema, value) => {
|
|
|
48
53
|
export function getStateFromPath(path, options) {
|
|
49
54
|
const {
|
|
50
55
|
initialRoutes,
|
|
51
|
-
configs
|
|
56
|
+
configs,
|
|
57
|
+
configsByScreen
|
|
52
58
|
} = getConfigResources(options);
|
|
53
59
|
const screens = options?.screens;
|
|
54
60
|
let remaining = path.replace(/\/+/g, '/') // Replace multiple slash (//) with single ones
|
|
@@ -71,14 +77,22 @@ export function getStateFromPath(path, options) {
|
|
|
71
77
|
// Remove the prefix from the path
|
|
72
78
|
remaining = remaining.replace(normalizedPrefix, '');
|
|
73
79
|
}
|
|
80
|
+
const decodedSegments = [];
|
|
81
|
+
for (const segment of remaining.split('/')) {
|
|
82
|
+
if (!segment) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
decodedSegments.push(decodeURIComponent(segment));
|
|
87
|
+
} catch {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
74
91
|
if (screens === undefined) {
|
|
75
92
|
// When no config is specified, use the path segments as route names
|
|
76
|
-
const routes =
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
name
|
|
80
|
-
};
|
|
81
|
-
});
|
|
93
|
+
const routes = decodedSegments.map(name => ({
|
|
94
|
+
name
|
|
95
|
+
}));
|
|
82
96
|
if (routes.length) {
|
|
83
97
|
return createNestedStateObject(path, routes, initialRoutes);
|
|
84
98
|
}
|
|
@@ -91,7 +105,7 @@ export function getStateFromPath(path, options) {
|
|
|
91
105
|
if (match) {
|
|
92
106
|
return createNestedStateObject(path, match.routeNames.map(name => ({
|
|
93
107
|
name
|
|
94
|
-
})), initialRoutes,
|
|
108
|
+
})), initialRoutes, match);
|
|
95
109
|
}
|
|
96
110
|
return undefined;
|
|
97
111
|
}
|
|
@@ -99,11 +113,11 @@ export function getStateFromPath(path, options) {
|
|
|
99
113
|
// We match the whole path against the regex instead of segments
|
|
100
114
|
// This makes sure matches such as wildcard will catch any unmatched routes, even if nested
|
|
101
115
|
for (const config of configs) {
|
|
102
|
-
const routes = matchAgainstConfig(remaining, config,
|
|
116
|
+
const routes = matchAgainstConfig(remaining, config, configsByScreen);
|
|
103
117
|
if (routes === undefined) {
|
|
104
118
|
continue;
|
|
105
119
|
}
|
|
106
|
-
const state = createNestedStateObject(path, routes, initialRoutes,
|
|
120
|
+
const state = createNestedStateObject(path, routes, initialRoutes, config);
|
|
107
121
|
if (state !== undefined) {
|
|
108
122
|
return state;
|
|
109
123
|
}
|
|
@@ -130,11 +144,14 @@ function prepareConfigResources(options) {
|
|
|
130
144
|
const initialRoutes = getInitialRoutes(options);
|
|
131
145
|
const configs = getSortedNormalizedConfigs(initialRoutes, options?.screens);
|
|
132
146
|
checkForDuplicatedConfigs(configs);
|
|
133
|
-
const
|
|
147
|
+
const configsByScreen = {};
|
|
148
|
+
for (const c of configs) {
|
|
149
|
+
(configsByScreen[c.screen] ??= []).push(c);
|
|
150
|
+
}
|
|
134
151
|
return {
|
|
135
152
|
initialRoutes,
|
|
136
153
|
configs,
|
|
137
|
-
|
|
154
|
+
configsByScreen
|
|
138
155
|
};
|
|
139
156
|
}
|
|
140
157
|
function getInitialRoutes(options) {
|
|
@@ -246,14 +263,7 @@ function checkForDuplicatedConfigs(configs) {
|
|
|
246
263
|
});
|
|
247
264
|
}, {});
|
|
248
265
|
}
|
|
249
|
-
|
|
250
|
-
return configs.map(c => ({
|
|
251
|
-
...c,
|
|
252
|
-
// Add `$` to the regex to make sure it matches till end of the path and not just beginning
|
|
253
|
-
regex: c.regex ? new RegExp(c.regex.source + '$') : undefined
|
|
254
|
-
}));
|
|
255
|
-
}
|
|
256
|
-
const matchAgainstConfig = (remaining, config, configs) => {
|
|
266
|
+
const matchAgainstConfig = (remaining, config, configsByScreen) => {
|
|
257
267
|
if (!config.regex) {
|
|
258
268
|
return undefined;
|
|
259
269
|
}
|
|
@@ -265,7 +275,7 @@ const matchAgainstConfig = (remaining, config, configs) => {
|
|
|
265
275
|
const matchedRoutes = [];
|
|
266
276
|
for (const routeName of config.routeNames) {
|
|
267
277
|
// Check matching name AND pattern in case same screen is used at different levels in config
|
|
268
|
-
const routeConfig =
|
|
278
|
+
const routeConfig = configsByScreen[routeName]?.find(c => arrayStartsWith(config.segments, c.segments));
|
|
269
279
|
let params;
|
|
270
280
|
if (routeConfig && match.groups) {
|
|
271
281
|
const paramEntries = [];
|
|
@@ -279,7 +289,12 @@ const matchAgainstConfig = (remaining, config, configs) => {
|
|
|
279
289
|
paramEntries.push([param.name, undefined]);
|
|
280
290
|
continue;
|
|
281
291
|
}
|
|
282
|
-
|
|
292
|
+
let decoded;
|
|
293
|
+
try {
|
|
294
|
+
decoded = decodeURIComponent(value);
|
|
295
|
+
} catch {
|
|
296
|
+
return undefined;
|
|
297
|
+
}
|
|
283
298
|
const parser = routeConfig.parse?.[param.name];
|
|
284
299
|
if (!parser) {
|
|
285
300
|
paramEntries.push([param.name, decoded]);
|
|
@@ -340,6 +355,8 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
|
|
|
340
355
|
// if an object is specified as the value (e.g. Foo: { ... }),
|
|
341
356
|
// it can have `path` property and
|
|
342
357
|
// it could have `screens` prop which has nested configs
|
|
358
|
+
const nestedScreens = 'screens' in config ? config.screens : undefined;
|
|
359
|
+
const hasNestedScreens = !!nestedScreens;
|
|
343
360
|
if (typeof config.path === 'string') {
|
|
344
361
|
if (config.exact && config.path == null) {
|
|
345
362
|
throw new Error(`Screen '${screen}' doesn't specify a 'path'. A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. \`path: ''\`.`);
|
|
@@ -354,7 +371,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
|
|
|
354
371
|
aliasConfigs.push(createConfigItem(screen, [...routeNames], [...paths, {
|
|
355
372
|
screen,
|
|
356
373
|
path: alias
|
|
357
|
-
}], config.parse));
|
|
374
|
+
}], config.parse, hasNestedScreens));
|
|
358
375
|
} else if (typeof alias === 'object') {
|
|
359
376
|
aliasConfigs.push(createConfigItem(screen, [...routeNames], alias.exact ? [{
|
|
360
377
|
screen,
|
|
@@ -362,7 +379,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
|
|
|
362
379
|
}] : [...paths, {
|
|
363
380
|
screen,
|
|
364
381
|
path: alias.path
|
|
365
|
-
}], alias.parse));
|
|
382
|
+
}], alias.parse, hasNestedScreens));
|
|
366
383
|
}
|
|
367
384
|
}
|
|
368
385
|
}
|
|
@@ -375,13 +392,13 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
|
|
|
375
392
|
screen,
|
|
376
393
|
path: config.path
|
|
377
394
|
});
|
|
378
|
-
configs.push(createConfigItem(screen, [...routeNames], [...paths], config.parse));
|
|
395
|
+
configs.push(createConfigItem(screen, [...routeNames], [...paths], config.parse, hasNestedScreens));
|
|
379
396
|
configs.push(...aliasConfigs);
|
|
380
397
|
}
|
|
381
398
|
if (typeof config !== 'string' && typeof config.path !== 'string' && config.alias?.length) {
|
|
382
399
|
throw new Error(`Screen '${screen}' doesn't specify a 'path'. A 'path' needs to be specified in order to use 'alias'.`);
|
|
383
400
|
}
|
|
384
|
-
if (
|
|
401
|
+
if (hasNestedScreens) {
|
|
385
402
|
// property `initialRouteName` without `screens` has no purpose
|
|
386
403
|
if ('initialRouteName' in config && typeof config.initialRouteName === 'string') {
|
|
387
404
|
initials.push({
|
|
@@ -389,8 +406,8 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
|
|
|
389
406
|
parentScreens
|
|
390
407
|
});
|
|
391
408
|
}
|
|
392
|
-
Object.keys(
|
|
393
|
-
const result = createNormalizedConfigs(nestedConfig,
|
|
409
|
+
Object.keys(nestedScreens).forEach(nestedConfig => {
|
|
410
|
+
const result = createNormalizedConfigs(nestedConfig, nestedScreens, initials, [...paths], [...parentScreens], routeNames);
|
|
394
411
|
configs.push(...result);
|
|
395
412
|
});
|
|
396
413
|
}
|
|
@@ -398,7 +415,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
|
|
|
398
415
|
routeNames.pop();
|
|
399
416
|
return configs;
|
|
400
417
|
};
|
|
401
|
-
const createConfigItem = (screen, routeNames, paths, parse) => {
|
|
418
|
+
const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = false) => {
|
|
402
419
|
const parts = [];
|
|
403
420
|
|
|
404
421
|
// Parse the path string into parts for easier matching
|
|
@@ -430,20 +447,11 @@ const createConfigItem = (screen, routeNames, paths, parse) => {
|
|
|
430
447
|
segments,
|
|
431
448
|
params,
|
|
432
449
|
routeNames,
|
|
433
|
-
parse
|
|
450
|
+
parse,
|
|
451
|
+
explicitParamNames: getExplicitParamNames(parse),
|
|
452
|
+
hasNestedScreens
|
|
434
453
|
};
|
|
435
454
|
};
|
|
436
|
-
const findParseConfigForRoute = (routeName, flatConfig) => {
|
|
437
|
-
for (const config of flatConfig) {
|
|
438
|
-
if (routeName === config.routeNames[config.routeNames.length - 1]) {
|
|
439
|
-
return {
|
|
440
|
-
parseConfig: config.parse,
|
|
441
|
-
pathParamNames: new Set(config.params.filter(param => param.screen === routeName && typeof param.name === 'string').map(param => param.name))
|
|
442
|
-
};
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
return undefined;
|
|
446
|
-
};
|
|
447
455
|
|
|
448
456
|
// Try to find an initial route connected with the one passed
|
|
449
457
|
const findInitialRoute = (routeName, parentScreens, initialRoutes) => {
|
|
@@ -505,7 +513,7 @@ const createStateObject = (initialRoute, route, isEmpty) => {
|
|
|
505
513
|
}
|
|
506
514
|
}
|
|
507
515
|
};
|
|
508
|
-
const createNestedStateObject = (path, routes, initialRoutes,
|
|
516
|
+
const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
|
|
509
517
|
let route = routes.shift();
|
|
510
518
|
const parentScreens = [];
|
|
511
519
|
let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
|
|
@@ -525,8 +533,8 @@ const createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {
|
|
|
525
533
|
}
|
|
526
534
|
route = findFocusedRoute(state);
|
|
527
535
|
route.path = path.replace(/\/$/, '');
|
|
528
|
-
const
|
|
529
|
-
const queryParams = parseQueryParams(path,
|
|
536
|
+
const pathParamNames = new Set(routeConfig?.params.filter(param => param.screen === routeConfig.screen && typeof param.name === 'string').map(param => param.name));
|
|
537
|
+
const queryParams = parseQueryParams(path, routeConfig?.parse, pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, route.params);
|
|
530
538
|
if (!queryParams.valid) {
|
|
531
539
|
return undefined;
|
|
532
540
|
}
|
|
@@ -538,7 +546,7 @@ const createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {
|
|
|
538
546
|
}
|
|
539
547
|
return state;
|
|
540
548
|
};
|
|
541
|
-
const parseQueryParams = (path, parseConfig, pathParamNames = new Set()) => {
|
|
549
|
+
const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explicitParamNames, hasNestedScreens = false, routeParams) => {
|
|
542
550
|
const query = path.split('?')[1];
|
|
543
551
|
const params = queryString.parse(query);
|
|
544
552
|
|
|
@@ -591,6 +599,14 @@ const parseQueryParams = (path, parseConfig, pathParamNames = new Set()) => {
|
|
|
591
599
|
throw new Error(INVALID_PARSER_ERROR);
|
|
592
600
|
}
|
|
593
601
|
}
|
|
602
|
+
if (hasNestedScreens && !explicitParamNames?.has('screen') && (typeof params.screen === 'string' || typeof routeParams?.screen === 'string')) {
|
|
603
|
+
for (const name of NESTED_SCREEN_PARAM_NAMES) {
|
|
604
|
+
if (!explicitParamNames?.has(name)) {
|
|
605
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
606
|
+
delete params[name];
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
}
|
|
594
610
|
return {
|
|
595
611
|
valid: true,
|
|
596
612
|
params: Object.keys(params).length ? params : undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","INVALID_SCHEMA_RESULT_ERROR","INVALID_PARSER_ERROR","PARAM_GROUP_PREFIX","getStandardSchema","parser","version","validate","undefined","getValidationResult","schema","value","result","Array","isArray","issues","Error","getStateFromPath","path","options","initialRoutes","configs","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","routes","split","filter","Boolean","map","segment","name","decodeURIComponent","length","createNestedStateObject","match","find","config","segments","join","routeNames","matchAgainstConfig","state","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","getInitialRoutes","getSortedNormalizedConfigs","checkForDuplicatedConfigs","configWithRegexes","getConfigsWithRegexes","initialRouteName","push","parentScreens","concat","Object","keys","key","createNormalizedConfigs","sort","a","b","localeCompare","i","Math","max","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","reduce","acc","pattern","intersects","every","it","assign","c","regex","RegExp","source","validationFailed","matchedRoutes","routeName","routeConfig","screen","params","groups","paramEntries","entries","index","Number","param","decoded","parse","fromEntries","initials","paths","createConfigItem","exact","aliasConfigs","alias","forEach","nestedConfig","pop","parts","part","reg","optional","findParseConfigForRoute","flatConfig","parseConfig","pathParamNames","Set","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","shift","nestedState","nestedStateIndex","parseConfigForRoute","queryParams","parseQueryParams","valid","query","has","hasOwn"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","INVALID_SCHEMA_RESULT_ERROR","INVALID_PARSER_ERROR","PARAM_GROUP_PREFIX","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","Object","entries","filter","parser","map","name","length","Set","undefined","getStandardSchema","version","validate","getValidationResult","schema","value","result","Array","isArray","issues","Error","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","matchAgainstConfig","state","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","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","assign","regex","validationFailed","matchedRoutes","routeName","routeConfig","params","groups","paramEntries","index","Number","param","decoded","fromEntries","initials","paths","createConfigItem","nestedScreens","hasNestedScreens","exact","aliasConfigs","alias","forEach","nestedConfig","pop","parts","part","RegExp","reg","optional","explicitParamNames","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","shift","nestedState","nestedStateIndex","pathParamNames","queryParams","parseQueryParams","valid","parseConfig","routeParams","query","has","hasOwn"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -22,7 +22,7 @@ export { ThemeProvider } from "./theming/ThemeProvider.js";
|
|
|
22
22
|
export { useTheme } from "./theming/useTheme.js";
|
|
23
23
|
export * from "./types.js";
|
|
24
24
|
export { useFocusEffect } from "./useFocusEffect.js";
|
|
25
|
-
export { useIsFocused } from "./useIsFocused.js";
|
|
25
|
+
export { IsFocusedContext, useIsFocused } from "./useIsFocused.js";
|
|
26
26
|
export { useNavigation } from "./useNavigation.js";
|
|
27
27
|
export { useNavigationBuilder } from "./useNavigationBuilder.js";
|
|
28
28
|
export { useNavigationContainerRef } from "./useNavigationContainerRef.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","CurrentRenderContext","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationHelpersContext","NavigationIndependentTree","NavigationMetaContext","NavigationContext","NavigationProvider","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","createPathConfigForStaticNavigation","createScreenFactory","ThemeContext","ThemeProvider","useTheme","useFocusEffect","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationIndependentTree","useNavigationState","usePreventRemove","usePreventRemoveContext","useRoute","useStateForPath","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SACEC,sBAAsB,QAEjB,6BAA0B;AACjC,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,mCAAmC,EACnCC,mBAAmB,QASd,uBAAoB;AAC3B,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,aAAa,QAAQ,4BAAyB;AACvD,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,cAAc,YAAS;AACvB,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,YAAY,QAAQ,mBAAgB;
|
|
1
|
+
{"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","CurrentRenderContext","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationHelpersContext","NavigationIndependentTree","NavigationMetaContext","NavigationContext","NavigationProvider","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","createPathConfigForStaticNavigation","createScreenFactory","ThemeContext","ThemeProvider","useTheme","useFocusEffect","IsFocusedContext","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationIndependentTree","useNavigationState","usePreventRemove","usePreventRemoveContext","useRoute","useStateForPath","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SACEC,sBAAsB,QAEjB,6BAA0B;AACjC,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,mCAAmC,EACnCC,mBAAmB,QASd,uBAAoB;AAC3B,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,aAAa,QAAQ,4BAAyB;AACvD,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,cAAc,YAAS;AACvB,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,gBAAgB,EAAEC,YAAY,QAAQ,mBAAgB;AAC/D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,cAAc,2BAA2B","ignoreList":[]}
|
|
@@ -32,50 +32,62 @@ export function useEventEmitter(listen) {
|
|
|
32
32
|
target,
|
|
33
33
|
canPreventDefault
|
|
34
34
|
}) => {
|
|
35
|
-
const items = listeners.current[type]
|
|
35
|
+
const items = listeners.current[type];
|
|
36
36
|
|
|
37
37
|
// Copy the current list of callbacks in case they are mutated during execution
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
let callbacks;
|
|
39
|
+
if (items) {
|
|
40
|
+
if (target !== undefined) {
|
|
41
|
+
const targetSet = items[target];
|
|
42
|
+
if (targetSet && targetSet.size) {
|
|
43
|
+
callbacks = new Set(targetSet);
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
for (const key in items) {
|
|
47
|
+
const set = items[key];
|
|
48
|
+
if (set && set.size) {
|
|
49
|
+
callbacks ??= new Set();
|
|
50
|
+
for (const cb of set) {
|
|
51
|
+
callbacks.add(cb);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const descriptors = {
|
|
58
|
+
type: {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
value: type
|
|
44
61
|
}
|
|
45
62
|
};
|
|
46
63
|
if (target !== undefined) {
|
|
47
|
-
|
|
64
|
+
descriptors.target = {
|
|
48
65
|
enumerable: true,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
});
|
|
66
|
+
value: target
|
|
67
|
+
};
|
|
53
68
|
}
|
|
54
69
|
if (data !== undefined) {
|
|
55
|
-
|
|
70
|
+
descriptors.data = {
|
|
56
71
|
enumerable: true,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
});
|
|
72
|
+
value: data
|
|
73
|
+
};
|
|
61
74
|
}
|
|
75
|
+
let defaultPrevented = false;
|
|
62
76
|
if (canPreventDefault) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
value() {
|
|
74
|
-
defaultPrevented = true;
|
|
75
|
-
}
|
|
77
|
+
descriptors.defaultPrevented = {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
get() {
|
|
80
|
+
return defaultPrevented;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
descriptors.preventDefault = {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
value() {
|
|
86
|
+
defaultPrevented = true;
|
|
76
87
|
}
|
|
77
|
-
}
|
|
88
|
+
};
|
|
78
89
|
}
|
|
90
|
+
const event = Object.defineProperties({}, descriptors);
|
|
79
91
|
listenRef.current?.(event);
|
|
80
92
|
callbacks?.forEach(cb => cb(event));
|
|
81
93
|
return event;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEventEmitter","listen","listenRef","useRef","useEffect","current","listeners","Object","create","useCallback","target","removeListener","type","callback","callbacks","delete","addListener","Set","add","emit","data","canPreventDefault","items","
|
|
1
|
+
{"version":3,"names":["React","useEventEmitter","listen","listenRef","useRef","useEffect","current","listeners","Object","create","useCallback","target","removeListener","type","callback","callbacks","delete","addListener","Set","add","emit","data","canPreventDefault","items","undefined","targetSet","size","key","set","cb","descriptors","enumerable","value","defaultPrevented","get","preventDefault","event","defineProperties","forEach","useMemo"],"sourceRoot":"../../src","sources":["useEventEmitter.tsx"],"mappings":"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","ignoreList":[]}
|