@react-navigation/core 8.0.0-alpha.23 → 8.0.0-alpha.25
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/BaseNavigationContainer.js +5 -2
- package/lib/module/BaseNavigationContainer.js.map +1 -1
- package/lib/module/DataLoading.js +102 -0
- package/lib/module/DataLoading.js.map +1 -0
- package/lib/module/NavigationBuilderContext.js.map +1 -1
- package/lib/module/NavigationIndependentTree.js +7 -6
- package/lib/module/NavigationIndependentTree.js.map +1 -1
- package/lib/module/NavigationProvider.js +12 -12
- package/lib/module/NavigationProvider.js.map +1 -1
- 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/StaticNavigation.js +15 -7
- package/lib/module/StaticNavigation.js.map +1 -1
- package/lib/module/StaticTreeContext.js +5 -0
- package/lib/module/StaticTreeContext.js.map +1 -0
- package/lib/module/checkSerializable.js +7 -9
- package/lib/module/checkSerializable.js.map +1 -1
- package/lib/module/createNavigationContainerRef.js +6 -8
- package/lib/module/createNavigationContainerRef.js.map +1 -1
- package/lib/module/createNavigatorFactory.js.map +1 -1
- package/lib/module/getActionFromState.js +11 -11
- package/lib/module/getActionFromState.js.map +1 -1
- package/lib/module/getPathFromState.js +125 -96
- package/lib/module/getPathFromState.js.map +1 -1
- package/lib/module/getPatternParts.js +2 -2
- package/lib/module/getPatternParts.js.map +1 -1
- package/lib/module/getStateFromPath.js +136 -78
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/index.js +1 -0
- 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 +5 -2
- 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/useNavigation.js +2 -15
- package/lib/module/useNavigation.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +5 -21
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useNavigationCache.js +19 -14
- 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 +69 -36
- package/lib/module/useNavigationState.js.map +1 -1
- package/lib/module/useOnAction.js +25 -3
- 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/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/useRoute.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/module/validatePathConfig.js +50 -37
- package/lib/module/validatePathConfig.js.map +1 -1
- package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/DataLoading.d.ts +20 -0
- package/lib/typescript/src/DataLoading.d.ts.map +1 -0
- package/lib/typescript/src/NavigationBuilderContext.d.ts +2 -2
- package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationProvider.d.ts +0 -1
- package/lib/typescript/src/NavigationProvider.d.ts.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 +68 -42
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/StaticTreeContext.d.ts +4 -0
- package/lib/typescript/src/StaticTreeContext.d.ts.map +1 -0
- package/lib/typescript/src/checkSerializable.d.ts +4 -2
- package/lib/typescript/src/checkSerializable.d.ts.map +1 -1
- package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
- package/lib/typescript/src/createNavigatorFactory.d.ts +11 -5
- package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
- package/lib/typescript/src/getActionFromState.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 +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +84 -29
- 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/useKeyedChildListeners.d.ts.map +1 -1
- package/lib/typescript/src/useNavigation.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts +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 +3 -4
- package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationState.d.ts +11 -1
- package/lib/typescript/src/useNavigationState.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/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/useRoute.d.ts +1 -1
- package/lib/typescript/src/useRoute.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/lib/typescript/src/utilities.d.ts +21 -38
- package/lib/typescript/src/utilities.d.ts.map +1 -1
- package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
- package/package.json +6 -8
- package/src/BaseNavigationContainer.tsx +9 -2
- package/src/DataLoading.tsx +139 -0
- package/src/NavigationBuilderContext.tsx +5 -1
- package/src/NavigationIndependentTree.tsx +11 -11
- package/src/NavigationProvider.tsx +13 -16
- package/src/PreventRemoveContext.tsx +1 -0
- package/src/PreventRemoveProvider.tsx +48 -43
- package/src/StaticNavigation.tsx +164 -99
- package/src/StaticTreeContext.tsx +7 -0
- package/src/checkSerializable.tsx +20 -14
- package/src/createNavigationContainerRef.tsx +12 -9
- package/src/createNavigatorFactory.tsx +27 -18
- package/src/getActionFromState.tsx +18 -16
- package/src/getPathFromState.tsx +167 -132
- package/src/getPatternParts.tsx +2 -2
- package/src/getStateFromPath.tsx +260 -193
- package/src/index.tsx +3 -0
- package/src/types.tsx +298 -62
- package/src/useEventEmitter.tsx +7 -2
- package/src/useKeyedChildListeners.tsx +4 -2
- package/src/useNavigation.tsx +2 -21
- package/src/useNavigationBuilder.tsx +7 -24
- package/src/useNavigationCache.tsx +26 -19
- package/src/useNavigationHelpers.tsx +26 -9
- package/src/useNavigationState.tsx +90 -60
- package/src/useOnAction.tsx +55 -3
- package/src/useOnPreventRemove.tsx +68 -36
- package/src/useOptionsGetters.tsx +4 -1
- package/src/usePreventRemove.tsx +11 -2
- package/src/useRoute.tsx +3 -5
- package/src/useRouteCache.tsx +19 -11
- package/src/useScheduleUpdate.tsx +8 -7
- package/src/useSyncState.tsx +5 -1
- package/src/utilities.tsx +36 -41
- package/src/validatePathConfig.tsx +86 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkSerializableWithoutCircularReference","o","seen","location","undefined","
|
|
1
|
+
{"version":3,"names":["checkSerializableWithoutCircularReference","o","seen","location","undefined","Object","prototype","toString","call","Array","isArray","serializable","slice","reason","String","has","add","i","length","push","childResult","pop","delete","key","checkSerializable","Set"],"sourceRoot":"../../src","sources":["checkSerializable.tsx"],"mappings":";;AAUA,MAAMA,yCAAyC,GAAGA,CAChDC,CAAyB,EACzBC,IAAc,EACdC,QAA6B,KACL;EACxB,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,OAAOG,SAAS;EAClB;EAEA,IACEC,MAAM,CAACC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACP,CAAC,CAAC,KAAK,iBAAiB,IACvD,CAACQ,KAAK,CAACC,OAAO,CAACT,CAAC,CAAC,EACjB;IACA,OAAO;MACLU,YAAY,EAAE,KAAK;MACnBR,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;MACLU,YAAY,EAAE,KAAK;MACnBE,MAAM,EAAE,oBAAoB;MAC5BV,QAAQ,EAAEA,QAAQ,CAACS,KAAK,CAAC;IAC3B,CAAC;EACH;EAEAV,IAAI,CAACc,GAAG,CAACf,CAAC,CAAC;EAEX,IAAIQ,KAAK,CAACC,OAAO,CAACT,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,IAAID,WAAW,EAAE;QACflB,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,IAAID,WAAW,EAAE;QACflB,IAAI,CAACoB,MAAM,CAACrB,CAAC,CAAC;QACd,OAAOmB,WAAW;MACpB;IACF;EACF;EAEAlB,IAAI,CAACoB,MAAM,CAACrB,CAAC,CAAC;EAEd,OAAOG,SAAS;AAClB,CAAC;AAED,OAAO,SAASoB,iBAAiBA,CAACvB,CAAyB,EAAU;EACnE,OACED,yCAAyC,CAACC,CAAC,EAAE,IAAIwB,GAAG,CAAM,CAAC,EAAE,EAAE,CAAC,IAAI;IAClEd,YAAY,EAAE;EAChB,CAAC;AAEL","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;AASzD,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":[]}
|
|
@@ -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,
|
|
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,QAIzB,uBAAoB;AA6C3B;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":[]}
|
|
@@ -16,16 +16,16 @@ export function getActionFromState(state, options) {
|
|
|
16
16
|
} else {
|
|
17
17
|
normalizedConfig = {};
|
|
18
18
|
}
|
|
19
|
-
const
|
|
20
|
-
if (
|
|
19
|
+
const routesLength = state.index == null || state.index >= state.routes.length ? state.routes.length : state.index + 1;
|
|
20
|
+
if (routesLength === 0) {
|
|
21
21
|
return undefined;
|
|
22
22
|
}
|
|
23
|
-
const firstRoute = routes[0];
|
|
23
|
+
const firstRoute = state.routes[0];
|
|
24
24
|
if (firstRoute == null) {
|
|
25
25
|
return undefined;
|
|
26
26
|
}
|
|
27
|
-
const secondRoute = routes[1];
|
|
28
|
-
if (!(
|
|
27
|
+
const secondRoute = state.routes[1];
|
|
28
|
+
if (!(routesLength === 1 && firstRoute.key == null || routesLength === 2 && firstRoute.key == null && firstRoute.name === normalizedConfig?.initialRouteName && secondRoute?.key == null)) {
|
|
29
29
|
return {
|
|
30
30
|
type: 'RESET',
|
|
31
31
|
payload: state
|
|
@@ -67,16 +67,16 @@ export function getActionFromState(state, options) {
|
|
|
67
67
|
if (current.routes.length === 0) {
|
|
68
68
|
return undefined;
|
|
69
69
|
}
|
|
70
|
-
const
|
|
71
|
-
const route = routes[
|
|
70
|
+
const routesLength = current.index == null || current.index >= current.routes.length ? current.routes.length : current.index + 1;
|
|
71
|
+
const route = current.routes[routesLength - 1];
|
|
72
72
|
if (route == null) {
|
|
73
73
|
return undefined;
|
|
74
74
|
}
|
|
75
|
-
const firstRoute = routes[0];
|
|
75
|
+
const firstRoute = current.routes[0];
|
|
76
76
|
if (firstRoute == null) {
|
|
77
77
|
return undefined;
|
|
78
78
|
}
|
|
79
|
-
const secondRoute = routes[1];
|
|
79
|
+
const secondRoute = current.routes[1];
|
|
80
80
|
|
|
81
81
|
// Explicitly set to override existing value when merging params
|
|
82
82
|
Object.assign(params, {
|
|
@@ -85,10 +85,10 @@ export function getActionFromState(state, options) {
|
|
|
85
85
|
params: undefined,
|
|
86
86
|
state: undefined
|
|
87
87
|
});
|
|
88
|
-
if (
|
|
88
|
+
if (routesLength === 1 && firstRoute.key == null) {
|
|
89
89
|
params.initial = true;
|
|
90
90
|
params.screen = route.name;
|
|
91
|
-
} else if (
|
|
91
|
+
} else if (routesLength === 2 && firstRoute.key == null && firstRoute.name === config?.initialRouteName && secondRoute?.key == null) {
|
|
92
92
|
params.initial = false;
|
|
93
93
|
params.screen = route.name;
|
|
94
94
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cachedNormalizedConfig","WeakMap","getActionFromState","state","options","normalizedConfig","cached","get","createNormalizedConfigItem","set","
|
|
1
|
+
{"version":3,"names":["cachedNormalizedConfig","WeakMap","getActionFromState","state","options","normalizedConfig","cached","get","createNormalizedConfigItem","set","routesLength","index","routes","length","undefined","firstRoute","secondRoute","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":";;AA4BA;AACA;AACA,MAAMA,sBAAsB,GAAG,IAAIC,OAAO,CAAsB,CAAC;AAEjE,OAAO,SAASC,kBAAkBA,CAChCC,KAAoC,EACpCC,OAAiB,EACmD;EACpE,IAAIC,gBAAgB;EAEpB,IAAID,OAAO,EAAE;IACX,MAAME,MAAM,GAAGN,sBAAsB,CAACO,GAAG,CAACH,OAAO,CAAC;IAElD,IAAIE,MAAM,EAAE;MACVD,gBAAgB,GAAGC,MAAM;IAC3B,CAAC,MAAM;MACLD,gBAAgB,GAAGG,0BAA0B,CAC3CJ,OACF,CAAC;MACDJ,sBAAsB,CAACS,GAAG,CAACL,OAAO,EAAEC,gBAA8B,CAAC;IACrE;EACF,CAAC,MAAM;IACLA,gBAAgB,GAAG,CAAC,CAAC;EACvB;EAEA,MAAMK,YAAY,GAChBP,KAAK,CAACQ,KAAK,IAAI,IAAI,IAAIR,KAAK,CAACQ,KAAK,IAAIR,KAAK,CAACS,MAAM,CAACC,MAAM,GACrDV,KAAK,CAACS,MAAM,CAACC,MAAM,GACnBV,KAAK,CAACQ,KAAK,GAAG,CAAC;EAErB,IAAID,YAAY,KAAK,CAAC,EAAE;IACtB,OAAOI,SAAS;EAClB;EAEA,MAAMC,UAAU,GAAGZ,KAAK,CAACS,MAAM,CAAC,CAAC,CAAC;EAElC,IAAIG,UAAU,IAAI,IAAI,EAAE;IACtB,OAAOD,SAAS;EAClB;EAEA,MAAME,WAAW,GAAGb,KAAK,CAACS,MAAM,CAAC,CAAC,CAAC;EAEnC,IACE,EACGF,YAAY,KAAK,CAAC,IAAIK,UAAU,CAACE,GAAG,IAAI,IAAI,IAC5CP,YAAY,KAAK,CAAC,IACjBK,UAAU,CAACE,GAAG,IAAI,IAAI,IACtBF,UAAU,CAACG,IAAI,KAAKb,gBAAgB,EAAEc,gBAAgB,IACtDH,WAAW,EAAEC,GAAG,IAAI,IAAK,CAC5B,EACD;IACA,OAAO;MACLG,IAAI,EAAE,OAAO;MACbC,OAAO,EAAElB;IACX,CAAC;EACH;EAEA,MAAMmB,KAAK,GAAGnB,KAAK,CAACS,MAAM,CAACT,KAAK,CAACQ,KAAK,IAAIR,KAAK,CAACS,MAAM,CAACC,MAAM,GAAG,CAAC,CAAC;EAElE,IAAIS,KAAK,IAAI,IAAI,EAAE;IACjB,OAAOR,SAAS;EAClB;EAEA,IAAIS,OAAkD,GAAGD,KAAK,CAACnB,KAAK;EACpE,IAAIqB,MAA8B,GAAGnB,gBAAgB,EAAEoB,OAAO,GAAGH,KAAK,CAACJ,IAAI,CAAC;EAC5E,IAAIQ,MAAM,GAAG;IAAE,GAAGJ,KAAK,CAACI;EAAO,CAAyC;EAExE,MAAML,OAKL,GAAG;IAAEH,IAAI,EAAEI,KAAK,CAACJ,IAAI;IAAES,IAAI,EAAEL,KAAK,CAACK,IAAI;IAAED;EAAO,CAAC;;EAElD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIF,MAAM,EAAEC,OAAO,IAAIG,MAAM,CAACC,IAAI,CAACL,MAAM,CAACC,OAAO,CAAC,CAACZ,MAAM,EAAE;IACzDQ,OAAO,CAACS,GAAG,GAAG,IAAI;EACpB;EAEA,OAAOP,OAAO,EAAE;IACd,IAAIA,OAAO,CAACX,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;MAC/B,OAAOC,SAAS;IAClB;IAEA,MAAMJ,YAAY,GAChBa,OAAO,CAACZ,KAAK,IAAI,IAAI,IAAIY,OAAO,CAACZ,KAAK,IAAIY,OAAO,CAACX,MAAM,CAACC,MAAM,GAC3DU,OAAO,CAACX,MAAM,CAACC,MAAM,GACrBU,OAAO,CAACZ,KAAK,GAAG,CAAC;IAEvB,MAAMW,KAAK,GAAGC,OAAO,CAACX,MAAM,CAACF,YAAY,GAAG,CAAC,CAAC;IAE9C,IAAIY,KAAK,IAAI,IAAI,EAAE;MACjB,OAAOR,SAAS;IAClB;IAEA,MAAMC,UAAU,GAAGQ,OAAO,CAACX,MAAM,CAAC,CAAC,CAAC;IAEpC,IAAIG,UAAU,IAAI,IAAI,EAAE;MACtB,OAAOD,SAAS;IAClB;IAEA,MAAME,WAAW,GAAGO,OAAO,CAACX,MAAM,CAAC,CAAC,CAAC;;IAErC;IACAgB,MAAM,CAACG,MAAM,CAACL,MAAM,EAAE;MACpBM,OAAO,EAAElB,SAAS;MAClBmB,MAAM,EAAEnB,SAAS;MACjBY,MAAM,EAAEZ,SAAS;MACjBX,KAAK,EAAEW;IACT,CAAC,CAAC;IAEF,IAAIJ,YAAY,KAAK,CAAC,IAAIK,UAAU,CAACE,GAAG,IAAI,IAAI,EAAE;MAChDS,MAAM,CAACM,OAAO,GAAG,IAAI;MACrBN,MAAM,CAACO,MAAM,GAAGX,KAAK,CAACJ,IAAI;IAC5B,CAAC,MAAM,IACLR,YAAY,KAAK,CAAC,IAClBK,UAAU,CAACE,GAAG,IAAI,IAAI,IACtBF,UAAU,CAACG,IAAI,KAAKM,MAAM,EAAEL,gBAAgB,IAC5CH,WAAW,EAAEC,GAAG,IAAI,IAAI,EACxB;MACAS,MAAM,CAACM,OAAO,GAAG,KAAK;MACtBN,MAAM,CAACO,MAAM,GAAGX,KAAK,CAACJ,IAAI;IAC5B,CAAC,MAAM;MACLQ,MAAM,CAACvB,KAAK,GAAGoB,OAAO;MACtB;IACF;IAEA,IAAID,KAAK,CAACnB,KAAK,EAAE;MACfuB,MAAM,CAACA,MAAM,GAAG;QAAE,GAAGJ,KAAK,CAACI;MAAO,CAAC;MACnCA,MAAM,CAACI,GAAG,GAAG,IAAI;MACjBJ,MAAM,GAAGA,MAAM,CAACA,MAA8C;IAChE,CAAC,MAAM;MACLA,MAAM,CAACC,IAAI,GAAGL,KAAK,CAACK,IAAI;MACxBD,MAAM,CAACA,MAAM,GAAGJ,KAAK,CAACI,MAAM;IAC9B;IAEAH,OAAO,GAAGD,KAAK,CAACnB,KAAK;IACrBqB,MAAM,GAAGA,MAAM,EAAEC,OAAO,GAAGH,KAAK,CAACJ,IAAI,CAAC;IAEtC,IAAIM,MAAM,EAAEC,OAAO,IAAIG,MAAM,CAACC,IAAI,CAACL,MAAM,CAACC,OAAO,CAAC,CAACZ,MAAM,EAAE;MACzDa,MAAM,CAACI,GAAG,GAAG,IAAI;IACnB;EACF;EAEA,IAAIT,OAAO,CAACK,MAAM,CAACO,MAAM,IAAIZ,OAAO,CAACK,MAAM,CAACvB,KAAK,EAAE;IACjDkB,OAAO,CAACS,GAAG,GAAG,IAAI;EACpB;;EAEA;EACA;EACA,OAAO;IACLV,IAAI,EAAE,UAAU;IAChBC;EACF,CAAC;AACH;AAEA,MAAMb,0BAA0B,GAAIgB,MAAmC,IACrE,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,IAAI,IAAI,GACxC;EACEL,gBAAgB,EACd,kBAAkB,IAAIK,MAAM,GAAGA,MAAM,CAACL,gBAAgB,GAAGL,SAAS;EACpEW,OAAO,EACL,SAAS,IAAID,MAAM,IAAIA,MAAM,CAACC,OAAO,IAAI,IAAI,GACzCS,uBAAuB,CAACV,MAAM,CAACC,OAAO,CAAC,GACvCX;AACR,CAAC,GACD,CAAC,CAAC;AAER,MAAMoB,uBAAuB,GAAI9B,OAA8B,IAC7DwB,MAAM,CAACO,OAAO,CAAC/B,OAAO,CAAC,CAACgC,MAAM,CAA6B,CAACC,GAAG,EAAE,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK;EAC1E;EACAF,GAAG,CAACC,CAAC,CAAC,GAAG9B,0BAA0B,CAAC+B,CAAC,CAAC;EACtC,OAAOF,GAAG;AACZ,CAAC,EAAE,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,46 +4,41 @@ 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
|
|
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
|
+
};
|
|
16
|
+
const getActiveRoute = (state, configs, getRouteState) => {
|
|
8
17
|
const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];
|
|
9
18
|
if (route == null) {
|
|
10
19
|
throw new Error(`Couldn't find the active route.`);
|
|
11
20
|
}
|
|
12
|
-
|
|
13
|
-
|
|
21
|
+
const config = configs?.[route.name];
|
|
22
|
+
const routeState = getRouteState(route, config);
|
|
23
|
+
if (routeState) {
|
|
24
|
+
return getActiveRoute(routeState, config?.screens, getRouteState);
|
|
14
25
|
}
|
|
15
26
|
return route;
|
|
16
27
|
};
|
|
17
28
|
const cachedNormalizedConfigs = new WeakMap();
|
|
18
29
|
const getNormalizedConfigs = options => {
|
|
19
|
-
if (!options
|
|
20
|
-
|
|
21
|
-
|
|
30
|
+
if (!options) {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
const cached = cachedNormalizedConfigs.get(options);
|
|
34
|
+
if (cached) {
|
|
35
|
+
return cached;
|
|
36
|
+
}
|
|
37
|
+
validatePathConfig(options);
|
|
22
38
|
const normalizedConfigs = createNormalizedConfigs(options.screens);
|
|
23
|
-
cachedNormalizedConfigs.set(options
|
|
39
|
+
cachedNormalizedConfigs.set(options, normalizedConfigs);
|
|
24
40
|
return normalizedConfigs;
|
|
25
41
|
};
|
|
26
|
-
const getTransformedState = (state, configs) => {
|
|
27
|
-
const routes = state.routes.map(route => {
|
|
28
|
-
const config = configs?.[route.name];
|
|
29
|
-
if (route.state || config?.screens && route.params && ('screen' in route.params && typeof route.params.screen === 'string' && config.screens[route.params.screen] || 'state' in route.params)) {
|
|
30
|
-
const nestedState = route.state ?? getStateFromRouteParams(route.params);
|
|
31
|
-
if (nestedState) {
|
|
32
|
-
return {
|
|
33
|
-
...route,
|
|
34
|
-
state: getTransformedState(nestedState, configs?.[route.name]?.screens)
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// @ts-expect-error route.state is handled in previous condition
|
|
40
|
-
return route;
|
|
41
|
-
});
|
|
42
|
-
return {
|
|
43
|
-
...state,
|
|
44
|
-
routes
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
42
|
|
|
48
43
|
/**
|
|
49
44
|
* Utility to serialize a navigation state object to a path string.
|
|
@@ -78,13 +73,25 @@ export function getPathFromState(state, options) {
|
|
|
78
73
|
if (state == null) {
|
|
79
74
|
throw Error(`Got '${String(state)}' for the navigation state. You must pass a valid state object.`);
|
|
80
75
|
}
|
|
81
|
-
if (options) {
|
|
82
|
-
validatePathConfig(options);
|
|
83
|
-
}
|
|
84
76
|
const configs = getNormalizedConfigs(options);
|
|
85
|
-
const
|
|
77
|
+
const cachedRouteStates = new Map();
|
|
78
|
+
const getRouteState = (route, config) => {
|
|
79
|
+
if (route.state) {
|
|
80
|
+
return route.state;
|
|
81
|
+
}
|
|
82
|
+
const hasScreenParams = route.params && 'screen' in route.params && typeof route.params.screen === 'string' && config?.screens?.[route.params.screen];
|
|
83
|
+
const hasStateParams = route.params && 'state' in route.params && config?.screens;
|
|
84
|
+
if (!route.params || !config?.screens || !hasScreenParams && !hasStateParams) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
if (!cachedRouteStates.has(route)) {
|
|
88
|
+
cachedRouteStates.set(route, getStateFromRouteParams(route.params));
|
|
89
|
+
}
|
|
90
|
+
return cachedRouteStates.get(route);
|
|
91
|
+
};
|
|
92
|
+
const focusedRoute = getActiveRoute(state, configs, getRouteState);
|
|
86
93
|
let path = '/';
|
|
87
|
-
let current =
|
|
94
|
+
let current = state;
|
|
88
95
|
const allParams = {};
|
|
89
96
|
while (current) {
|
|
90
97
|
let index = typeof current.index === 'number' ? current.index : 0;
|
|
@@ -96,7 +103,6 @@ export function getPathFromState(state, options) {
|
|
|
96
103
|
let parts;
|
|
97
104
|
let focusedParams;
|
|
98
105
|
let currentOptions = configs;
|
|
99
|
-
const focusedRoute = getActiveRoute(transformedState);
|
|
100
106
|
|
|
101
107
|
// Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined
|
|
102
108
|
const nestedRouteNames = [];
|
|
@@ -110,51 +116,55 @@ export function getPathFromState(state, options) {
|
|
|
110
116
|
nestedRouteNames.push(route.name);
|
|
111
117
|
if (route.params) {
|
|
112
118
|
const options = config;
|
|
113
|
-
const
|
|
119
|
+
const params = route.params;
|
|
120
|
+
const currentParams = {};
|
|
121
|
+
for (const key in params) {
|
|
122
|
+
const value = params[key];
|
|
114
123
|
if (value === undefined) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (
|
|
118
|
-
|
|
124
|
+
let optional = false;
|
|
125
|
+
for (const part of options.parts ?? []) {
|
|
126
|
+
if (part.param === key) {
|
|
127
|
+
optional = part.optional === true;
|
|
128
|
+
break;
|
|
119
129
|
}
|
|
120
|
-
}
|
|
121
|
-
|
|
130
|
+
}
|
|
131
|
+
if (optional) {
|
|
132
|
+
continue;
|
|
122
133
|
}
|
|
123
134
|
}
|
|
124
|
-
const stringify = options
|
|
125
|
-
|
|
126
|
-
}
|
|
135
|
+
const stringify = options.stringify?.[key] ?? String;
|
|
136
|
+
currentParams[key] = stringify(value);
|
|
137
|
+
}
|
|
127
138
|
if (parts?.length) {
|
|
128
139
|
Object.assign(allParams, currentParams);
|
|
129
140
|
}
|
|
130
141
|
if (focusedRoute === route) {
|
|
131
142
|
// If this is the focused route, keep the params for later use
|
|
132
143
|
// 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];
|
|
144
|
+
focusedParams = {};
|
|
145
|
+
for (const key in currentParams) {
|
|
146
|
+
let inPattern = false;
|
|
147
|
+
for (const part of parts ?? []) {
|
|
148
|
+
if (part.param === key) {
|
|
149
|
+
inPattern = true;
|
|
150
|
+
break;
|
|
146
151
|
}
|
|
147
152
|
}
|
|
148
|
-
|
|
153
|
+
const value = currentParams[key];
|
|
154
|
+
if (!inPattern && value !== undefined && value !== 'undefined') {
|
|
155
|
+
focusedParams[key] = value;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
149
158
|
}
|
|
150
159
|
}
|
|
151
160
|
|
|
152
161
|
// If there is no `screens` property or no nested state, we return pattern
|
|
153
|
-
|
|
162
|
+
const routeState = getRouteState(route, config);
|
|
163
|
+
if (!config.screens || routeState == null) {
|
|
154
164
|
hasNext = false;
|
|
155
165
|
} else {
|
|
156
|
-
index = typeof
|
|
157
|
-
const nextRoute =
|
|
166
|
+
index = typeof routeState.index === 'number' ? routeState.index : routeState.routes.length - 1;
|
|
167
|
+
const nextRoute = routeState.routes[index];
|
|
158
168
|
if (nextRoute == null) {
|
|
159
169
|
throw new Error(`Couldn't find a route at index ${index}.`);
|
|
160
170
|
}
|
|
@@ -170,48 +180,60 @@ export function getPathFromState(state, options) {
|
|
|
170
180
|
}
|
|
171
181
|
}
|
|
172
182
|
}
|
|
183
|
+
const routeState = getRouteState(route, currentOptions[route.name]);
|
|
173
184
|
if (currentOptions[route.name] != null) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
+
if (parts) {
|
|
186
|
+
let index = 0;
|
|
187
|
+
for (const {
|
|
188
|
+
segment,
|
|
189
|
+
param,
|
|
190
|
+
optional
|
|
191
|
+
} of parts) {
|
|
192
|
+
if (index > 0) {
|
|
193
|
+
path += '/';
|
|
194
|
+
}
|
|
195
|
+
index++;
|
|
185
196
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (
|
|
190
|
-
|
|
191
|
-
|
|
197
|
+
// We don't know what to show for wildcard patterns
|
|
198
|
+
// Showing the route name seems ok, though whatever we show here will be incorrect
|
|
199
|
+
// Since the page doesn't actually exist
|
|
200
|
+
if (segment === '*') {
|
|
201
|
+
path += route.name;
|
|
202
|
+
continue;
|
|
192
203
|
}
|
|
193
204
|
|
|
194
|
-
//
|
|
195
|
-
|
|
196
|
-
|
|
205
|
+
// If the path has a pattern for a param, put the param in the path
|
|
206
|
+
if (param) {
|
|
207
|
+
const value = allParams[param];
|
|
208
|
+
if (value === undefined && optional) {
|
|
209
|
+
// Optional params without value assigned in route.params should be ignored
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Valid characters according to
|
|
214
|
+
// https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 (see pchar definition)
|
|
215
|
+
path += encodePathParam(String(value));
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
path += encodeURIComponent(segment);
|
|
197
219
|
}
|
|
198
|
-
|
|
199
|
-
}).join('/');
|
|
220
|
+
}
|
|
200
221
|
} else {
|
|
201
222
|
path += encodeURIComponent(route.name);
|
|
202
223
|
}
|
|
203
224
|
if (!focusedParams && focusedRoute.params) {
|
|
204
|
-
focusedParams =
|
|
225
|
+
focusedParams = {};
|
|
226
|
+
const params = focusedRoute.params;
|
|
227
|
+
for (const key in params) {
|
|
228
|
+
const value = String(params[key]);
|
|
229
|
+
if (value !== 'undefined') {
|
|
230
|
+
focusedParams[key] = value;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
205
233
|
}
|
|
206
|
-
if (
|
|
234
|
+
if (routeState) {
|
|
207
235
|
path += '/';
|
|
208
236
|
} 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
237
|
const query = queryString.stringify(focusedParams, {
|
|
216
238
|
sort: false
|
|
217
239
|
});
|
|
@@ -219,7 +241,7 @@ export function getPathFromState(state, options) {
|
|
|
219
241
|
path += `?${query}`;
|
|
220
242
|
}
|
|
221
243
|
}
|
|
222
|
-
current =
|
|
244
|
+
current = routeState;
|
|
223
245
|
}
|
|
224
246
|
|
|
225
247
|
// Include the root path if specified
|
|
@@ -265,8 +287,15 @@ const createConfigItem = (config, parentParts) => {
|
|
|
265
287
|
screens
|
|
266
288
|
};
|
|
267
289
|
};
|
|
268
|
-
const createNormalizedConfigs = (options, parts) =>
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
290
|
+
const createNormalizedConfigs = (options, parts) => {
|
|
291
|
+
const configs = {};
|
|
292
|
+
const screens = options;
|
|
293
|
+
for (const name in screens) {
|
|
294
|
+
const config = screens[name];
|
|
295
|
+
if (config !== undefined) {
|
|
296
|
+
configs[name] = createConfigItem(config, parts);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return configs;
|
|
300
|
+
};
|
|
272
301
|
//# sourceMappingURL=getPathFromState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","
|
|
1
|
+
{"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","encodePathParam","value","result","char","charCode","charCodeAt","safe","includes","encodeURIComponent","getActiveRoute","state","configs","getRouteState","route","index","routes","length","Error","config","name","routeState","screens","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","cached","get","normalizedConfigs","createNormalizedConfigs","set","getPathFromState","String","cachedRouteStates","Map","hasScreenParams","params","screen","hasStateParams","undefined","has","focusedRoute","path","current","allParams","initialRoute","parts","focusedParams","currentOptions","nestedRouteNames","hasNext","push","currentParams","key","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":[]}
|
|
@@ -41,15 +41,15 @@ export function getPatternParts(path) {
|
|
|
41
41
|
if (regexInnerParens) {
|
|
42
42
|
// The ')' is part of the regex if we're already inside one
|
|
43
43
|
regexInnerParens--;
|
|
44
|
-
current.regex += char;
|
|
45
44
|
} else {
|
|
45
|
+
current.regex += char;
|
|
46
46
|
isRegex = false;
|
|
47
47
|
isParam = false;
|
|
48
48
|
}
|
|
49
49
|
} else {
|
|
50
50
|
throw new Error(`Encountered ')' without preceding '(' in path: ${path}`);
|
|
51
51
|
}
|
|
52
|
-
} else if (char === '?') {
|
|
52
|
+
} else if (char === '?' && !isRegex) {
|
|
53
53
|
if (current.param) {
|
|
54
54
|
isParam = false;
|
|
55
55
|
current.optional = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf","combinePatternParts","parentParts","exact"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":";;AAOA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAACC,IAAY,EAAiB;EAC3D,MAAMC,KAAoB,GAAG,EAAE;EAE/B,IAAIC,OAAoB,GAAG;IAAEC,OAAO,EAAE;EAAG,CAAC;EAE1C,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAIC,gBAAgB,GAAG,CAAC;;EAExB;EACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIP,IAAI,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAME,IAAI,GAAGT,IAAI,CAACO,CAAC,CAAC;IAEpB,IAAIE,IAAI,IAAI,IAAI,EAAE;MAChBP,OAAO,CAACC,OAAO,IAAIM,IAAI;IACzB;IAEA,IAAIA,IAAI,KAAK,GAAG,EAAE;MAChB;MACA,IAAIP,OAAO,CAACC,OAAO,KAAK,GAAG,EAAE;QAC3BE,OAAO,GAAG,IAAI;MAChB,CAAC,MAAM,IAAI,CAACD,OAAO,EAAE;QACnB,MAAM,IAAIM,KAAK,CACb,uDAAuDV,IAAI,EAC7D,CAAC;MACH;IACF,CAAC,MAAM,IAAIS,IAAI,KAAK,GAAG,EAAE;MACvB,IAAIJ,OAAO,EAAE;QACX,IAAID,OAAO,EAAE;UACX;UACAE,gBAAgB,EAAE;QACpB,CAAC,MAAM;UACLF,OAAO,GAAG,IAAI;QAChB;MACF,CAAC,MAAM;QACL,MAAM,IAAIM,KAAK,CACb,kDAAkDV,IAAI,EACxD,CAAC;MACH;IACF,CAAC,MAAM,IAAIS,IAAI,KAAK,GAAG,EAAE;MACvB,IAAIJ,OAAO,IAAID,OAAO,EAAE;QACtB,IAAIE,gBAAgB,EAAE;UACpB;UACAA,gBAAgB,EAAE;
|
|
1
|
+
{"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf","combinePatternParts","parentParts","exact"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":";;AAOA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAACC,IAAY,EAAiB;EAC3D,MAAMC,KAAoB,GAAG,EAAE;EAE/B,IAAIC,OAAoB,GAAG;IAAEC,OAAO,EAAE;EAAG,CAAC;EAE1C,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAIC,gBAAgB,GAAG,CAAC;;EAExB;EACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIP,IAAI,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAME,IAAI,GAAGT,IAAI,CAACO,CAAC,CAAC;IAEpB,IAAIE,IAAI,IAAI,IAAI,EAAE;MAChBP,OAAO,CAACC,OAAO,IAAIM,IAAI;IACzB;IAEA,IAAIA,IAAI,KAAK,GAAG,EAAE;MAChB;MACA,IAAIP,OAAO,CAACC,OAAO,KAAK,GAAG,EAAE;QAC3BE,OAAO,GAAG,IAAI;MAChB,CAAC,MAAM,IAAI,CAACD,OAAO,EAAE;QACnB,MAAM,IAAIM,KAAK,CACb,uDAAuDV,IAAI,EAC7D,CAAC;MACH;IACF,CAAC,MAAM,IAAIS,IAAI,KAAK,GAAG,EAAE;MACvB,IAAIJ,OAAO,EAAE;QACX,IAAID,OAAO,EAAE;UACX;UACAE,gBAAgB,EAAE;QACpB,CAAC,MAAM;UACLF,OAAO,GAAG,IAAI;QAChB;MACF,CAAC,MAAM;QACL,MAAM,IAAIM,KAAK,CACb,kDAAkDV,IAAI,EACxD,CAAC;MACH;IACF,CAAC,MAAM,IAAIS,IAAI,KAAK,GAAG,EAAE;MACvB,IAAIJ,OAAO,IAAID,OAAO,EAAE;QACtB,IAAIE,gBAAgB,EAAE;UACpB;UACAA,gBAAgB,EAAE;QACpB,CAAC,MAAM;UACLJ,OAAO,CAACS,KAAK,IAAIF,IAAI;UACrBL,OAAO,GAAG,KAAK;UACfC,OAAO,GAAG,KAAK;QACjB;MACF,CAAC,MAAM;QACL,MAAM,IAAIK,KAAK,CACb,kDAAkDV,IAAI,EACxD,CAAC;MACH;IACF,CAAC,MAAM,IAAIS,IAAI,KAAK,GAAG,IAAI,CAACL,OAAO,EAAE;MACnC,IAAIF,OAAO,CAACU,KAAK,EAAE;QACjBP,OAAO,GAAG,KAAK;QAEfH,OAAO,CAACW,QAAQ,GAAG,IAAI;MACzB,CAAC,MAAM;QACL,MAAM,IAAIH,KAAK,CACb,kDAAkDV,IAAI,EACxD,CAAC;MACH;IACF,CAAC,MAAM,IAAIS,IAAI,IAAI,IAAI,IAAKA,IAAI,KAAK,GAAG,IAAI,CAACL,OAAQ,EAAE;MACrDC,OAAO,GAAG,KAAK;;MAEf;MACAH,OAAO,CAACC,OAAO,GAAGD,OAAO,CAACC,OAAO,CAACW,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;MAEpD,IAAIZ,OAAO,CAACC,OAAO,KAAK,EAAE,EAAE;QAC1B;MACF;MAEA,IAAID,OAAO,CAACU,KAAK,EAAE;QACjBV,OAAO,CAACU,KAAK,GAAGV,OAAO,CAACU,KAAK,CAACE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;MACjD;MAEA,IAAIZ,OAAO,CAACS,KAAK,EAAE;QACjBT,OAAO,CAACS,KAAK,GAAGT,OAAO,CAACS,KAAK,CAACG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;MACrE;MAEAb,KAAK,CAACc,IAAI,CAACb,OAAO,CAAC;MAEnB,IAAIO,IAAI,IAAI,IAAI,EAAE;QAChB;MACF;MAEAP,OAAO,GAAG;QAAEC,OAAO,EAAE;MAAG,CAAC;IAC3B;IAEA,IAAIC,OAAO,EAAE;MACXF,OAAO,CAACS,KAAK,GAAGT,OAAO,CAACS,KAAK,IAAI,EAAE;MACnCT,OAAO,CAACS,KAAK,IAAIF,IAAI;IACvB;IAEA,IAAIJ,OAAO,IAAI,CAACD,OAAO,EAAE;MACvBF,OAAO,CAACU,KAAK,GAAGV,OAAO,CAACU,KAAK,IAAI,EAAE;MACnCV,OAAO,CAACU,KAAK,IAAIH,IAAI;IACvB;EACF;EAEA,IAAIL,OAAO,EAAE;IACX,MAAM,IAAIM,KAAK,CAAC,uCAAuCV,IAAI,EAAE,CAAC;EAChE;EAEA,MAAMgB,MAAM,GAAGf,KAAK,CAACgB,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACN,KAAK,CAAC,CAACO,MAAM,CAACC,OAAO,CAAC;EAE9D,KAAK,MAAM,CAACC,KAAK,EAAET,KAAK,CAAC,IAAII,MAAM,CAACM,OAAO,CAAC,CAAC,EAAE;IAC7C,IAAIN,MAAM,CAACO,OAAO,CAACX,KAAK,CAAC,KAAKS,KAAK,EAAE;MACnC,MAAM,IAAIX,KAAK,CAAC,yBAAyBE,KAAK,oBAAoBZ,IAAI,EAAE,CAAC;IAC3E;EACF;EAEA,OAAOC,KAAK;AACd;AAEA,OAAO,SAASuB,mBAAmBA,CACjCC,WAAgB,EAChBxB,KAAU,EACVyB,KAAK,GAAG,KAAK,EACR;EACL,OAAOA,KAAK,GAAGzB,KAAK,GAAG,CAAC,GAAGwB,WAAW,EAAE,GAAGxB,KAAK,CAAC;AACnD","ignoreList":[]}
|