@react-navigation/core 7.0.0-alpha.12 → 7.0.0-alpha.14

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.
Files changed (67) hide show
  1. package/lib/commonjs/Group.js.map +1 -1
  2. package/lib/commonjs/Screen.js.map +1 -1
  3. package/lib/commonjs/StaticNavigation.js.map +1 -1
  4. package/lib/commonjs/createNavigatorFactory.js.map +1 -1
  5. package/lib/commonjs/deepFreeze.js +37 -0
  6. package/lib/commonjs/deepFreeze.js.map +1 -0
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/types.js.map +1 -1
  9. package/lib/commonjs/useDescriptors.js.map +1 -1
  10. package/lib/commonjs/useFocusEffect.js +2 -2
  11. package/lib/commonjs/useNavigationBuilder.js +3 -2
  12. package/lib/commonjs/useNavigationBuilder.js.map +1 -1
  13. package/lib/commonjs/useRouteCache.js +15 -1
  14. package/lib/commonjs/useRouteCache.js.map +1 -1
  15. package/lib/commonjs/useSyncState.js +12 -3
  16. package/lib/commonjs/useSyncState.js.map +1 -1
  17. package/lib/module/Group.js.map +1 -1
  18. package/lib/module/Screen.js.map +1 -1
  19. package/lib/module/StaticNavigation.js.map +1 -1
  20. package/lib/module/createNavigatorFactory.js +1 -0
  21. package/lib/module/createNavigatorFactory.js.map +1 -1
  22. package/lib/module/deepFreeze.js +29 -0
  23. package/lib/module/deepFreeze.js.map +1 -0
  24. package/lib/module/index.js.map +1 -1
  25. package/lib/module/types.js.map +1 -1
  26. package/lib/module/useDescriptors.js.map +1 -1
  27. package/lib/module/useFocusEffect.js +2 -2
  28. package/lib/module/useNavigationBuilder.js +3 -2
  29. package/lib/module/useNavigationBuilder.js.map +1 -1
  30. package/lib/module/useRouteCache.js +15 -1
  31. package/lib/module/useRouteCache.js.map +1 -1
  32. package/lib/module/useSyncState.js +12 -3
  33. package/lib/module/useSyncState.js.map +1 -1
  34. package/lib/typescript/src/Group.d.ts +1 -1
  35. package/lib/typescript/src/Group.d.ts.map +1 -1
  36. package/lib/typescript/src/Screen.d.ts +1 -1
  37. package/lib/typescript/src/Screen.d.ts.map +1 -1
  38. package/lib/typescript/src/StaticNavigation.d.ts +17 -15
  39. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  40. package/lib/typescript/src/createNavigatorFactory.d.ts +1 -9
  41. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  42. package/lib/typescript/src/deepFreeze.d.ts +3 -0
  43. package/lib/typescript/src/deepFreeze.d.ts.map +1 -0
  44. package/lib/typescript/src/index.d.ts +1 -1
  45. package/lib/typescript/src/index.d.ts.map +1 -1
  46. package/lib/typescript/src/types.d.ts +59 -22
  47. package/lib/typescript/src/types.d.ts.map +1 -1
  48. package/lib/typescript/src/useDescriptors.d.ts +1 -1
  49. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  50. package/lib/typescript/src/useNavigationBuilder.d.ts +1 -22
  51. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  52. package/lib/typescript/src/useRouteCache.d.ts +1 -1
  53. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  54. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  55. package/package.json +2 -2
  56. package/src/Group.tsx +2 -1
  57. package/src/Screen.tsx +11 -1
  58. package/src/StaticNavigation.tsx +107 -26
  59. package/src/createNavigatorFactory.tsx +1 -36
  60. package/src/deepFreeze.tsx +34 -0
  61. package/src/index.tsx +1 -0
  62. package/src/types.tsx +128 -21
  63. package/src/useDescriptors.tsx +8 -1
  64. package/src/useFocusEffect.tsx +2 -2
  65. package/src/useNavigationBuilder.tsx +12 -6
  66. package/src/useRouteCache.tsx +17 -1
  67. package/src/useSyncState.tsx +16 -3
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","React","isValidElementType","useLatestCallback","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","useChildListeners","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","useIsomorphicLayoutEffect","useKeyedChildListeners","useNavigationHelpers","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","groupLayout","configs","Children","toArray","reduce","acc","child","isValidElement","type","props","navigationKey","Error","JSON","stringify","name","push","keys","options","layout","Fragment","screenOptions","screenLayout","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","useNavigationBuilder","createRouter","navigatorKey","route","useContext","screenListeners","rest","current","router","useRef","routeConfigs","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","state","isStateInitialized","stale","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanedUp","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","params","initial","screen","getInitialState","stateFromParams","index","routes","path","getRehydratedState","previousRouteKeyListRef","useEffect","previousRouteKeyList","nextState","navigatorStateForNextRouteNamesChange","getStateForRouteNamesChange","routeKeyChanges","filter","previousNestedParamsRef","previousParams","action","reset","navigate","updatedState","getStateForAction","shouldUpdate","emitter","e","target","find","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","id","focusedListeners","focus","getStateListeners","describe","NavigationContent","element","createElement","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["CommonActions","React","isValidElementType","useLatestCallback","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","useChildListeners","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","useIsomorphicLayoutEffect","useKeyedChildListeners","useNavigationHelpers","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","groupLayout","configs","Children","toArray","reduce","acc","child","isValidElement","type","props","navigationKey","Error","JSON","stringify","name","push","keys","options","layout","Fragment","screenOptions","screenLayout","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","useNavigationBuilder","createRouter","navigatorKey","route","useContext","screenListeners","rest","current","router","useRef","routeConfigs","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","state","isStateInitialized","stale","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanedUp","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","params","initial","screen","getInitialState","stateFromParams","index","routes","path","getRehydratedState","previousRouteKeyListRef","useEffect","previousRouteKeyList","nextState","navigatorStateForNextRouteNamesChange","getStateForRouteNamesChange","routeKeyChanges","filter","previousNestedParamsRef","previousParams","action","reset","navigate","updatedState","getStateForAction","shouldUpdate","emitter","e","target","find","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","id","focusedListeners","focus","getStateListeners","describe","NavigationContent","element","createElement","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { isRecordEqual } from './isRecordEqual';
3
3
  /**
4
- * Utilites such as `getFocusedRouteNameFromRoute` need to access state.
4
+ * Utilities such as `getFocusedRouteNameFromRoute` need to access state.
5
5
  * So we need a way to suppress the warning for those use cases.
6
6
  * This is fine since they are internal utilities and this is not public API.
7
7
  */
@@ -33,6 +33,20 @@ export function useRouteCache(routes) {
33
33
  } else {
34
34
  proxy = routeWithoutState;
35
35
  }
36
+ if (process.env.NODE_ENV !== 'production') {
37
+ // FIXME: since the state is updated with mutation, the route object cannot be frozen
38
+ // As a workaround, loop through the object and make the properties readonly
39
+ for (const key in proxy) {
40
+ // @ts-expect-error: this is fine since we are looping through the object
41
+ const value = proxy[key];
42
+ Object.defineProperty(proxy, key, {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: false,
46
+ value
47
+ });
48
+ }
49
+ }
36
50
  Object.defineProperty(proxy, CHILD_STATE, {
37
51
  enumerable: false,
38
52
  configurable: true,
@@ -1 +1 @@
1
- {"version":3,"names":["React","isRecordEqual","CHILD_STATE","Symbol","useRouteCache","routes","cache","useMemo","current","Map","process","env","NODE_ENV","reduce","acc","route","previous","get","key","state","routeWithoutState","proxy","Object","defineProperty","enumerable","configurable","value","set","Array","from","values"],"sourceRoot":"../../src","sources":["useRouteCache.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,aAAa,QAAQ,iBAAiB;AAK/C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGC,MAAM,CAAC,aAAa,CAAC;;AAEhD;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAC3BC,MAAuB,EACvB;EACA;EACA,MAAMC,KAAK,GAAGN,KAAK,CAACO,OAAO,CAAC,OAAO;IAAEC,OAAO,EAAE,IAAIC,GAAG,CAAC;EAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;EAE7E,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC;IACA,OAAOP,MAAM;EACf;EAEAC,KAAK,CAACE,OAAO,GAAGH,MAAM,CAACQ,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IAC5C,MAAMC,QAAQ,GAAGV,KAAK,CAACE,OAAO,CAACS,GAAG,CAACF,KAAK,CAACG,GAAG,CAAC;IAC7C,MAAM;MAAEC,KAAK;MAAE,GAAGC;IAAkB,CAAC,GAAGL,KAAK;IAE7C,IAAIM,KAAK;IAET,IAAIL,QAAQ,IAAIf,aAAa,CAACe,QAAQ,EAAEI,iBAAiB,CAAC,EAAE;MAC1D;MACAC,KAAK,GAAGL,QAAQ;IAClB,CAAC,MAAM;MACLK,KAAK,GAAGD,iBAAiB;IAC3B;IAEAE,MAAM,CAACC,cAAc,CAACF,KAAK,EAAEnB,WAAW,EAAE;MACxCsB,UAAU,EAAE,KAAK;MACjBC,YAAY,EAAE,IAAI;MAClBC,KAAK,EAAEP;IACT,CAAC,CAAC;IAEFL,GAAG,CAACa,GAAG,CAACZ,KAAK,CAACG,GAAG,EAAEG,KAAK,CAAC;IAEzB,OAAOP,GAAG;EACZ,CAAC,EAAE,IAAIL,GAAG,CAAC,CAAe,CAAC;EAE3B,OAAOmB,KAAK,CAACC,IAAI,CAACvB,KAAK,CAACE,OAAO,CAACsB,MAAM,CAAC,CAAC,CAAC;AAC3C"}
1
+ {"version":3,"names":["React","isRecordEqual","CHILD_STATE","Symbol","useRouteCache","routes","cache","useMemo","current","Map","process","env","NODE_ENV","reduce","acc","route","previous","get","key","state","routeWithoutState","proxy","value","Object","defineProperty","enumerable","configurable","writable","set","Array","from","values"],"sourceRoot":"../../src","sources":["useRouteCache.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,aAAa,QAAQ,iBAAiB;AAK/C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGC,MAAM,CAAC,aAAa,CAAC;;AAEhD;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAC3BC,MAAuB,EACvB;EACA;EACA,MAAMC,KAAK,GAAGN,KAAK,CAACO,OAAO,CAAC,OAAO;IAAEC,OAAO,EAAE,IAAIC,GAAG,CAAC;EAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;EAE7E,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC;IACA,OAAOP,MAAM;EACf;EAEAC,KAAK,CAACE,OAAO,GAAGH,MAAM,CAACQ,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IAC5C,MAAMC,QAAQ,GAAGV,KAAK,CAACE,OAAO,CAACS,GAAG,CAACF,KAAK,CAACG,GAAG,CAAC;IAC7C,MAAM;MAAEC,KAAK;MAAE,GAAGC;IAAkB,CAAC,GAAGL,KAAK;IAE7C,IAAIM,KAAK;IAET,IAAIL,QAAQ,IAAIf,aAAa,CAACe,QAAQ,EAAEI,iBAAiB,CAAC,EAAE;MAC1D;MACAC,KAAK,GAAGL,QAAQ;IAClB,CAAC,MAAM;MACLK,KAAK,GAAGD,iBAAiB;IAC3B;IAEA,IAAIV,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC;MACA;MACA,KAAK,MAAMM,GAAG,IAAIG,KAAK,EAAE;QACvB;QACA,MAAMC,KAAK,GAAGD,KAAK,CAACH,GAAG,CAAC;QAExBK,MAAM,CAACC,cAAc,CAACH,KAAK,EAAEH,GAAG,EAAE;UAChCO,UAAU,EAAE,IAAI;UAChBC,YAAY,EAAE,IAAI;UAClBC,QAAQ,EAAE,KAAK;UACfL;QACF,CAAC,CAAC;MACJ;IACF;IAEAC,MAAM,CAACC,cAAc,CAACH,KAAK,EAAEnB,WAAW,EAAE;MACxCuB,UAAU,EAAE,KAAK;MACjBC,YAAY,EAAE,IAAI;MAClBJ,KAAK,EAAEH;IACT,CAAC,CAAC;IAEFL,GAAG,CAACc,GAAG,CAACb,KAAK,CAACG,GAAG,EAAEG,KAAK,CAAC;IAEzB,OAAOP,GAAG;EACZ,CAAC,EAAE,IAAIL,GAAG,CAAC,CAAe,CAAC;EAE3B,OAAOoB,KAAK,CAACC,IAAI,CAACxB,KAAK,CAACE,OAAO,CAACuB,MAAM,CAAC,CAAC,CAAC;AAC3C"}
@@ -1,10 +1,19 @@
1
1
  import * as React from 'react';
2
+ import { deepFreeze } from './deepFreeze';
2
3
  const createStore = getInitialState => {
3
4
  const listeners = [];
4
- let state = getInitialState();
5
- const getState = () => state;
5
+ let initialized = false;
6
+ let state;
7
+ const getState = () => {
8
+ if (initialized) {
9
+ return state;
10
+ }
11
+ initialized = true;
12
+ state = deepFreeze(getInitialState());
13
+ return state;
14
+ };
6
15
  const setState = newState => {
7
- state = newState;
16
+ state = deepFreeze(newState);
8
17
  listeners.forEach(listener => listener());
9
18
  };
10
19
  const subscribe = callback => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","createStore","getInitialState","listeners","state","getState","setState","newState","forEach","listener","subscribe","callback","push","index","indexOf","splice","useSyncState","store","useRef","current","useSyncExternalStore","useDebugValue"],"sourceRoot":"../../src","sources":["useSyncState.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,MAAMC,WAAW,GAAQC,eAAwB,IAAK;EACpD,MAAMC,SAAyB,GAAG,EAAE;EAEpC,IAAIC,KAAQ,GAAGF,eAAe,CAAC,CAAC;EAEhC,MAAMG,QAAQ,GAAGA,CAAA,KAAMD,KAAK;EAE5B,MAAME,QAAQ,GAAIC,QAAW,IAAK;IAChCH,KAAK,GAAGG,QAAQ;IAChBJ,SAAS,CAACK,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAC7C,CAAC;EAED,MAAMC,SAAS,GAAIC,QAAoB,IAAK;IAC1CR,SAAS,CAACS,IAAI,CAACD,QAAQ,CAAC;IAExB,OAAO,MAAM;MACX,MAAME,KAAK,GAAGV,SAAS,CAACW,OAAO,CAACH,QAAQ,CAAC;MAEzC,IAAIE,KAAK,GAAG,CAAC,CAAC,EAAE;QACdV,SAAS,CAACY,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;MAC5B;IACF,CAAC;EACH,CAAC;EAED,OAAO;IACLR,QAAQ;IACRC,QAAQ;IACRI;EACF,CAAC;AACH,CAAC;AAED,OAAO,SAASM,YAAYA,CAAId,eAAwB,EAAE;EACxD,MAAMe,KAAK,GAAGjB,KAAK,CAACkB,MAAM,CAACjB,WAAW,CAACC,eAAe,CAAC,CAAC,CAACiB,OAAO;EAEhE,MAAMf,KAAK,GAAGJ,KAAK,CAACoB,oBAAoB,CACtCH,KAAK,CAACP,SAAS,EACfO,KAAK,CAACZ,QAAQ,EACdY,KAAK,CAACZ,QACR,CAAC;EAEDL,KAAK,CAACqB,aAAa,CAACjB,KAAK,CAAC;EAE1B,OAAO,CAACA,KAAK,EAAEa,KAAK,CAACZ,QAAQ,EAAEY,KAAK,CAACX,QAAQ,CAAC;AAChD"}
1
+ {"version":3,"names":["React","deepFreeze","createStore","getInitialState","listeners","initialized","state","getState","setState","newState","forEach","listener","subscribe","callback","push","index","indexOf","splice","useSyncState","store","useRef","current","useSyncExternalStore","useDebugValue"],"sourceRoot":"../../src","sources":["useSyncState.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,UAAU,QAAQ,cAAc;AAEzC,MAAMC,WAAW,GAAQC,eAAwB,IAAK;EACpD,MAAMC,SAAyB,GAAG,EAAE;EAEpC,IAAIC,WAAW,GAAG,KAAK;EACvB,IAAIC,KAAQ;EAEZ,MAAMC,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAIF,WAAW,EAAE;MACf,OAAOC,KAAK;IACd;IAEAD,WAAW,GAAG,IAAI;IAClBC,KAAK,GAAGL,UAAU,CAACE,eAAe,CAAC,CAAC,CAAC;IAErC,OAAOG,KAAK;EACd,CAAC;EAED,MAAME,QAAQ,GAAIC,QAAW,IAAK;IAChCH,KAAK,GAAGL,UAAU,CAACQ,QAAQ,CAAC;IAE5BL,SAAS,CAACM,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAC7C,CAAC;EAED,MAAMC,SAAS,GAAIC,QAAoB,IAAK;IAC1CT,SAAS,CAACU,IAAI,CAACD,QAAQ,CAAC;IAExB,OAAO,MAAM;MACX,MAAME,KAAK,GAAGX,SAAS,CAACY,OAAO,CAACH,QAAQ,CAAC;MAEzC,IAAIE,KAAK,GAAG,CAAC,CAAC,EAAE;QACdX,SAAS,CAACa,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;MAC5B;IACF,CAAC;EACH,CAAC;EAED,OAAO;IACLR,QAAQ;IACRC,QAAQ;IACRI;EACF,CAAC;AACH,CAAC;AAED,OAAO,SAASM,YAAYA,CAAIf,eAAwB,EAAE;EACxD,MAAMgB,KAAK,GAAGnB,KAAK,CAACoB,MAAM,CAAClB,WAAW,CAACC,eAAe,CAAC,CAAC,CAACkB,OAAO;EAEhE,MAAMf,KAAK,GAAGN,KAAK,CAACsB,oBAAoB,CACtCH,KAAK,CAACP,SAAS,EACfO,KAAK,CAACZ,QAAQ,EACdY,KAAK,CAACZ,QACR,CAAC;EAEDP,KAAK,CAACuB,aAAa,CAACjB,KAAK,CAAC;EAE1B,OAAO,CAACA,KAAK,EAAEa,KAAK,CAACZ,QAAQ,EAAEY,KAAK,CAACX,QAAQ,CAAC;AAChD"}
@@ -3,5 +3,5 @@ import type { RouteGroupConfig } from './types';
3
3
  /**
4
4
  * Empty component used for grouping screen configs.
5
5
  */
6
- export declare function Group<ParamList extends ParamListBase, ScreenOptions extends {}>(_: RouteGroupConfig<ParamList, ScreenOptions>): null;
6
+ export declare function Group<ParamList extends ParamListBase, ScreenOptions extends {}, Navigation>(_: RouteGroupConfig<ParamList, ScreenOptions, Navigation>): null;
7
7
  //# sourceMappingURL=Group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,wBAAgB,KAAK,CACnB,SAAS,SAAS,aAAa,EAC/B,aAAa,SAAS,EAAE,EACxB,CAAC,EAAE,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,QAG9C"}
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,wBAAgB,KAAK,CACnB,SAAS,SAAS,aAAa,EAC/B,aAAa,SAAS,EAAE,EACxB,UAAU,EACV,CAAC,EAAE,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,QAG1D"}
@@ -3,5 +3,5 @@ import type { EventMapBase, RouteConfig } from './types';
3
3
  /**
4
4
  * Empty component used for specifying route configuration.
5
5
  */
6
- export declare function Screen<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase>(_: RouteConfig<ParamList, RouteName, State, ScreenOptions, EventMap>): null;
6
+ export declare function Screen<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationProp>(_: RouteConfig<ParamList, RouteName, State, ScreenOptions, EventMap, NavigationProp>): null;
7
7
  //# sourceMappingURL=Screen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../src/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzD;;GAEG;AACH,wBAAgB,MAAM,CACpB,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,EACjC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,QAGrE"}
1
+ {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../src/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzD;;GAEG;AACH,wBAAgB,MAAM,CACpB,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,EACjC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,cAAc,EAEd,CAAC,EAAE,WAAW,CACZ,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CACf,QAIF"}
@@ -1,6 +1,6 @@
1
1
  import type { NavigationState, ParamListBase } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
- import type { DefaultNavigatorOptions, EventMapBase, NavigatorScreenParams, PathConfig, RouteConfig, RouteGroupConfig } from './types';
3
+ import type { DefaultNavigatorOptions, EventMapBase, NavigationListBase, NavigatorScreenParams, NavigatorTypeBagBase, PathConfig, RouteConfigComponent, RouteConfigProps, RouteGroupConfig } from './types';
4
4
  /**
5
5
  * Flatten a type to remove all type alias names, unions etc.
6
6
  * This will show a plain object when hovering over the type.
@@ -38,15 +38,16 @@ type ParamListForScreens<Screens> = {
38
38
  };
39
39
  type ParamListForGroups<Groups extends Readonly<{
40
40
  [key: string]: {
41
- screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase>;
41
+ screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, any>;
42
42
  };
43
43
  }> | undefined> = Groups extends {
44
44
  [key: string]: {
45
- screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase>;
45
+ screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, any>;
46
46
  };
47
47
  } ? ParamListForScreens<UnionToIntersection<Groups[keyof Groups]['screens']>> : {};
48
- type StaticConfigScreens<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase> = {
49
- [key in keyof ParamList]: React.ComponentType<any> | StaticNavigation<any, any, any> | (Omit<RouteConfig<ParamList, keyof ParamList, State, ScreenOptions, EventMap>, 'name' | 'component' | 'getComponent' | 'children'> & {
48
+ type StaticRouteConfig<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = RouteConfigProps<ParamListBase, string, State, ScreenOptions, EventMap, Navigation> & RouteConfigComponent<ParamList, RouteName>;
49
+ type StaticConfigScreens<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>> = {
50
+ [RouteName in keyof ParamList]: React.ComponentType<any> | StaticNavigation<any, any, any> | (Omit<StaticRouteConfig<ParamList, RouteName, State, ScreenOptions, EventMap, NavigationList[RouteName]>, 'name' | 'component' | 'getComponent' | 'children'> & {
50
51
  /**
51
52
  * Callback to determine whether the screen should be rendered or not.
52
53
  * This can be useful for conditional rendering of screens,
@@ -79,7 +80,7 @@ type StaticConfigScreens<ParamList extends ParamListBase, State extends Navigati
79
80
  screen: StaticNavigation<any, any, any> | React.ComponentType<any>;
80
81
  });
81
82
  };
82
- type GroupConfig<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase> = Omit<RouteGroupConfig<ParamList, ScreenOptions>, 'screens' | 'children'> & {
83
+ type GroupConfig<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>> = Omit<RouteGroupConfig<ParamList, ScreenOptions, NavigationList[keyof ParamList]>, 'screens' | 'children'> & {
83
84
  /**
84
85
  * Callback to determine whether the screens in the group should be rendered or not.
85
86
  * This can be useful for conditional rendering of group of screens.
@@ -88,29 +89,30 @@ type GroupConfig<ParamList extends ParamListBase, State extends NavigationState,
88
89
  /**
89
90
  * Static navigation config or Component to render for the screen.
90
91
  */
91
- screens: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap>;
92
+ screens: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap, NavigationList>;
92
93
  };
93
- export type StaticConfig<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigator extends React.ComponentType<{}>> = Omit<Omit<React.ComponentProps<Navigator>, keyof DefaultNavigatorOptions<ParamListBase, NavigationState, {}, EventMapBase>> & DefaultNavigatorOptions<ParamList, State, ScreenOptions, EventMap>, 'screens' | 'children'> & ({
94
+ export type StaticConfig<Bag extends NavigatorTypeBagBase> = StaticConfigInternal<Bag['ParamList'], Bag['NavigatorID'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']>;
95
+ type StaticConfigInternal<ParamList extends ParamListBase, NavigatorID extends string | undefined, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = Omit<Omit<React.ComponentProps<Navigator>, keyof DefaultNavigatorOptions<ParamListBase, string | undefined, NavigationState, {}, EventMapBase, NavigationList[keyof ParamList]>> & DefaultNavigatorOptions<ParamList, NavigatorID, State, ScreenOptions, EventMap, NavigationList[keyof ParamList]>, 'screens' | 'children'> & ({
94
96
  /**
95
97
  * Screens to render in the navigator and their configuration.
96
98
  */
97
- screens: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap>;
99
+ screens: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap, NavigationList>;
98
100
  /**
99
101
  * Groups of screens to render in the navigator and their configuration.
100
102
  */
101
103
  groups?: {
102
- [key: string]: GroupConfig<ParamList, State, ScreenOptions, EventMap>;
104
+ [key: string]: GroupConfig<ParamList, State, ScreenOptions, EventMap, NavigationList>;
103
105
  };
104
106
  } | {
105
107
  /**
106
108
  * Screens to render in the navigator and their configuration.
107
109
  */
108
- screens?: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap>;
110
+ screens?: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap, NavigationList>;
109
111
  /**
110
112
  * Groups of screens to render in the navigator and their configuration.
111
113
  */
112
114
  groups: {
113
- [key: string]: GroupConfig<ParamList, State, ScreenOptions, EventMap>;
115
+ [key: string]: GroupConfig<ParamList, State, ScreenOptions, EventMap, NavigationList>;
114
116
  };
115
117
  });
116
118
  /**
@@ -139,7 +141,7 @@ export type StaticNavigation<NavigatorProps, GroupProps, ScreenProps> = {
139
141
  Navigator: React.ComponentType<NavigatorProps>;
140
142
  Group: React.ComponentType<GroupProps>;
141
143
  Screen: React.ComponentType<ScreenProps>;
142
- config: StaticConfig<ParamListBase, NavigationState, {}, EventMapBase, React.ComponentType<any>>;
144
+ config: StaticConfig<NavigatorTypeBagBase>;
143
145
  };
144
146
  /**
145
147
  * Create a component that renders a navigator based on the static configuration.
@@ -168,10 +170,10 @@ export declare function createComponentForStaticNavigation(tree: StaticNavigatio
168
170
  */
169
171
  export declare function createPathConfigForStaticNavigation(tree: {
170
172
  config: {
171
- screens?: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase>;
173
+ screens?: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
172
174
  groups?: {
173
175
  [key: string]: {
174
- screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase>;
176
+ screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
175
177
  };
176
178
  };
177
179
  };
@@ -1 +1 @@
1
- {"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
- import type { NavigationState, ParamListBase } from '@react-navigation/routers';
2
1
  import type * as React from 'react';
3
- import type { StaticConfig } from './StaticNavigation';
4
- import type { EventMapBase, TypedNavigator } from './types';
5
2
  /**
6
3
  * Higher order component to create a `Navigator` and `Screen` pair.
7
4
  * Custom navigators should wrap the navigator component in `createNavigator` before exporting.
@@ -9,10 +6,5 @@ import type { EventMapBase, TypedNavigator } from './types';
9
6
  * @param Navigator The navigator component to wrap.
10
7
  * @returns Factory method to create a `Navigator` and `Screen` pair.
11
8
  */
12
- export declare function createNavigatorFactory<State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigatorComponent extends React.ComponentType<any>>(Navigator: NavigatorComponent): {
13
- <ParamList extends ParamListBase>(): TypedNavigator<ParamList, State, ScreenOptions, EventMap, NavigatorComponent>;
14
- <ParamList_1 extends ParamListBase, Config extends StaticConfig<ParamList_1, State, ScreenOptions, EventMap, NavigatorComponent>>(config: Config): TypedNavigator<ParamList_1, State, ScreenOptions, EventMap, NavigatorComponent> & {
15
- config: Config;
16
- };
17
- };
9
+ export declare function createNavigatorFactory(Navigator: React.ComponentType<any>): (config?: any) => any;
18
10
  //# sourceMappingURL=createNavigatorFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createNavigatorFactory.d.ts","sourceRoot":"","sources":["../../../src/createNavigatorFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,kBAAkB,SAAS,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EACnD,SAAS,EAAE,kBAAkB;;;;;EA8C9B"}
1
+ {"version":3,"file":"createNavigatorFactory.d.ts","sourceRoot":"","sources":["../../../src/createNavigatorFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAKpC;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,aACtC,GAAG,KAAG,GAAG,CAkB5C"}
@@ -0,0 +1,3 @@
1
+ export declare const isPlainObject: (value: unknown) => value is object;
2
+ export declare const deepFreeze: <T>(object: T) => Readonly<T>;
3
+ //# sourceMappingURL=deepFreeze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepFreeze.d.ts","sourceRoot":"","sources":["../../../src/deepFreeze.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,UAAW,OAAO,oBAM3C,CAAC;AAEF,eAAO,MAAM,UAAU,+BAyBtB,CAAC"}
@@ -14,7 +14,7 @@ export { NavigationIndependentTree } from './NavigationIndependentTree';
14
14
  export { NavigationRouteContext } from './NavigationRouteContext';
15
15
  export { PreventRemoveContext } from './PreventRemoveContext';
16
16
  export { PreventRemoveProvider } from './PreventRemoveProvider';
17
- export { createComponentForStaticNavigation, createPathConfigForStaticNavigation, type StaticNavigation, type StaticParamList, type StaticScreenProps, } from './StaticNavigation';
17
+ export { createComponentForStaticNavigation, createPathConfigForStaticNavigation, type StaticConfig, type StaticNavigation, type StaticParamList, type StaticScreenProps, } from './StaticNavigation';
18
18
  export { ThemeContext } from './theming/ThemeContext';
19
19
  export { ThemeProvider } from './theming/ThemeProvider';
20
20
  export { useTheme } from './theming/useTheme';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,2BAA2B,CAAC"}
@@ -9,11 +9,7 @@ declare global {
9
9
  }
10
10
  }
11
11
  type Keyof<T extends {}> = Extract<keyof T, string>;
12
- export type DefaultNavigatorOptions<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase> = DefaultRouterOptions<Keyof<ParamList>> & {
13
- /**
14
- * Optional ID for the navigator. Can be used with `navigation.getParent(id)` to refer to a parent.
15
- */
16
- id?: string;
12
+ export type DefaultNavigatorOptions<ParamList extends ParamListBase, NavigatorID extends string | undefined, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = DefaultRouterOptions<Keyof<ParamList>> & {
17
13
  /**
18
14
  * Children React Elements to extract the route configuration from.
19
15
  * Only `Screen`, `Group` and `React.Fragment` are supported as children.
@@ -34,14 +30,14 @@ export type DefaultNavigatorOptions<ParamList extends ParamListBase, State exten
34
30
  */
35
31
  screenListeners?: ScreenListeners<State, EventMap> | ((props: {
36
32
  route: RouteProp<ParamList>;
37
- navigation: any;
33
+ navigation: Navigation;
38
34
  }) => ScreenListeners<State, EventMap>);
39
35
  /**
40
36
  * Default options for all screens under this navigator.
41
37
  */
42
38
  screenOptions?: ScreenOptions | ((props: {
43
39
  route: RouteProp<ParamList>;
44
- navigation: any;
40
+ navigation: Navigation;
45
41
  theme: ReactNavigation.Theme;
46
42
  }) => ScreenOptions);
47
43
  /**
@@ -49,7 +45,7 @@ export type DefaultNavigatorOptions<ParamList extends ParamListBase, State exten
49
45
  */
50
46
  screenLayout?: (props: {
51
47
  route: RouteProp<ParamList, keyof ParamList>;
52
- navigation: any;
48
+ navigation: Navigation;
53
49
  theme: ReactNavigation.Theme;
54
50
  children: React.ReactElement;
55
51
  }) => React.ReactElement;
@@ -57,7 +53,14 @@ export type DefaultNavigatorOptions<ParamList extends ParamListBase, State exten
57
53
  A function returning a state, which may be set after modifying the routes name.
58
54
  */
59
55
  getStateForRouteNamesChange?: (state: NavigationState) => PartialState<NavigationState> | undefined;
60
- };
56
+ } & (NavigatorID extends string ? {
57
+ /**
58
+ * Optional ID for the navigator. Can be used with `navigation.getParent(id)` to refer to a parent.
59
+ */
60
+ id: NavigatorID;
61
+ } : {
62
+ id?: undefined;
63
+ });
61
64
  export type EventMapBase = Record<string, {
62
65
  data?: any;
63
66
  canPreventDefault?: boolean;
@@ -404,7 +407,7 @@ export type RouteConfigComponent<ParamList extends ParamListBase, RouteName exte
404
407
  component?: never;
405
408
  getComponent?: never;
406
409
  };
407
- export type RouteConfig<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase> = {
410
+ export type RouteConfigProps<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = {
408
411
  /**
409
412
  * Optional key for this screen. This doesn't need to be unique.
410
413
  * If the key changes, existing screens with this name will be removed or reset.
@@ -420,7 +423,7 @@ export type RouteConfig<ParamList extends ParamListBase, RouteName extends keyof
420
423
  */
421
424
  options?: ScreenOptions | ((props: {
422
425
  route: RouteProp<ParamList, RouteName>;
423
- navigation: any;
426
+ navigation: Navigation;
424
427
  theme: ReactNavigation.Theme;
425
428
  }) => ScreenOptions);
426
429
  /**
@@ -428,7 +431,7 @@ export type RouteConfig<ParamList extends ParamListBase, RouteName extends keyof
428
431
  */
429
432
  listeners?: ScreenListeners<State, EventMap> | ((props: {
430
433
  route: RouteProp<ParamList, RouteName>;
431
- navigation: any;
434
+ navigation: Navigation;
432
435
  }) => ScreenListeners<State, EventMap>);
433
436
  /**
434
437
  * Layout for this screen.
@@ -436,8 +439,8 @@ export type RouteConfig<ParamList extends ParamListBase, RouteName extends keyof
436
439
  * e.g. for styling, error boundaries, suspense, etc.
437
440
  */
438
441
  layout?: (props: {
439
- route: RouteProp<ParamList, keyof ParamList>;
440
- navigation: any;
442
+ route: RouteProp<ParamList, RouteName>;
443
+ navigation: Navigation;
441
444
  theme: ReactNavigation.Theme;
442
445
  children: React.ReactElement;
443
446
  }) => React.ReactElement;
@@ -454,8 +457,9 @@ export type RouteConfig<ParamList extends ParamListBase, RouteName extends keyof
454
457
  * Initial params object for the route.
455
458
  */
456
459
  initialParams?: Partial<ParamList[RouteName]>;
457
- } & RouteConfigComponent<ParamList, RouteName>;
458
- export type RouteGroupConfig<ParamList extends ParamListBase, ScreenOptions extends {}> = {
460
+ };
461
+ export type RouteConfig<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = RouteConfigProps<ParamList, RouteName, State, ScreenOptions, EventMap, Navigation> & RouteConfigComponent<ParamList, RouteName>;
462
+ export type RouteGroupConfig<ParamList extends ParamListBase, ScreenOptions extends {}, Navigation> = {
459
463
  /**
460
464
  * Optional key for the screens in this group.
461
465
  * If the key changes, all existing screens in this group will be removed or reset.
@@ -466,7 +470,7 @@ export type RouteGroupConfig<ParamList extends ParamListBase, ScreenOptions exte
466
470
  */
467
471
  screenOptions?: ScreenOptions | ((props: {
468
472
  route: RouteProp<ParamList, keyof ParamList>;
469
- navigation: any;
473
+ navigation: Navigation;
470
474
  theme: ReactNavigation.Theme;
471
475
  }) => ScreenOptions);
472
476
  /**
@@ -475,7 +479,7 @@ export type RouteGroupConfig<ParamList extends ParamListBase, ScreenOptions exte
475
479
  */
476
480
  screenLayout?: (props: {
477
481
  route: RouteProp<ParamList, keyof ParamList>;
478
- navigation: any;
482
+ navigation: Navigation;
479
483
  theme: ReactNavigation.Theme;
480
484
  children: React.ReactElement;
481
485
  }) => React.ReactElement;
@@ -562,19 +566,52 @@ export type NavigationContainerRef<ParamList extends {}> = NavigationHelpers<Par
562
566
  export type NavigationContainerRefWithCurrent<ParamList extends {}> = NavigationContainerRef<ParamList> & {
563
567
  current: NavigationContainerRef<ParamList> | null;
564
568
  };
565
- export type TypedNavigator<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigator extends React.ComponentType<any>> = {
569
+ export type NavigationListBase<ParamList extends ParamListBase> = {
570
+ [RouteName in keyof ParamList]: unknown;
571
+ };
572
+ export type TypeBag<ParamList extends ParamListBase, NavigatorID extends string | undefined, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = {
573
+ ParamList: ParamList;
574
+ NavigatorID: NavigatorID;
575
+ State: State;
576
+ ScreenOptions: ScreenOptions;
577
+ EventMap: EventMap;
578
+ NavigationList: NavigationList;
579
+ Navigator: Navigator;
580
+ };
581
+ export type NavigatorTypeBagBase = {
582
+ ParamList: ParamListBase;
583
+ NavigatorID: string | undefined;
584
+ State: NavigationState;
585
+ ScreenOptions: {};
586
+ EventMap: EventMapBase;
587
+ NavigationList: NavigationListBase<ParamListBase>;
588
+ Navigator: React.ComponentType<any>;
589
+ };
590
+ export type NavigatorTypeBag<ParamList extends ParamListBase, NavigatorID extends string | undefined, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = {
591
+ ParamList: ParamList;
592
+ NavigatorID: NavigatorID;
593
+ State: State;
594
+ ScreenOptions: ScreenOptions;
595
+ EventMap: EventMap;
596
+ NavigationList: NavigationList;
597
+ Navigator: Navigator;
598
+ };
599
+ export type TypedNavigator<Bag extends NavigatorTypeBagBase, Config = unknown> = TypedNavigatorInternal<Bag['ParamList'], Bag['NavigatorID'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']> & (undefined extends Config ? {} : {
600
+ config: Config;
601
+ });
602
+ type TypedNavigatorInternal<ParamList extends ParamListBase, NavigatorID extends string | undefined, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = {
566
603
  /**
567
604
  * Navigator component which manages the child screens.
568
605
  */
569
- Navigator: React.ComponentType<Omit<React.ComponentProps<Navigator>, keyof DefaultNavigatorOptions<any, any, any, any>> & DefaultNavigatorOptions<ParamList, State, ScreenOptions, EventMap>>;
606
+ Navigator: React.ComponentType<Omit<React.ComponentProps<Navigator>, keyof DefaultNavigatorOptions<any, any, any, any, any, any>> & DefaultNavigatorOptions<ParamList, NavigatorID, State, ScreenOptions, EventMap, NavigationList[keyof ParamList]>>;
570
607
  /**
571
608
  * Component used for grouping multiple route configuration.
572
609
  */
573
- Group: React.ComponentType<RouteGroupConfig<ParamList, ScreenOptions>>;
610
+ Group: React.ComponentType<RouteGroupConfig<ParamList, ScreenOptions, NavigationList[keyof ParamList]>>;
574
611
  /**
575
612
  * Component used for specifying route configuration.
576
613
  */
577
- Screen: <RouteName extends keyof ParamList>(_: RouteConfig<ParamList, RouteName, State, ScreenOptions, EventMap>) => null;
614
+ Screen: <RouteName extends keyof ParamList>(_: RouteConfig<ParamList, RouteName, State, ScreenOptions, EventMap, NavigationList[RouteName]>) => null;
578
615
  };
579
616
  export type NavigatorScreenParams<ParamList extends {}> = {
580
617
  screen?: never;