@react-navigation/core 3.5.0-alpha.6 → 3.5.1

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 (86) hide show
  1. package/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js +1 -1
  2. package/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js.map +1 -1
  3. package/lib/commonjs/navigators/createNavigator.js +1 -1
  4. package/lib/commonjs/navigators/createNavigator.js.map +1 -1
  5. package/lib/commonjs/routers/SwitchRouter.js +1 -1
  6. package/lib/commonjs/routers/SwitchRouter.js.map +1 -1
  7. package/lib/commonjs/routers/__tests__/PathHandling-test.js +1 -1
  8. package/lib/commonjs/routers/__tests__/PathHandling-test.js.map +1 -1
  9. package/lib/commonjs/routers/__tests__/Routers-test.js +1 -1
  10. package/lib/commonjs/routers/__tests__/Routers-test.js.map +1 -1
  11. package/lib/commonjs/routers/__tests__/StackRouter-test.js +1 -1
  12. package/lib/commonjs/routers/__tests__/StackRouter-test.js.map +1 -1
  13. package/lib/commonjs/routers/__tests__/SwitchRouter-test.js +1 -1
  14. package/lib/commonjs/routers/__tests__/SwitchRouter-test.js.map +1 -1
  15. package/lib/commonjs/routers/__tests__/TabRouter-test.js +1 -1
  16. package/lib/commonjs/routers/__tests__/TabRouter-test.js.map +1 -1
  17. package/lib/commonjs/routers/__tests__/pathUtils-test.js +1 -1
  18. package/lib/commonjs/routers/__tests__/pathUtils-test.js.map +1 -1
  19. package/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js +1 -1
  20. package/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js.map +1 -1
  21. package/lib/commonjs/routers/createConfigGetter.js +1 -1
  22. package/lib/commonjs/routers/createConfigGetter.js.map +1 -1
  23. package/lib/commonjs/routers/pathUtils.js +1 -1
  24. package/lib/commonjs/routers/pathUtils.js.map +1 -1
  25. package/lib/commonjs/useTheme.js +1 -1
  26. package/lib/commonjs/useTheme.js.map +1 -1
  27. package/lib/commonjs/utils/getActiveChildNavigationOptions.js +1 -1
  28. package/lib/commonjs/utils/getActiveChildNavigationOptions.js.map +1 -1
  29. package/lib/commonjs/views/SceneView.js +1 -1
  30. package/lib/commonjs/views/SceneView.js.map +1 -1
  31. package/lib/commonjs/views/SwitchView/SwitchView.js +1 -1
  32. package/lib/commonjs/views/SwitchView/SwitchView.js.map +1 -1
  33. package/lib/commonjs/views/__tests__/NavigationEvents-test.js +1 -1
  34. package/lib/commonjs/views/__tests__/NavigationEvents-test.js.map +1 -1
  35. package/lib/commonjs/views/withNavigation.js +1 -1
  36. package/lib/commonjs/views/withNavigation.js.map +1 -1
  37. package/lib/commonjs/views/withNavigationFocus.js +1 -1
  38. package/lib/commonjs/views/withNavigationFocus.js.map +1 -1
  39. package/lib/module/navigators/__tests__/createSwitchnavigator-test.js +1 -1
  40. package/lib/module/navigators/__tests__/createSwitchnavigator-test.js.map +1 -1
  41. package/lib/module/navigators/createNavigator.js +1 -1
  42. package/lib/module/navigators/createNavigator.js.map +1 -1
  43. package/lib/module/routers/SwitchRouter.js +1 -1
  44. package/lib/module/routers/SwitchRouter.js.map +1 -1
  45. package/lib/module/routers/__tests__/PathHandling-test.js +1 -1
  46. package/lib/module/routers/__tests__/PathHandling-test.js.map +1 -1
  47. package/lib/module/routers/__tests__/Routers-test.js +1 -1
  48. package/lib/module/routers/__tests__/Routers-test.js.map +1 -1
  49. package/lib/module/routers/__tests__/StackRouter-test.js +1 -1
  50. package/lib/module/routers/__tests__/StackRouter-test.js.map +1 -1
  51. package/lib/module/routers/__tests__/SwitchRouter-test.js +1 -1
  52. package/lib/module/routers/__tests__/SwitchRouter-test.js.map +1 -1
  53. package/lib/module/routers/__tests__/TabRouter-test.js +1 -1
  54. package/lib/module/routers/__tests__/TabRouter-test.js.map +1 -1
  55. package/lib/module/routers/__tests__/pathUtils-test.js +1 -1
  56. package/lib/module/routers/__tests__/pathUtils-test.js.map +1 -1
  57. package/lib/module/routers/__tests__/validateRouteConfigMap-test.js +1 -1
  58. package/lib/module/routers/__tests__/validateRouteConfigMap-test.js.map +1 -1
  59. package/lib/module/routers/createConfigGetter.js +1 -1
  60. package/lib/module/routers/createConfigGetter.js.map +1 -1
  61. package/lib/module/routers/pathUtils.js +1 -1
  62. package/lib/module/routers/pathUtils.js.map +1 -1
  63. package/lib/module/useTheme.js +1 -1
  64. package/lib/module/useTheme.js.map +1 -1
  65. package/lib/module/utils/getActiveChildNavigationOptions.js +1 -1
  66. package/lib/module/utils/getActiveChildNavigationOptions.js.map +1 -1
  67. package/lib/module/views/SceneView.js +1 -1
  68. package/lib/module/views/SceneView.js.map +1 -1
  69. package/lib/module/views/SwitchView/SwitchView.js +1 -1
  70. package/lib/module/views/SwitchView/SwitchView.js.map +1 -1
  71. package/lib/module/views/__tests__/NavigationEvents-test.js +1 -1
  72. package/lib/module/views/__tests__/NavigationEvents-test.js.map +1 -1
  73. package/lib/module/views/withNavigation.js +1 -1
  74. package/lib/module/views/withNavigation.js.map +1 -1
  75. package/lib/module/views/withNavigationFocus.js +1 -1
  76. package/lib/module/views/withNavigationFocus.js.map +1 -1
  77. package/lib/typescript/useTheme.d.ts +1 -1
  78. package/package.json +1 -1
  79. package/src/navigators/createNavigator.js +35 -16
  80. package/src/routers/SwitchRouter.js +13 -11
  81. package/src/routers/__tests__/pathUtils-test.js +37 -1
  82. package/src/routers/createConfigGetter.js +3 -2
  83. package/src/routers/pathUtils.js +16 -5
  84. package/src/useTheme.ts +1 -1
  85. package/src/utils/getActiveChildNavigationOptions.js +6 -2
  86. package/src/.DS_Store +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["createConfigGetter.js"],"names":["applyConfig","configurer","navigationOptions","configProps","routeConfigs","navigatorScreenConfig","navigation","screenProps","state","route","routeName","Component","routeConfig","routeScreenConfig","componentScreenConfig","configOptions","outputConfig"],"mappings":"6PAAA,qEAEA,sFACA,sFAEA,QAASA,CAAAA,WAAT,CAAqBC,UAArB,CAAiCC,iBAAjC,CAAoDC,WAApD,CAAiE,CAC/D,GAAI,MAAOF,CAAAA,UAAP,GAAsB,UAA1B,CAAsC,CACpC,oCACKC,iBADL,CAEKD,UAAU,+BACRE,WADQ,EAEXD,iBAAiB,CAAjBA,iBAFW,GAFf,EAOD,CACD,GAAI,MAAOD,CAAAA,UAAP,GAAsB,QAA1B,CAAoC,CAClC,oCACKC,iBADL,CAEKD,UAFL,EAID,CACD,MAAOC,CAAAA,iBAAP,CACD,C,aAEc,kBAACE,YAAD,CAAeC,qBAAf,QAAyC,UACtDC,UADsD,CAEtDC,WAFsD,CAGnD,IACKC,CAAAA,KADL,CACeF,UADf,CACKE,KADL,CAEH,GAAMC,CAAAA,KAAK,CAAGD,KAAd,CAEA,uBACEC,KAAK,CAACC,SAAN,EAAmB,MAAOD,CAAAA,KAAK,CAACC,SAAb,GAA2B,QADhD,CAEE,gEAFF,EAKA,GAAMC,CAAAA,SAAS,CAAG,mCAAsBP,YAAtB,CAAoCK,KAAK,CAACC,SAA1C,CAAlB,CAEA,GAAME,CAAAA,WAAW,CAAGR,YAAY,CAACK,KAAK,CAACC,SAAP,CAAhC,CAEA,GAAMG,CAAAA,iBAAiB,CACrBD,WAAW,GAAKD,SAAhB,CAA4B,IAA5B,CAAmCC,WAAW,CAACV,iBADjD,CAEA,GAAMY,CAAAA,qBAAqB,CAAGH,SAAS,CAACT,iBAAxC,CAEA,GAAMa,CAAAA,aAAa,CAAG,CAAET,UAAU,CAAVA,UAAF,CAAcC,WAAW,CAAEA,WAAW,EAAI,EAA1C,CAAtB,CAEA,GAAIS,CAAAA,YAAY,CAAGhB,WAAW,CAACK,qBAAD,CAAwB,EAAxB,CAA4BU,aAA5B,CAA9B,CACAC,YAAY,CAAGhB,WAAW,CACxBc,qBADwB,CAExBE,YAFwB,CAGxBD,aAHwB,CAA1B,CAKAC,YAAY,CAAGhB,WAAW,CAACa,iBAAD,CAAoBG,YAApB,CAAkCD,aAAlC,CAA1B,CAEA,mCAAsBC,YAAtB,CAAoCP,KAApC,EAEA,MAAOO,CAAAA,YAAP,CACD,CAjCc,E","sourcesContent":["import invariant from '../utils/invariant';\n\nimport getScreenForRouteName from './getScreenForRouteName';\nimport validateScreenOptions from './validateScreenOptions';\n\nfunction applyConfig(configurer, navigationOptions, configProps) {\n if (typeof configurer === 'function') {\n return {\n ...navigationOptions,\n ...configurer({\n ...configProps,\n navigationOptions,\n }),\n };\n }\n if (typeof configurer === 'object') {\n return {\n ...navigationOptions,\n ...configurer,\n };\n }\n return navigationOptions;\n}\n\nexport default (routeConfigs, navigatorScreenConfig) => (\n navigation,\n screenProps\n) => {\n const { state } = navigation;\n const route = state;\n\n invariant(\n route.routeName && typeof route.routeName === 'string',\n 'Cannot get config because the route does not have a routeName.'\n );\n\n const Component = getScreenForRouteName(routeConfigs, route.routeName);\n\n const routeConfig = routeConfigs[route.routeName];\n\n const routeScreenConfig =\n routeConfig === Component ? null : routeConfig.navigationOptions;\n const componentScreenConfig = Component.navigationOptions;\n\n const configOptions = { navigation, screenProps: screenProps || {} };\n\n let outputConfig = applyConfig(navigatorScreenConfig, {}, configOptions);\n outputConfig = applyConfig(\n componentScreenConfig,\n outputConfig,\n configOptions\n );\n outputConfig = applyConfig(routeScreenConfig, outputConfig, configOptions);\n\n validateScreenOptions(outputConfig, route);\n\n return outputConfig;\n};\n"]}
1
+ {"version":3,"sources":["createConfigGetter.js"],"names":["applyConfig","configurer","navigationOptions","configProps","routeConfigs","navigatorScreenConfig","navigation","screenProps","theme","state","route","routeName","Component","routeConfig","routeScreenConfig","componentScreenConfig","configOptions","outputConfig"],"mappings":"6PAAA,qEAEA,sFACA,sFAEA,QAASA,CAAAA,WAAT,CAAqBC,UAArB,CAAiCC,iBAAjC,CAAoDC,WAApD,CAAiE,CAC/D,GAAI,MAAOF,CAAAA,UAAP,GAAsB,UAA1B,CAAsC,CACpC,oCACKC,iBADL,CAEKD,UAAU,+BACRE,WADQ,EAEXD,iBAAiB,CAAjBA,iBAFW,GAFf,EAOD,CACD,GAAI,MAAOD,CAAAA,UAAP,GAAsB,QAA1B,CAAoC,CAClC,oCACKC,iBADL,CAEKD,UAFL,EAID,CACD,MAAOC,CAAAA,iBAAP,CACD,C,aAEc,kBAACE,YAAD,CAAeC,qBAAf,QAAyC,UACtDC,UADsD,CAEtDC,WAFsD,CAGtDC,KAHsD,CAInD,IACKC,CAAAA,KADL,CACeH,UADf,CACKG,KADL,CAEH,GAAMC,CAAAA,KAAK,CAAGD,KAAd,CAEA,uBACEC,KAAK,CAACC,SAAN,EAAmB,MAAOD,CAAAA,KAAK,CAACC,SAAb,GAA2B,QADhD,CAEE,gEAFF,EAKA,GAAMC,CAAAA,SAAS,CAAG,mCAAsBR,YAAtB,CAAoCM,KAAK,CAACC,SAA1C,CAAlB,CAEA,GAAME,CAAAA,WAAW,CAAGT,YAAY,CAACM,KAAK,CAACC,SAAP,CAAhC,CAEA,GAAMG,CAAAA,iBAAiB,CACrBD,WAAW,GAAKD,SAAhB,CAA4B,IAA5B,CAAmCC,WAAW,CAACX,iBADjD,CAEA,GAAMa,CAAAA,qBAAqB,CAAGH,SAAS,CAACV,iBAAxC,CAEA,GAAMc,CAAAA,aAAa,CAAG,CAAEV,UAAU,CAAVA,UAAF,CAAcC,WAAW,CAAEA,WAAW,EAAI,EAA1C,CAA8CC,KAAK,CAALA,KAA9C,CAAtB,CAEA,GAAIS,CAAAA,YAAY,CAAGjB,WAAW,CAACK,qBAAD,CAAwB,EAAxB,CAA4BW,aAA5B,CAA9B,CACAC,YAAY,CAAGjB,WAAW,CACxBe,qBADwB,CAExBE,YAFwB,CAGxBD,aAHwB,CAA1B,CAKAC,YAAY,CAAGjB,WAAW,CAACc,iBAAD,CAAoBG,YAApB,CAAkCD,aAAlC,CAA1B,CAEA,mCAAsBC,YAAtB,CAAoCP,KAApC,EAEA,MAAOO,CAAAA,YAAP,CACD,CAlCc,E","sourcesContent":["import invariant from '../utils/invariant';\n\nimport getScreenForRouteName from './getScreenForRouteName';\nimport validateScreenOptions from './validateScreenOptions';\n\nfunction applyConfig(configurer, navigationOptions, configProps) {\n if (typeof configurer === 'function') {\n return {\n ...navigationOptions,\n ...configurer({\n ...configProps,\n navigationOptions,\n }),\n };\n }\n if (typeof configurer === 'object') {\n return {\n ...navigationOptions,\n ...configurer,\n };\n }\n return navigationOptions;\n}\n\nexport default (routeConfigs, navigatorScreenConfig) => (\n navigation,\n screenProps,\n theme\n) => {\n const { state } = navigation;\n const route = state;\n\n invariant(\n route.routeName && typeof route.routeName === 'string',\n 'Cannot get config because the route does not have a routeName.'\n );\n\n const Component = getScreenForRouteName(routeConfigs, route.routeName);\n\n const routeConfig = routeConfigs[route.routeName];\n\n const routeScreenConfig =\n routeConfig === Component ? null : routeConfig.navigationOptions;\n const componentScreenConfig = Component.navigationOptions;\n\n const configOptions = { navigation, screenProps: screenProps || {}, theme };\n\n let outputConfig = applyConfig(navigatorScreenConfig, {}, configOptions);\n outputConfig = applyConfig(\n componentScreenConfig,\n outputConfig,\n configOptions\n );\n outputConfig = applyConfig(routeScreenConfig, outputConfig, configOptions);\n\n validateScreenOptions(outputConfig, route);\n\n return outputConfig;\n};\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.createPathParser=exports.urlToPathAndParams=exports.getParamsFromPath=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _pathToRegexp=_interopRequireWildcard(require("path-to-regexp"));var NavigationActions=_interopRequireWildcard(require("../NavigationActions"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var queryString=require('query-string');var getParamsFromPath=function getParamsFromPath(inputParams,pathMatch,pathMatchKeys){var params=pathMatch.slice(1).reduce(function(paramsOut,matchResult,i){var key=pathMatchKeys[i];if(!key||key.asterisk){return paramsOut;}var paramName=key.name;var decodedMatchResult;if(matchResult){try{decodedMatchResult=decodeURIComponent(matchResult);}catch(e){}}paramsOut[paramName]=decodedMatchResult||matchResult;return paramsOut;},(0,_objectSpread2.default)({},inputParams));return params;};exports.getParamsFromPath=getParamsFromPath;var getRestOfPath=function getRestOfPath(pathMatch,pathMatchKeys){var rest=pathMatch[pathMatchKeys.findIndex(function(k){return k.asterisk;})+1];return rest;};var urlToPathAndParams=function urlToPathAndParams(url,uriPrefix){var searchMatch=url.match(/^(.*)\?(.*)$/);var params=searchMatch?queryString.parse(searchMatch[2]):{};var urlWithoutSearch=searchMatch?searchMatch[1]:url;var delimiter=uriPrefix||'://';var path=urlWithoutSearch.split(delimiter)[1];if(path===undefined){path=urlWithoutSearch;}if(path==='/'){path='';}if(path[path.length-1]==='/'){path=path.slice(0,-1);}return{path:path,params:params};};exports.urlToPathAndParams=urlToPathAndParams;var createPathParser=function createPathParser(childRouters,routeConfigs,_ref){var _ref$paths=_ref.paths,pathConfigs=_ref$paths===void 0?{}:_ref$paths,disableRouteNamePaths=_ref.disableRouteNamePaths;var pathsByRouteNames={};var paths=[];Object.keys(childRouters).forEach(function(routeName){var pathPattern;if(pathConfigs[routeName]!==undefined){pathPattern=pathConfigs[routeName];}else{pathPattern=routeConfigs[routeName].path;}if(pathPattern===undefined){pathPattern=disableRouteNamePaths?null:routeName;}(0,_invariant.default)(pathPattern===null||typeof pathPattern==='string',"Route path for "+routeName+" must be specified as a string, or null.");var isPathMatchable=pathPattern!==null;var exactReKeys=[];var exactRe=isPathMatchable?(0,_pathToRegexp.default)(pathPattern,exactReKeys):null;var extendedPathReKeys=[];var isWildcard=pathPattern===''||!isPathMatchable;var extendedPathRe=(0,_pathToRegexp.default)(isWildcard?'*':pathPattern+"/*",extendedPathReKeys);pathsByRouteNames[routeName]={exactRe:exactRe,exactReKeys:exactReKeys,extendedPathRe:extendedPathRe,extendedPathReKeys:extendedPathReKeys,isWildcard:isWildcard,toPath:pathPattern===null?function(){return'';}:(0,_pathToRegexp.compile)(pathPattern)};});paths=Object.entries(pathsByRouteNames);var getActionForPathAndParams=function getActionForPathAndParams(){var pathToResolve=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'';var inputParams=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};for(var _iterator=paths,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref4;if(_isArray){if(_i>=_iterator.length)break;_ref4=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref4=_i.value;}var _ref8=_ref4;var _ref3=(0,_slicedToArray2.default)(_ref8,2);var _routeName2=_ref3[0];var _path2=_ref3[1];var exactRe=_path2.exactRe,exactReKeys=_path2.exactReKeys,extendedPathRe=_path2.extendedPathRe,extendedPathReKeys=_path2.extendedPathReKeys;var childRouter=childRouters[_routeName2];var exactMatch=exactRe&&exactRe.exec(pathToResolve);if(exactMatch&&exactMatch.length){var extendedMatch=extendedPathRe&&extendedPathRe.exec(pathToResolve);var childAction=null;if(extendedMatch&&childRouter){var restOfPath=getRestOfPath(extendedMatch,extendedPathReKeys);childAction=childRouter.getActionForPathAndParams(restOfPath,inputParams);}return NavigationActions.navigate({routeName:_routeName2,params:getParamsFromPath(inputParams,exactMatch,exactReKeys),action:childAction});}}for(var _iterator2=paths,_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref7;if(_isArray2){if(_i2>=_iterator2.length)break;_ref7=_iterator2[_i2++];}else{_i2=_iterator2.next();if(_i2.done)break;_ref7=_i2.value;}var _ref9=_ref7;var _ref6=(0,_slicedToArray2.default)(_ref9,2);var _routeName3=_ref6[0];var _path3=_ref6[1];var _extendedPathRe=_path3.extendedPathRe,_extendedPathReKeys=_path3.extendedPathReKeys;var _childRouter=childRouters[_routeName3];var _extendedMatch=_extendedPathRe&&_extendedPathRe.exec(pathToResolve);if(_extendedMatch&&_extendedMatch.length){var _restOfPath=getRestOfPath(_extendedMatch,_extendedPathReKeys);var _childAction=null;if(_childRouter){_childAction=_childRouter.getActionForPathAndParams(_restOfPath,inputParams);}if(!_childAction){continue;}return NavigationActions.navigate({routeName:_routeName3,params:getParamsFromPath(inputParams,_extendedMatch,_extendedPathReKeys),action:_childAction});}}return null;};var getPathAndParamsForRoute=function getPathAndParamsForRoute(route){var routeName=route.routeName,params=route.params;var childRouter=childRouters[routeName];var _pathsByRouteNames$ro=pathsByRouteNames[routeName],toPath=_pathsByRouteNames$ro.toPath,exactReKeys=_pathsByRouteNames$ro.exactReKeys;var subPath=toPath(params);var nonPathParams={};if(params){Object.keys(params).filter(function(paramName){return!exactReKeys.find(function(k){return k.name===paramName;});}).forEach(function(paramName){nonPathParams[paramName]=params[paramName];});}if(childRouter){var child=childRouter.getPathAndParamsForState(route);return{path:subPath?subPath+"/"+child.path:child.path,params:child.params?(0,_objectSpread2.default)({},nonPathParams,child.params):nonPathParams};}return{path:subPath,params:nonPathParams};};return{getActionForPathAndParams:getActionForPathAndParams,getPathAndParamsForRoute:getPathAndParamsForRoute};};exports.createPathParser=createPathParser;
1
+ var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.createPathParser=exports.urlToPathAndParams=exports.getParamsFromPath=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _pathToRegexp=_interopRequireWildcard(require("path-to-regexp"));var NavigationActions=_interopRequireWildcard(require("../NavigationActions"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var queryString=require('query-string');var getParamsFromPath=function getParamsFromPath(inputParams,pathMatch,pathMatchKeys){var params=pathMatch.slice(1).reduce(function(paramsOut,matchResult,i){var key=pathMatchKeys[i];if(!key||key.asterisk){return paramsOut;}var paramName=key.name;var decodedMatchResult;if(matchResult){try{decodedMatchResult=decodeURIComponent(matchResult);}catch(e){}}paramsOut[paramName]=decodedMatchResult||matchResult;return paramsOut;},(0,_objectSpread2.default)({},inputParams));return params;};exports.getParamsFromPath=getParamsFromPath;var getRestOfPath=function getRestOfPath(pathMatch,pathMatchKeys){var rest=pathMatch[pathMatchKeys.findIndex(function(k){return k.asterisk;})+1];return rest;};var determineDelimiter=function determineDelimiter(uri,uriPrefix){if(Array.isArray(uriPrefix)){if(uriPrefix.length===1)return uriPrefix[0];for(var _iterator=uriPrefix,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value;}var _prefix=_ref;if(uri.startsWith(_prefix))return _prefix;}return null;}return uriPrefix;};var urlToPathAndParams=function urlToPathAndParams(url,uriPrefix){var searchMatch=url.match(/^(.*)\?(.*)$/);var _ref2=searchMatch||[null,url,{}],_ref3=(0,_slicedToArray2.default)(_ref2,3),urlWithoutQuery=_ref3[1],query=_ref3[2];var params=queryString.parse(query);var delimiter=determineDelimiter(urlWithoutQuery,uriPrefix)||'://';var path=urlWithoutQuery.split(delimiter)[1];if(path===undefined){path=urlWithoutQuery;}if(path==='/'){path='';}if(path[path.length-1]==='/'){path=path.slice(0,-1);}return{path:path,params:params};};exports.urlToPathAndParams=urlToPathAndParams;var createPathParser=function createPathParser(childRouters,routeConfigs,_ref4){var _ref4$paths=_ref4.paths,pathConfigs=_ref4$paths===void 0?{}:_ref4$paths,disableRouteNamePaths=_ref4.disableRouteNamePaths;var pathsByRouteNames={};var paths=[];Object.keys(childRouters).forEach(function(routeName){var pathPattern;if(pathConfigs[routeName]!==undefined){pathPattern=pathConfigs[routeName];}else{pathPattern=routeConfigs[routeName].path;}if(pathPattern===undefined){pathPattern=disableRouteNamePaths?null:routeName;}(0,_invariant.default)(pathPattern===null||typeof pathPattern==='string',"Route path for "+routeName+" must be specified as a string, or null.");var isPathMatchable=pathPattern!==null;var exactReKeys=[];var exactRe=isPathMatchable?(0,_pathToRegexp.default)(pathPattern,exactReKeys):null;var extendedPathReKeys=[];var isWildcard=pathPattern===''||!isPathMatchable;var extendedPathRe=(0,_pathToRegexp.default)(isWildcard?'*':pathPattern+"/*",extendedPathReKeys);pathsByRouteNames[routeName]={exactRe:exactRe,exactReKeys:exactReKeys,extendedPathRe:extendedPathRe,extendedPathReKeys:extendedPathReKeys,isWildcard:isWildcard,toPath:pathPattern===null?function(){return'';}:(0,_pathToRegexp.compile)(pathPattern)};});paths=Object.entries(pathsByRouteNames);var getActionForPathAndParams=function getActionForPathAndParams(){var pathToResolve=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'';var inputParams=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};for(var _iterator2=paths,_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref7;if(_isArray2){if(_i2>=_iterator2.length)break;_ref7=_iterator2[_i2++];}else{_i2=_iterator2.next();if(_i2.done)break;_ref7=_i2.value;}var _ref11=_ref7;var _ref6=(0,_slicedToArray2.default)(_ref11,2);var _routeName2=_ref6[0];var _path2=_ref6[1];var exactRe=_path2.exactRe,exactReKeys=_path2.exactReKeys,extendedPathRe=_path2.extendedPathRe,extendedPathReKeys=_path2.extendedPathReKeys;var childRouter=childRouters[_routeName2];var exactMatch=exactRe&&exactRe.exec(pathToResolve);if(exactMatch&&exactMatch.length){var extendedMatch=extendedPathRe&&extendedPathRe.exec(pathToResolve);var childAction=null;if(extendedMatch&&childRouter){var restOfPath=getRestOfPath(extendedMatch,extendedPathReKeys);childAction=childRouter.getActionForPathAndParams(restOfPath,inputParams);}return NavigationActions.navigate({routeName:_routeName2,params:getParamsFromPath(inputParams,exactMatch,exactReKeys),action:childAction});}}for(var _iterator3=paths,_isArray3=Array.isArray(_iterator3),_i3=0,_iterator3=_isArray3?_iterator3:_iterator3[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref10;if(_isArray3){if(_i3>=_iterator3.length)break;_ref10=_iterator3[_i3++];}else{_i3=_iterator3.next();if(_i3.done)break;_ref10=_i3.value;}var _ref12=_ref10;var _ref9=(0,_slicedToArray2.default)(_ref12,2);var _routeName3=_ref9[0];var _path3=_ref9[1];var _extendedPathRe=_path3.extendedPathRe,_extendedPathReKeys=_path3.extendedPathReKeys;var _childRouter=childRouters[_routeName3];var _extendedMatch=_extendedPathRe&&_extendedPathRe.exec(pathToResolve);if(_extendedMatch&&_extendedMatch.length){var _restOfPath=getRestOfPath(_extendedMatch,_extendedPathReKeys);var _childAction=null;if(_childRouter){_childAction=_childRouter.getActionForPathAndParams(_restOfPath,inputParams);}if(!_childAction){continue;}return NavigationActions.navigate({routeName:_routeName3,params:getParamsFromPath(inputParams,_extendedMatch,_extendedPathReKeys),action:_childAction});}}return null;};var getPathAndParamsForRoute=function getPathAndParamsForRoute(route){var routeName=route.routeName,params=route.params;var childRouter=childRouters[routeName];var _pathsByRouteNames$ro=pathsByRouteNames[routeName],toPath=_pathsByRouteNames$ro.toPath,exactReKeys=_pathsByRouteNames$ro.exactReKeys;var subPath=toPath(params);var nonPathParams={};if(params){Object.keys(params).filter(function(paramName){return!exactReKeys.find(function(k){return k.name===paramName;});}).forEach(function(paramName){nonPathParams[paramName]=params[paramName];});}if(childRouter){var child=childRouter.getPathAndParamsForState(route);return{path:subPath?subPath+"/"+child.path:child.path,params:child.params?(0,_objectSpread2.default)({},nonPathParams,child.params):nonPathParams};}return{path:subPath,params:nonPathParams};};return{getActionForPathAndParams:getActionForPathAndParams,getPathAndParamsForRoute:getPathAndParamsForRoute};};exports.createPathParser=createPathParser;
2
2
  //# sourceMappingURL=pathUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["pathUtils.js"],"names":["queryString","require","getParamsFromPath","inputParams","pathMatch","pathMatchKeys","params","slice","reduce","paramsOut","matchResult","i","key","asterisk","paramName","name","decodedMatchResult","decodeURIComponent","e","getRestOfPath","rest","findIndex","k","urlToPathAndParams","url","uriPrefix","searchMatch","match","parse","urlWithoutSearch","delimiter","path","split","undefined","length","createPathParser","childRouters","routeConfigs","paths","pathConfigs","disableRouteNamePaths","pathsByRouteNames","Object","keys","forEach","routeName","pathPattern","isPathMatchable","exactReKeys","exactRe","extendedPathReKeys","isWildcard","extendedPathRe","toPath","entries","getActionForPathAndParams","pathToResolve","childRouter","exactMatch","exec","extendedMatch","childAction","restOfPath","NavigationActions","navigate","action","getPathAndParamsForRoute","route","subPath","nonPathParams","filter","find","child","getPathAndParamsForState"],"mappings":"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","sourcesContent":["/* eslint-disable import/no-commonjs */\n\nimport pathToRegexp, { compile } from 'path-to-regexp';\nimport * as NavigationActions from '../NavigationActions';\nimport invariant from '../utils/invariant';\n\nconst queryString = require('query-string');\n\nexport const getParamsFromPath = (inputParams, pathMatch, pathMatchKeys) => {\n const params = pathMatch.slice(1).reduce(\n // iterate over matched path params\n (paramsOut, matchResult, i) => {\n const key = pathMatchKeys[i];\n if (!key || key.asterisk) {\n return paramsOut;\n }\n const paramName = key.name;\n\n let decodedMatchResult;\n if (matchResult) {\n try {\n decodedMatchResult = decodeURIComponent(matchResult);\n } catch (e) {\n // ignore `URIError: malformed URI`\n }\n }\n\n paramsOut[paramName] = decodedMatchResult || matchResult;\n return paramsOut;\n },\n {\n // start with the input(query string) params, which will get overridden by path params\n ...inputParams,\n }\n );\n return params;\n};\nconst getRestOfPath = (pathMatch, pathMatchKeys) => {\n const rest = pathMatch[pathMatchKeys.findIndex(k => k.asterisk) + 1];\n return rest;\n};\n\nexport const urlToPathAndParams = (url, uriPrefix) => {\n const searchMatch = url.match(/^(.*)\\?(.*)$/);\n const params = searchMatch ? queryString.parse(searchMatch[2]) : {};\n const urlWithoutSearch = searchMatch ? searchMatch[1] : url;\n const delimiter = uriPrefix || '://';\n let path = urlWithoutSearch.split(delimiter)[1];\n if (path === undefined) {\n path = urlWithoutSearch;\n }\n if (path === '/') {\n path = '';\n }\n if (path[path.length - 1] === '/') {\n path = path.slice(0, -1);\n }\n return {\n path,\n params,\n };\n};\n\nexport const createPathParser = (\n childRouters,\n routeConfigs,\n { paths: pathConfigs = {}, disableRouteNamePaths }\n) => {\n const pathsByRouteNames = {};\n let paths = [];\n\n // Build pathsByRouteNames, which includes a regex to match paths for each route. Keep in mind, the regex will pass for the route and all child routes. The code that uses pathsByRouteNames will need to also verify that the child router produces an action, in the case of isPathMatchable false (a null path).\n Object.keys(childRouters).forEach(routeName => {\n let pathPattern;\n\n // First check for paths on the router, then check the route config\n if (pathConfigs[routeName] !== undefined) {\n pathPattern = pathConfigs[routeName];\n } else {\n pathPattern = routeConfigs[routeName].path;\n }\n\n if (pathPattern === undefined) {\n // If the user hasn't specified a path at all nor disableRouteNamePaths, then we assume the routeName is an appropriate path\n pathPattern = disableRouteNamePaths ? null : routeName;\n }\n\n invariant(\n pathPattern === null || typeof pathPattern === 'string',\n `Route path for ${routeName} must be specified as a string, or null.`\n );\n\n // the path may be specified as null, which is similar to empty string because it allows child routers to handle the action, but it will not match empty paths\n const isPathMatchable = pathPattern !== null;\n // pathPattern is a string with inline params, such as people/:id/*foo\n const exactReKeys = [];\n const exactRe = isPathMatchable\n ? pathToRegexp(pathPattern, exactReKeys)\n : null;\n const extendedPathReKeys = [];\n const isWildcard = pathPattern === '' || !isPathMatchable;\n const extendedPathRe = pathToRegexp(\n isWildcard ? '*' : `${pathPattern}/*`,\n extendedPathReKeys\n );\n\n pathsByRouteNames[routeName] = {\n exactRe,\n exactReKeys,\n extendedPathRe,\n extendedPathReKeys,\n isWildcard,\n toPath: pathPattern === null ? () => '' : compile(pathPattern),\n };\n });\n\n paths = Object.entries(pathsByRouteNames);\n\n const getActionForPathAndParams = (pathToResolve = '', inputParams = {}) => {\n // Attempt to match `pathToResolve` with a route in this router's routeConfigs, deferring to child routers\n\n for (const [routeName, path] of paths) {\n const { exactRe, exactReKeys, extendedPathRe, extendedPathReKeys } = path;\n const childRouter = childRouters[routeName];\n\n const exactMatch = exactRe && exactRe.exec(pathToResolve);\n\n if (exactMatch && exactMatch.length) {\n const extendedMatch =\n extendedPathRe && extendedPathRe.exec(pathToResolve);\n let childAction = null;\n if (extendedMatch && childRouter) {\n const restOfPath = getRestOfPath(extendedMatch, extendedPathReKeys);\n childAction = childRouter.getActionForPathAndParams(\n restOfPath,\n inputParams\n );\n }\n\n return NavigationActions.navigate({\n routeName,\n params: getParamsFromPath(inputParams, exactMatch, exactReKeys),\n action: childAction,\n });\n }\n }\n\n for (const [routeName, path] of paths) {\n const { extendedPathRe, extendedPathReKeys } = path;\n const childRouter = childRouters[routeName];\n\n const extendedMatch =\n extendedPathRe && extendedPathRe.exec(pathToResolve);\n\n if (extendedMatch && extendedMatch.length) {\n const restOfPath = getRestOfPath(extendedMatch, extendedPathReKeys);\n let childAction = null;\n if (childRouter) {\n childAction = childRouter.getActionForPathAndParams(\n restOfPath,\n inputParams\n );\n }\n if (!childAction) {\n continue;\n }\n return NavigationActions.navigate({\n routeName,\n params: getParamsFromPath(\n inputParams,\n extendedMatch,\n extendedPathReKeys\n ),\n action: childAction,\n });\n }\n }\n\n return null;\n };\n const getPathAndParamsForRoute = route => {\n const { routeName, params } = route;\n const childRouter = childRouters[routeName];\n const { toPath, exactReKeys } = pathsByRouteNames[routeName];\n const subPath = toPath(params);\n const nonPathParams = {};\n if (params) {\n Object.keys(params)\n .filter(paramName => !exactReKeys.find(k => k.name === paramName))\n .forEach(paramName => {\n nonPathParams[paramName] = params[paramName];\n });\n }\n if (childRouter) {\n // If it has a router it's a navigator.\n // If it doesn't have router it's an ordinary React component.\n const child = childRouter.getPathAndParamsForState(route);\n return {\n path: subPath ? `${subPath}/${child.path}` : child.path,\n params: child.params\n ? { ...nonPathParams, ...child.params }\n : nonPathParams,\n };\n }\n return {\n path: subPath,\n params: nonPathParams,\n };\n };\n return { getActionForPathAndParams, getPathAndParamsForRoute };\n};\n"]}
1
+ {"version":3,"sources":["pathUtils.js"],"names":["queryString","require","getParamsFromPath","inputParams","pathMatch","pathMatchKeys","params","slice","reduce","paramsOut","matchResult","i","key","asterisk","paramName","name","decodedMatchResult","decodeURIComponent","e","getRestOfPath","rest","findIndex","k","determineDelimiter","uri","uriPrefix","Array","isArray","length","prefix","startsWith","urlToPathAndParams","url","searchMatch","match","urlWithoutQuery","query","parse","delimiter","path","split","undefined","createPathParser","childRouters","routeConfigs","paths","pathConfigs","disableRouteNamePaths","pathsByRouteNames","Object","keys","forEach","routeName","pathPattern","isPathMatchable","exactReKeys","exactRe","extendedPathReKeys","isWildcard","extendedPathRe","toPath","entries","getActionForPathAndParams","pathToResolve","childRouter","exactMatch","exec","extendedMatch","childAction","restOfPath","NavigationActions","navigate","action","getPathAndParamsForRoute","route","subPath","nonPathParams","filter","find","child","getPathAndParamsForState"],"mappings":"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","sourcesContent":["/* eslint-disable import/no-commonjs */\n\nimport pathToRegexp, { compile } from 'path-to-regexp';\nimport * as NavigationActions from '../NavigationActions';\nimport invariant from '../utils/invariant';\n\nconst queryString = require('query-string');\n\nexport const getParamsFromPath = (inputParams, pathMatch, pathMatchKeys) => {\n const params = pathMatch.slice(1).reduce(\n // iterate over matched path params\n (paramsOut, matchResult, i) => {\n const key = pathMatchKeys[i];\n if (!key || key.asterisk) {\n return paramsOut;\n }\n const paramName = key.name;\n\n let decodedMatchResult;\n if (matchResult) {\n try {\n decodedMatchResult = decodeURIComponent(matchResult);\n } catch (e) {\n // ignore `URIError: malformed URI`\n }\n }\n\n paramsOut[paramName] = decodedMatchResult || matchResult;\n return paramsOut;\n },\n {\n // start with the input(query string) params, which will get overridden by path params\n ...inputParams,\n }\n );\n return params;\n};\nconst getRestOfPath = (pathMatch, pathMatchKeys) => {\n const rest = pathMatch[pathMatchKeys.findIndex(k => k.asterisk) + 1];\n return rest;\n};\n\nconst determineDelimiter = (uri, uriPrefix) => {\n if (Array.isArray(uriPrefix)) {\n if (uriPrefix.length === 1) return uriPrefix[0];\n for (let prefix of uriPrefix) {\n if (uri.startsWith(prefix)) return prefix;\n }\n return null;\n }\n return uriPrefix;\n};\n\nexport const urlToPathAndParams = (url, uriPrefix) => {\n const searchMatch = url.match(/^(.*)\\?(.*)$/);\n const [, urlWithoutQuery, query] = searchMatch || [null, url, {}];\n const params = queryString.parse(query);\n const delimiter = determineDelimiter(urlWithoutQuery, uriPrefix) || '://';\n let path = urlWithoutQuery.split(delimiter)[1];\n if (path === undefined) {\n path = urlWithoutQuery;\n }\n if (path === '/') {\n path = '';\n }\n if (path[path.length - 1] === '/') {\n path = path.slice(0, -1);\n }\n return {\n path,\n params,\n };\n};\n\nexport const createPathParser = (\n childRouters,\n routeConfigs,\n { paths: pathConfigs = {}, disableRouteNamePaths }\n) => {\n const pathsByRouteNames = {};\n let paths = [];\n\n // Build pathsByRouteNames, which includes a regex to match paths for each route. Keep in mind, the regex will pass for the route and all child routes. The code that uses pathsByRouteNames will need to also verify that the child router produces an action, in the case of isPathMatchable false (a null path).\n Object.keys(childRouters).forEach(routeName => {\n let pathPattern;\n\n // First check for paths on the router, then check the route config\n if (pathConfigs[routeName] !== undefined) {\n pathPattern = pathConfigs[routeName];\n } else {\n pathPattern = routeConfigs[routeName].path;\n }\n\n if (pathPattern === undefined) {\n // If the user hasn't specified a path at all nor disableRouteNamePaths, then we assume the routeName is an appropriate path\n pathPattern = disableRouteNamePaths ? null : routeName;\n }\n\n invariant(\n pathPattern === null || typeof pathPattern === 'string',\n `Route path for ${routeName} must be specified as a string, or null.`\n );\n\n // the path may be specified as null, which is similar to empty string because it allows child routers to handle the action, but it will not match empty paths\n const isPathMatchable = pathPattern !== null;\n // pathPattern is a string with inline params, such as people/:id/*foo\n const exactReKeys = [];\n const exactRe = isPathMatchable\n ? pathToRegexp(pathPattern, exactReKeys)\n : null;\n const extendedPathReKeys = [];\n const isWildcard = pathPattern === '' || !isPathMatchable;\n const extendedPathRe = pathToRegexp(\n isWildcard ? '*' : `${pathPattern}/*`,\n extendedPathReKeys\n );\n\n pathsByRouteNames[routeName] = {\n exactRe,\n exactReKeys,\n extendedPathRe,\n extendedPathReKeys,\n isWildcard,\n toPath: pathPattern === null ? () => '' : compile(pathPattern),\n };\n });\n\n paths = Object.entries(pathsByRouteNames);\n\n const getActionForPathAndParams = (pathToResolve = '', inputParams = {}) => {\n // Attempt to match `pathToResolve` with a route in this router's routeConfigs, deferring to child routers\n\n for (const [routeName, path] of paths) {\n const { exactRe, exactReKeys, extendedPathRe, extendedPathReKeys } = path;\n const childRouter = childRouters[routeName];\n\n const exactMatch = exactRe && exactRe.exec(pathToResolve);\n\n if (exactMatch && exactMatch.length) {\n const extendedMatch =\n extendedPathRe && extendedPathRe.exec(pathToResolve);\n let childAction = null;\n if (extendedMatch && childRouter) {\n const restOfPath = getRestOfPath(extendedMatch, extendedPathReKeys);\n childAction = childRouter.getActionForPathAndParams(\n restOfPath,\n inputParams\n );\n }\n\n return NavigationActions.navigate({\n routeName,\n params: getParamsFromPath(inputParams, exactMatch, exactReKeys),\n action: childAction,\n });\n }\n }\n\n for (const [routeName, path] of paths) {\n const { extendedPathRe, extendedPathReKeys } = path;\n const childRouter = childRouters[routeName];\n\n const extendedMatch =\n extendedPathRe && extendedPathRe.exec(pathToResolve);\n\n if (extendedMatch && extendedMatch.length) {\n const restOfPath = getRestOfPath(extendedMatch, extendedPathReKeys);\n let childAction = null;\n if (childRouter) {\n childAction = childRouter.getActionForPathAndParams(\n restOfPath,\n inputParams\n );\n }\n if (!childAction) {\n continue;\n }\n return NavigationActions.navigate({\n routeName,\n params: getParamsFromPath(\n inputParams,\n extendedMatch,\n extendedPathReKeys\n ),\n action: childAction,\n });\n }\n }\n\n return null;\n };\n const getPathAndParamsForRoute = route => {\n const { routeName, params } = route;\n const childRouter = childRouters[routeName];\n const { toPath, exactReKeys } = pathsByRouteNames[routeName];\n const subPath = toPath(params);\n const nonPathParams = {};\n if (params) {\n Object.keys(params)\n .filter(paramName => !exactReKeys.find(k => k.name === paramName))\n .forEach(paramName => {\n nonPathParams[paramName] = params[paramName];\n });\n }\n if (childRouter) {\n // If it has a router it's a navigator.\n // If it doesn't have router it's an ordinary React component.\n const child = childRouter.getPathAndParamsForState(route);\n return {\n path: subPath ? `${subPath}/${child.path}` : child.path,\n params: child.params\n ? { ...nonPathParams, ...child.params }\n : nonPathParams,\n };\n }\n return {\n path: subPath,\n params: nonPathParams,\n };\n };\n return { getActionForPathAndParams, getPathAndParamsForRoute };\n};\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=require("react");var _ThemeContext=_interopRequireDefault(require("./views/ThemeContext"));var _default=(0,_react.useContext)(_ThemeContext.default);exports.default=_default;
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=require("react");var _ThemeContext=_interopRequireDefault(require("./views/ThemeContext"));var _default=function _default(){return(0,_react.useContext)(_ThemeContext.default);};exports.default=_default;
2
2
  //# sourceMappingURL=useTheme.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useTheme.ts"],"names":["ThemeContext"],"mappings":"mKAAA,4BACA,0E,aAEe,sBAAWA,qBAAX,C","sourcesContent":["import { useContext } from 'react';\nimport ThemeContext from './views/ThemeContext';\n\nexport default useContext(ThemeContext);\n"]}
1
+ {"version":3,"sources":["useTheme.ts"],"names":["ThemeContext"],"mappings":"mKAAA,4BACA,0E,aAEe,0BAAM,sBAAWA,qBAAX,CAAN,E","sourcesContent":["import { useContext } from 'react';\nimport ThemeContext from './views/ThemeContext';\n\nexport default () => useContext(ThemeContext);\n"]}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var getActiveChildNavigationOptions=function getActiveChildNavigationOptions(navigation,screenProps){var state=navigation.state,router=navigation.router,getChildNavigation=navigation.getChildNavigation;var activeRoute=state.routes[state.index];var activeNavigation=getChildNavigation(activeRoute.key);var options=router.getScreenOptions(activeNavigation,screenProps);return options;};var _default=getActiveChildNavigationOptions;exports.default=_default;
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var getActiveChildNavigationOptions=function getActiveChildNavigationOptions(navigation,screenProps){var theme=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'light';var state=navigation.state,router=navigation.router,getChildNavigation=navigation.getChildNavigation;var activeRoute=state.routes[state.index];var activeNavigation=getChildNavigation(activeRoute.key);var options=router.getScreenOptions(activeNavigation,screenProps,theme);return options;};var _default=getActiveChildNavigationOptions;exports.default=_default;
2
2
  //# sourceMappingURL=getActiveChildNavigationOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["getActiveChildNavigationOptions.js"],"names":["getActiveChildNavigationOptions","navigation","screenProps","state","router","getChildNavigation","activeRoute","routes","index","activeNavigation","key","options","getScreenOptions"],"mappings":"gFAAA,GAAMA,CAAAA,+BAA+B,CAAG,QAAlCA,CAAAA,+BAAkC,CAACC,UAAD,CAAaC,WAAb,CAA6B,IAC3DC,CAAAA,KAD2D,CACrBF,UADqB,CAC3DE,KAD2D,CACpDC,MADoD,CACrBH,UADqB,CACpDG,MADoD,CAC5CC,kBAD4C,CACrBJ,UADqB,CAC5CI,kBAD4C,CAEnE,GAAMC,CAAAA,WAAW,CAAGH,KAAK,CAACI,MAAN,CAAaJ,KAAK,CAACK,KAAnB,CAApB,CACA,GAAMC,CAAAA,gBAAgB,CAAGJ,kBAAkB,CAACC,WAAW,CAACI,GAAb,CAA3C,CACA,GAAMC,CAAAA,OAAO,CAAGP,MAAM,CAACQ,gBAAP,CAAwBH,gBAAxB,CAA0CP,WAA1C,CAAhB,CACA,MAAOS,CAAAA,OAAP,CACD,CAND,C,aAQeX,+B","sourcesContent":["const getActiveChildNavigationOptions = (navigation, screenProps) => {\n const { state, router, getChildNavigation } = navigation;\n const activeRoute = state.routes[state.index];\n const activeNavigation = getChildNavigation(activeRoute.key);\n const options = router.getScreenOptions(activeNavigation, screenProps);\n return options;\n};\n\nexport default getActiveChildNavigationOptions;\n"]}
1
+ {"version":3,"sources":["getActiveChildNavigationOptions.js"],"names":["getActiveChildNavigationOptions","navigation","screenProps","theme","state","router","getChildNavigation","activeRoute","routes","index","activeNavigation","key","options","getScreenOptions"],"mappings":"gFAAA,GAAMA,CAAAA,+BAA+B,CAAG,QAAlCA,CAAAA,+BAAkC,CACtCC,UADsC,CAEtCC,WAFsC,CAInC,IADHC,CAAAA,KACG,2DADK,OACL,IACKC,CAAAA,KADL,CAC2CH,UAD3C,CACKG,KADL,CACYC,MADZ,CAC2CJ,UAD3C,CACYI,MADZ,CACoBC,kBADpB,CAC2CL,UAD3C,CACoBK,kBADpB,CAEH,GAAMC,CAAAA,WAAW,CAAGH,KAAK,CAACI,MAAN,CAAaJ,KAAK,CAACK,KAAnB,CAApB,CACA,GAAMC,CAAAA,gBAAgB,CAAGJ,kBAAkB,CAACC,WAAW,CAACI,GAAb,CAA3C,CACA,GAAMC,CAAAA,OAAO,CAAGP,MAAM,CAACQ,gBAAP,CAAwBH,gBAAxB,CAA0CR,WAA1C,CAAuDC,KAAvD,CAAhB,CACA,MAAOS,CAAAA,OAAP,CACD,CAVD,C,aAYeZ,+B","sourcesContent":["const getActiveChildNavigationOptions = (\n navigation,\n screenProps,\n theme = 'light'\n) => {\n const { state, router, getChildNavigation } = navigation;\n const activeRoute = state.routes[state.index];\n const activeNavigation = getChildNavigation(activeRoute.key);\n const options = router.getScreenOptions(activeNavigation, screenProps, theme);\n return options;\n};\n\nexport default getActiveChildNavigationOptions;\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _NavigationContext=_interopRequireDefault(require("./NavigationContext"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/SceneView.js";var SceneView=function(_React$PureComponent){(0,_inherits2.default)(SceneView,_React$PureComponent);function SceneView(){(0,_classCallCheck2.default)(this,SceneView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(SceneView).apply(this,arguments));}(0,_createClass2.default)(SceneView,[{key:"render",value:function render(){var _this$props=this.props,screenProps=_this$props.screenProps,Component=_this$props.component,navigation=_this$props.navigation;return _react.default.createElement(_NavigationContext.default.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:8}},_react.default.createElement(Component,{screenProps:screenProps,navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:9}}));}}]);return SceneView;}(_react.default.PureComponent);exports.default=SceneView;
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _NavigationContext=_interopRequireDefault(require("./NavigationContext"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/SceneView.js";var SceneView=function(_React$PureComponent){(0,_inherits2.default)(SceneView,_React$PureComponent);function SceneView(){(0,_classCallCheck2.default)(this,SceneView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(SceneView).apply(this,arguments));}(0,_createClass2.default)(SceneView,[{key:"render",value:function render(){var _this$props=this.props,screenProps=_this$props.screenProps,Component=_this$props.component,navigation=_this$props.navigation;return _react.default.createElement(_NavigationContext.default.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:8}},_react.default.createElement(Component,{screenProps:screenProps,navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:9}}));}}]);return SceneView;}(_react.default.PureComponent);exports.default=SceneView;
2
2
  //# sourceMappingURL=SceneView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["SceneView.js"],"names":["SceneView","props","screenProps","Component","component","navigation","React","PureComponent"],"mappings":"6nBAAA,oDACA,8E,4FAEqBA,CAAAA,S,sVACV,iBACmD,KAAKC,KADxD,CACCC,WADD,aACCA,WADD,CACyBC,SADzB,aACcC,SADd,CACoCC,UADpC,aACoCA,UADpC,CAEP,MACE,8BAAC,0BAAD,CAAmB,QAAnB,EAA4B,KAAK,CAAEA,UAAnC,gDACE,6BAAC,SAAD,EAAW,WAAW,CAAEH,WAAxB,CAAqC,UAAU,CAAEG,UAAjD,gDADF,CADF,CAKD,C,uBARoCC,eAAMC,a","sourcesContent":["import React from 'react';\nimport NavigationContext from './NavigationContext';\n\nexport default class SceneView extends React.PureComponent {\n render() {\n const { screenProps, component: Component, navigation } = this.props;\n return (\n <NavigationContext.Provider value={navigation}>\n <Component screenProps={screenProps} navigation={navigation} />\n </NavigationContext.Provider>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["SceneView.js"],"names":["SceneView","props","screenProps","Component","component","navigation","React","PureComponent"],"mappings":"6nBAAA,oDACA,8E,oGAEqBA,CAAAA,S,sVACV,iBACmD,KAAKC,KADxD,CACCC,WADD,aACCA,WADD,CACyBC,SADzB,aACcC,SADd,CACoCC,UADpC,aACoCA,UADpC,CAEP,MACE,8BAAC,0BAAD,CAAmB,QAAnB,EAA4B,KAAK,CAAEA,UAAnC,gDACE,6BAAC,SAAD,EAAW,WAAW,CAAEH,WAAxB,CAAqC,UAAU,CAAEG,UAAjD,gDADF,CADF,CAKD,C,uBARoCC,eAAMC,a","sourcesContent":["import React from 'react';\nimport NavigationContext from './NavigationContext';\n\nexport default class SceneView extends React.PureComponent {\n render() {\n const { screenProps, component: Component, navigation } = this.props;\n return (\n <NavigationContext.Provider value={navigation}>\n <Component screenProps={screenProps} navigation={navigation} />\n </NavigationContext.Provider>\n );\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _SceneView=_interopRequireDefault(require("../SceneView"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/SwitchView/SwitchView.js";var SwitchView=function(_React$Component){(0,_inherits2.default)(SwitchView,_React$Component);function SwitchView(){(0,_classCallCheck2.default)(this,SwitchView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(SwitchView).apply(this,arguments));}(0,_createClass2.default)(SwitchView,[{key:"render",value:function render(){var state=this.props.navigation.state;var activeKey=state.routes[state.index].key;var descriptor=this.props.descriptors[activeKey];var ChildComponent=descriptor.getComponent();return _react.default.createElement(_SceneView.default,{component:ChildComponent,navigation:descriptor.navigation,screenProps:this.props.screenProps,__source:{fileName:_jsxFileName,lineNumber:12}});}}]);return SwitchView;}(_react.default.Component);exports.default=SwitchView;
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _SceneView=_interopRequireDefault(require("../SceneView"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/SwitchView/SwitchView.js";var SwitchView=function(_React$Component){(0,_inherits2.default)(SwitchView,_React$Component);function SwitchView(){(0,_classCallCheck2.default)(this,SwitchView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(SwitchView).apply(this,arguments));}(0,_createClass2.default)(SwitchView,[{key:"render",value:function render(){var state=this.props.navigation.state;var activeKey=state.routes[state.index].key;var descriptor=this.props.descriptors[activeKey];var ChildComponent=descriptor.getComponent();return _react.default.createElement(_SceneView.default,{component:ChildComponent,navigation:descriptor.navigation,screenProps:this.props.screenProps,__source:{fileName:_jsxFileName,lineNumber:12}});}}]);return SwitchView;}(_react.default.Component);exports.default=SwitchView;
2
2
  //# sourceMappingURL=SwitchView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["SwitchView.js"],"names":["SwitchView","state","props","navigation","activeKey","routes","index","key","descriptor","descriptors","ChildComponent","getComponent","screenProps","React","Component"],"mappings":"6nBAAA,oDACA,+D,wGAEqBA,CAAAA,U,mVACV,IACCC,CAAAA,KADD,CACW,KAAKC,KAAL,CAAWC,UADtB,CACCF,KADD,CAEP,GAAMG,CAAAA,SAAS,CAAGH,KAAK,CAACI,MAAN,CAAaJ,KAAK,CAACK,KAAnB,EAA0BC,GAA5C,CACA,GAAMC,CAAAA,UAAU,CAAG,KAAKN,KAAL,CAAWO,WAAX,CAAuBL,SAAvB,CAAnB,CACA,GAAMM,CAAAA,cAAc,CAAGF,UAAU,CAACG,YAAX,EAAvB,CAEA,MACE,8BAAC,kBAAD,EACE,SAAS,CAAED,cADb,CAEE,UAAU,CAAEF,UAAU,CAACL,UAFzB,CAGE,WAAW,CAAE,KAAKD,KAAL,CAAWU,WAH1B,iDADF,CAOD,C,wBAdqCC,eAAMC,S","sourcesContent":["import React from 'react';\nimport SceneView from '../SceneView';\n\nexport default class SwitchView extends React.Component {\n render() {\n const { state } = this.props.navigation;\n const activeKey = state.routes[state.index].key;\n const descriptor = this.props.descriptors[activeKey];\n const ChildComponent = descriptor.getComponent();\n\n return (\n <SceneView\n component={ChildComponent}\n navigation={descriptor.navigation}\n screenProps={this.props.screenProps}\n />\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["SwitchView.js"],"names":["SwitchView","state","props","navigation","activeKey","routes","index","key","descriptor","descriptors","ChildComponent","getComponent","screenProps","React","Component"],"mappings":"6nBAAA,oDACA,+D,gHAEqBA,CAAAA,U,mVACV,IACCC,CAAAA,KADD,CACW,KAAKC,KAAL,CAAWC,UADtB,CACCF,KADD,CAEP,GAAMG,CAAAA,SAAS,CAAGH,KAAK,CAACI,MAAN,CAAaJ,KAAK,CAACK,KAAnB,EAA0BC,GAA5C,CACA,GAAMC,CAAAA,UAAU,CAAG,KAAKN,KAAL,CAAWO,WAAX,CAAuBL,SAAvB,CAAnB,CACA,GAAMM,CAAAA,cAAc,CAAGF,UAAU,CAACG,YAAX,EAAvB,CAEA,MACE,8BAAC,kBAAD,EACE,SAAS,CAAED,cADb,CAEE,UAAU,CAAEF,UAAU,CAACL,UAFzB,CAGE,WAAW,CAAE,KAAKD,KAAL,CAAWU,WAH1B,iDADF,CAOD,C,wBAdqCC,eAAMC,S","sourcesContent":["import React from 'react';\nimport SceneView from '../SceneView';\n\nexport default class SwitchView extends React.Component {\n render() {\n const { state } = this.props.navigation;\n const activeKey = state.routes[state.index].key;\n const descriptor = this.props.descriptors[activeKey];\n const ChildComponent = descriptor.getComponent();\n\n return (\n <SceneView\n component={ChildComponent}\n navigation={descriptor.navigation}\n screenProps={this.props.screenProps}\n />\n );\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _NavigationEvents=_interopRequireDefault(require("../NavigationEvents"));var _NavigationContext=_interopRequireDefault(require("../NavigationContext"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/__tests__/NavigationEvents-test.js";var createPropListener=function createPropListener(){return jest.fn();};var createEventListenersProp=function createEventListenersProp(){return{onWillFocus:createPropListener(),onDidFocus:createPropListener(),onWillBlur:createPropListener(),onDidBlur:createPropListener()};};var createTestNavigationAndHelpers=function createTestNavigationAndHelpers(){var NavigationListenersAPI=function(){var listeners={willFocus:[],didFocus:[],willBlur:[],didBlur:[]};return{add:function add(eventName,handler){listeners[eventName].push(handler);},remove:function remove(eventName,handler){listeners[eventName]=listeners[eventName].filter(function(h){return h!==handler;});},get:function get(eventName){return listeners[eventName];},call:function call(eventName){listeners[eventName].forEach(function(listener){return listener();});}};}();var navigation={addListener:jest.fn(function(eventName,handler){NavigationListenersAPI.add(eventName,handler);return{remove:function remove(){return NavigationListenersAPI.remove(eventName,handler);}};})};return{navigation:navigation,NavigationListenersAPI:NavigationListenersAPI};};describe('NavigationEvents',function(){it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)',function(){var _createTestNavigation=createTestNavigationAndHelpers(),navigation=_createTestNavigation.navigation,NavigationListenersAPI=_createTestNavigation.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,{navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:63}}));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('support context-provided navigation',function(){var _createTestNavigation2=createTestNavigationAndHelpers(),navigation=_createTestNavigation2.navigation,NavigationListenersAPI=_createTestNavigation2.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationContext.default.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:83}},_react.default.createElement(_NavigationEvents.default,{__source:{fileName:_jsxFileName,lineNumber:84}})));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('wire props listeners to navigation listeners',function(){var _createTestNavigation3=createTestNavigationAndHelpers(),navigation=_createTestNavigation3.navigation,NavigationListenersAPI=_createTestNavigation3.NavigationListenersAPI;var eventListenerProps=createEventListenersProp();_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},eventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:108}})));var checkPropListenerIsCalled=function checkPropListenerIsCalled(eventName,propName){expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkPropListenerIsCalled('willFocus','onWillFocus');checkPropListenerIsCalled('didFocus','onDidFocus');checkPropListenerIsCalled('willBlur','onWillBlur');checkPropListenerIsCalled('didBlur','onDidBlur');});it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)',function(){var _createTestNavigation4=createTestNavigationAndHelpers(),navigation=_createTestNavigation4.navigation,NavigationListenersAPI=_createTestNavigation4.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:130}})));component.update(_react.default.createElement(_NavigationEvents.default,{navigation:navigation,onWillBlur:function onWillBlur(){throw new Error('should not be called');},onDidFocus:function onDidFocus(){throw new Error('should not be called');},__source:{fileName:_jsxFileName,lineNumber:137}}));component.update(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:149}})));var latestEventListenerProps=createEventListenersProp();component.update(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},latestEventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:157}})));var checkLatestPropListenerCalled=function checkLatestPropListenerCalled(eventName,propName){expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkLatestPropListenerCalled('willFocus','onWillFocus');checkLatestPropListenerCalled('didFocus','onDidFocus');checkLatestPropListenerCalled('willBlur','onWillBlur');checkLatestPropListenerCalled('didBlur','onDidBlur');});});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _NavigationEvents=_interopRequireDefault(require("../NavigationEvents"));var _NavigationContext=_interopRequireDefault(require("../NavigationContext"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/__tests__/NavigationEvents-test.js";var createPropListener=function createPropListener(){return jest.fn();};var createEventListenersProp=function createEventListenersProp(){return{onWillFocus:createPropListener(),onDidFocus:createPropListener(),onWillBlur:createPropListener(),onDidBlur:createPropListener()};};var createTestNavigationAndHelpers=function createTestNavigationAndHelpers(){var NavigationListenersAPI=function(){var listeners={willFocus:[],didFocus:[],willBlur:[],didBlur:[]};return{add:function add(eventName,handler){listeners[eventName].push(handler);},remove:function remove(eventName,handler){listeners[eventName]=listeners[eventName].filter(function(h){return h!==handler;});},get:function get(eventName){return listeners[eventName];},call:function call(eventName){listeners[eventName].forEach(function(listener){return listener();});}};}();var navigation={addListener:jest.fn(function(eventName,handler){NavigationListenersAPI.add(eventName,handler);return{remove:function remove(){return NavigationListenersAPI.remove(eventName,handler);}};})};return{navigation:navigation,NavigationListenersAPI:NavigationListenersAPI};};describe('NavigationEvents',function(){it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)',function(){var _createTestNavigation=createTestNavigationAndHelpers(),navigation=_createTestNavigation.navigation,NavigationListenersAPI=_createTestNavigation.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,{navigation:navigation,__source:{fileName:_jsxFileName,lineNumber:63}}));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('support context-provided navigation',function(){var _createTestNavigation2=createTestNavigationAndHelpers(),navigation=_createTestNavigation2.navigation,NavigationListenersAPI=_createTestNavigation2.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationContext.default.Provider,{value:navigation,__source:{fileName:_jsxFileName,lineNumber:83}},_react.default.createElement(_NavigationEvents.default,{__source:{fileName:_jsxFileName,lineNumber:84}})));expect(NavigationListenersAPI.get('willFocus').length).toBe(1);expect(NavigationListenersAPI.get('didFocus').length).toBe(1);expect(NavigationListenersAPI.get('willBlur').length).toBe(1);expect(NavigationListenersAPI.get('didBlur').length).toBe(1);component.unmount();expect(NavigationListenersAPI.get('willFocus').length).toBe(0);expect(NavigationListenersAPI.get('didFocus').length).toBe(0);expect(NavigationListenersAPI.get('willBlur').length).toBe(0);expect(NavigationListenersAPI.get('didBlur').length).toBe(0);});it('wire props listeners to navigation listeners',function(){var _createTestNavigation3=createTestNavigationAndHelpers(),navigation=_createTestNavigation3.navigation,NavigationListenersAPI=_createTestNavigation3.NavigationListenersAPI;var eventListenerProps=createEventListenersProp();_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},eventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:108}})));var checkPropListenerIsCalled=function checkPropListenerIsCalled(eventName,propName){expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkPropListenerIsCalled('willFocus','onWillFocus');checkPropListenerIsCalled('didFocus','onDidFocus');checkPropListenerIsCalled('willBlur','onWillBlur');checkPropListenerIsCalled('didBlur','onDidBlur');});it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)',function(){var _createTestNavigation4=createTestNavigationAndHelpers(),navigation=_createTestNavigation4.navigation,NavigationListenersAPI=_createTestNavigation4.NavigationListenersAPI;var component=_reactTestRenderer.default.create(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:130}})));component.update(_react.default.createElement(_NavigationEvents.default,{navigation:navigation,onWillBlur:function onWillBlur(){throw new Error('should not be called');},onDidFocus:function onDidFocus(){throw new Error('should not be called');},__source:{fileName:_jsxFileName,lineNumber:137}}));component.update(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},createEventListenersProp(),{__source:{fileName:_jsxFileName,lineNumber:149}})));var latestEventListenerProps=createEventListenersProp();component.update(_react.default.createElement(_NavigationEvents.default,(0,_extends2.default)({navigation:navigation},latestEventListenerProps,{__source:{fileName:_jsxFileName,lineNumber:157}})));var checkLatestPropListenerCalled=function checkLatestPropListenerCalled(eventName,propName){expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);NavigationListenersAPI.call(eventName);expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);};checkLatestPropListenerCalled('willFocus','onWillFocus');checkLatestPropListenerCalled('didFocus','onDidFocus');checkLatestPropListenerCalled('willBlur','onWillBlur');checkLatestPropListenerCalled('didBlur','onDidBlur');});});
2
2
  //# sourceMappingURL=NavigationEvents-test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["NavigationEvents-test.js"],"names":["createPropListener","jest","fn","createEventListenersProp","onWillFocus","onDidFocus","onWillBlur","onDidBlur","createTestNavigationAndHelpers","NavigationListenersAPI","listeners","willFocus","didFocus","willBlur","didBlur","add","eventName","handler","push","remove","filter","h","get","call","forEach","listener","navigation","addListener","describe","it","component","renderer","create","expect","length","toBe","unmount","eventListenerProps","checkPropListenerIsCalled","propName","toHaveBeenCalledTimes","update","Error","latestEventListenerProps","checkLatestPropListenerCalled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport NavigationEvents from '../NavigationEvents';\nimport NavigationContext from '../NavigationContext';\n\nconst createPropListener = () => jest.fn();\n\n// An easy way to create the 4 listeners prop\nconst createEventListenersProp = () => ({\n onWillFocus: createPropListener(),\n onDidFocus: createPropListener(),\n onWillBlur: createPropListener(),\n onDidBlur: createPropListener(),\n});\n\nconst createTestNavigationAndHelpers = () => {\n const NavigationListenersAPI = (() => {\n let listeners = {\n willFocus: [],\n didFocus: [],\n willBlur: [],\n didBlur: [],\n };\n return {\n add: (eventName, handler) => {\n listeners[eventName].push(handler);\n },\n remove: (eventName, handler) => {\n listeners[eventName] = listeners[eventName].filter(h => h !== handler);\n },\n get: eventName => {\n return listeners[eventName];\n },\n call: eventName => {\n listeners[eventName].forEach(listener => listener());\n },\n };\n })();\n\n const navigation = {\n addListener: jest.fn((eventName, handler) => {\n NavigationListenersAPI.add(eventName, handler);\n return {\n remove: () => NavigationListenersAPI.remove(eventName, handler),\n };\n }),\n };\n\n return {\n navigation,\n NavigationListenersAPI,\n };\n};\n\ndescribe('NavigationEvents', () => {\n it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n <NavigationEvents navigation={navigation} />\n );\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('support context-provided navigation', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n const component = renderer.create(\n <NavigationContext.Provider value={navigation}>\n <NavigationEvents />\n </NavigationContext.Provider>\n );\n\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('wire props listeners to navigation listeners', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const eventListenerProps = createEventListenersProp();\n renderer.create(\n <NavigationEvents navigation={navigation} {...eventListenerProps} />\n );\n\n const checkPropListenerIsCalled = (eventName, propName) => {\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkPropListenerIsCalled('willFocus', 'onWillFocus');\n checkPropListenerIsCalled('didFocus', 'onDidFocus');\n checkPropListenerIsCalled('willBlur', 'onWillBlur');\n checkPropListenerIsCalled('didBlur', 'onDidBlur');\n });\n\n it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n <NavigationEvents\n navigation={navigation}\n {...createEventListenersProp()}\n />\n );\n\n component.update(\n <NavigationEvents\n navigation={navigation}\n onWillBlur={() => {\n throw new Error('should not be called');\n }}\n onDidFocus={() => {\n throw new Error('should not be called');\n }}\n />\n );\n\n component.update(\n <NavigationEvents\n navigation={navigation}\n {...createEventListenersProp()}\n />\n );\n\n const latestEventListenerProps = createEventListenersProp();\n component.update(\n <NavigationEvents navigation={navigation} {...latestEventListenerProps} />\n );\n\n const checkLatestPropListenerCalled = (eventName, propName) => {\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkLatestPropListenerCalled('willFocus', 'onWillFocus');\n checkLatestPropListenerCalled('didFocus', 'onDidFocus');\n checkLatestPropListenerCalled('willBlur', 'onWillBlur');\n checkLatestPropListenerCalled('didBlur', 'onDidBlur');\n });\n});\n"]}
1
+ {"version":3,"sources":["NavigationEvents-test.js"],"names":["createPropListener","jest","fn","createEventListenersProp","onWillFocus","onDidFocus","onWillBlur","onDidBlur","createTestNavigationAndHelpers","NavigationListenersAPI","listeners","willFocus","didFocus","willBlur","didBlur","add","eventName","handler","push","remove","filter","h","get","call","forEach","listener","navigation","addListener","describe","it","component","renderer","create","expect","length","toBe","unmount","eventListenerProps","checkPropListenerIsCalled","propName","toHaveBeenCalledTimes","update","Error","latestEventListenerProps","checkLatestPropListenerCalled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport NavigationEvents from '../NavigationEvents';\nimport NavigationContext from '../NavigationContext';\n\nconst createPropListener = () => jest.fn();\n\n// An easy way to create the 4 listeners prop\nconst createEventListenersProp = () => ({\n onWillFocus: createPropListener(),\n onDidFocus: createPropListener(),\n onWillBlur: createPropListener(),\n onDidBlur: createPropListener(),\n});\n\nconst createTestNavigationAndHelpers = () => {\n const NavigationListenersAPI = (() => {\n let listeners = {\n willFocus: [],\n didFocus: [],\n willBlur: [],\n didBlur: [],\n };\n return {\n add: (eventName, handler) => {\n listeners[eventName].push(handler);\n },\n remove: (eventName, handler) => {\n listeners[eventName] = listeners[eventName].filter(h => h !== handler);\n },\n get: eventName => {\n return listeners[eventName];\n },\n call: eventName => {\n listeners[eventName].forEach(listener => listener());\n },\n };\n })();\n\n const navigation = {\n addListener: jest.fn((eventName, handler) => {\n NavigationListenersAPI.add(eventName, handler);\n return {\n remove: () => NavigationListenersAPI.remove(eventName, handler),\n };\n }),\n };\n\n return {\n navigation,\n NavigationListenersAPI,\n };\n};\n\ndescribe('NavigationEvents', () => {\n it('add all listeners on mount and remove them on unmount, even without any event prop provided (see #5058)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n <NavigationEvents navigation={navigation} />\n );\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('support context-provided navigation', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n const component = renderer.create(\n <NavigationContext.Provider value={navigation}>\n <NavigationEvents />\n </NavigationContext.Provider>\n );\n\n expect(NavigationListenersAPI.get('willFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(1);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(1);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(1);\n\n component.unmount();\n expect(NavigationListenersAPI.get('willFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('didFocus').length).toBe(0);\n expect(NavigationListenersAPI.get('willBlur').length).toBe(0);\n expect(NavigationListenersAPI.get('didBlur').length).toBe(0);\n });\n\n it('wire props listeners to navigation listeners', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const eventListenerProps = createEventListenersProp();\n renderer.create(\n <NavigationEvents navigation={navigation} {...eventListenerProps} />\n );\n\n const checkPropListenerIsCalled = (eventName, propName) => {\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkPropListenerIsCalled('willFocus', 'onWillFocus');\n checkPropListenerIsCalled('didFocus', 'onDidFocus');\n checkPropListenerIsCalled('willBlur', 'onWillBlur');\n checkPropListenerIsCalled('didBlur', 'onDidBlur');\n });\n\n it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)', () => {\n const {\n navigation,\n NavigationListenersAPI,\n } = createTestNavigationAndHelpers();\n\n const component = renderer.create(\n <NavigationEvents\n navigation={navigation}\n {...createEventListenersProp()}\n />\n );\n\n component.update(\n <NavigationEvents\n navigation={navigation}\n onWillBlur={() => {\n throw new Error('should not be called');\n }}\n onDidFocus={() => {\n throw new Error('should not be called');\n }}\n />\n );\n\n component.update(\n <NavigationEvents\n navigation={navigation}\n {...createEventListenersProp()}\n />\n );\n\n const latestEventListenerProps = createEventListenersProp();\n component.update(\n <NavigationEvents navigation={navigation} {...latestEventListenerProps} />\n );\n\n const checkLatestPropListenerCalled = (eventName, propName) => {\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(0);\n NavigationListenersAPI.call(eventName);\n expect(latestEventListenerProps[propName]).toHaveBeenCalledTimes(1);\n };\n\n checkLatestPropListenerCalled('willFocus', 'onWillFocus');\n checkLatestPropListenerCalled('didFocus', 'onDidFocus');\n checkLatestPropListenerCalled('willBlur', 'onWillBlur');\n checkLatestPropListenerCalled('didBlur', 'onDidBlur');\n });\n});\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=withNavigation;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _hoistNonReactStatics=_interopRequireDefault(require("hoist-non-react-statics"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _NavigationContext=_interopRequireDefault(require("./NavigationContext"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/withNavigation.js";function withNavigation(Component){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{forwardRef:true};var ComponentWithNavigation=function(_React$Component){(0,_inherits2.default)(ComponentWithNavigation,_React$Component);function ComponentWithNavigation(){(0,_classCallCheck2.default)(this,ComponentWithNavigation);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(ComponentWithNavigation).apply(this,arguments));}(0,_createClass2.default)(ComponentWithNavigation,[{key:"render",value:function render(){var _this=this;var navigationProp=this.props.navigation;return _react.default.createElement(_NavigationContext.default.Consumer,{__source:{fileName:_jsxFileName,lineNumber:17}},function(navigationContext){var navigation=navigationProp||navigationContext;(0,_invariant.default)(!!navigation,'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.');return _react.default.createElement(Component,(0,_extends2.default)({},_this.props,{navigation:navigation,ref:config.forwardRef?_this.props.onRef:undefined,__source:{fileName:_jsxFileName,lineNumber:25}}));});}}]);return ComponentWithNavigation;}(_react.default.Component);ComponentWithNavigation.displayName="withNavigation("+(Component.displayName||Component.name)+")";return(0,_hoistNonReactStatics.default)(ComponentWithNavigation,Component);}
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=withNavigation;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _hoistNonReactStatics=_interopRequireDefault(require("hoist-non-react-statics"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _NavigationContext=_interopRequireDefault(require("./NavigationContext"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/withNavigation.js";function withNavigation(Component){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{forwardRef:true};var ComponentWithNavigation=function(_React$Component){(0,_inherits2.default)(ComponentWithNavigation,_React$Component);function ComponentWithNavigation(){(0,_classCallCheck2.default)(this,ComponentWithNavigation);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(ComponentWithNavigation).apply(this,arguments));}(0,_createClass2.default)(ComponentWithNavigation,[{key:"render",value:function render(){var _this=this;var navigationProp=this.props.navigation;return _react.default.createElement(_NavigationContext.default.Consumer,{__source:{fileName:_jsxFileName,lineNumber:17}},function(navigationContext){var navigation=navigationProp||navigationContext;(0,_invariant.default)(!!navigation,'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.');return _react.default.createElement(Component,(0,_extends2.default)({},_this.props,{navigation:navigation,ref:config.forwardRef?_this.props.onRef:undefined,__source:{fileName:_jsxFileName,lineNumber:25}}));});}}]);return ComponentWithNavigation;}(_react.default.Component);ComponentWithNavigation.displayName="withNavigation("+(Component.displayName||Component.name)+")";return(0,_hoistNonReactStatics.default)(ComponentWithNavigation,Component);}
2
2
  //# sourceMappingURL=withNavigation.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["withNavigation.js"],"names":["withNavigation","Component","config","forwardRef","ComponentWithNavigation","navigationProp","props","navigation","navigationContext","onRef","undefined","React","displayName","name"],"mappings":"qtBAAA,oDACA,qFACA,qEACA,8E,8FAEe,QAASA,CAAAA,cAAT,CACbC,SADa,CAGb,IADAC,CAAAA,MACA,2DADS,CAAEC,UAAU,CAAE,IAAd,CACT,IACMC,CAAAA,uBADN,oZAKW,gBACP,GAAMC,CAAAA,cAAc,CAAG,KAAKC,KAAL,CAAWC,UAAlC,CACA,MACE,8BAAC,0BAAD,CAAmB,QAAnB,kDACG,SAAAC,iBAAiB,CAAI,CACpB,GAAMD,CAAAA,UAAU,CAAGF,cAAc,EAAIG,iBAArC,CACA,uBACE,CAAC,CAACD,UADJ,CAEE,wJAFF,EAIA,MACE,8BAAC,SAAD,0BACM,KAAI,CAACD,KADX,EAEE,UAAU,CAAEC,UAFd,CAGE,GAAG,CAAEL,MAAM,CAACC,UAAP,CAAoB,KAAI,CAACG,KAAL,CAAWG,KAA/B,CAAuCC,SAH9C,kDADF,CAOD,CAdH,CADF,CAkBD,CAzBH,qCACsCC,eAAMV,SAD5C,EACMG,uBADN,CAESQ,WAFT,oBAEyCX,SAAS,CAACW,WAAV,EACrCX,SAAS,CAACY,IAHd,MA4BA,MAAO,kCAAaT,uBAAb,CAAsCH,SAAtC,CAAP,CACD","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from '../utils/invariant';\nimport NavigationContext from './NavigationContext';\n\nexport default function withNavigation(\n Component,\n config = { forwardRef: true }\n) {\n class ComponentWithNavigation extends React.Component {\n static displayName = `withNavigation(${Component.displayName ||\n Component.name})`;\n\n render() {\n const navigationProp = this.props.navigation;\n return (\n <NavigationContext.Consumer>\n {navigationContext => {\n const navigation = navigationProp || navigationContext;\n invariant(\n !!navigation,\n 'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.'\n );\n return (\n <Component\n {...this.props}\n navigation={navigation}\n ref={config.forwardRef ? this.props.onRef : undefined}\n />\n );\n }}\n </NavigationContext.Consumer>\n );\n }\n }\n\n return hoistStatics(ComponentWithNavigation, Component);\n}\n"]}
1
+ {"version":3,"sources":["withNavigation.js"],"names":["withNavigation","Component","config","forwardRef","ComponentWithNavigation","navigationProp","props","navigation","navigationContext","onRef","undefined","React","displayName","name"],"mappings":"qtBAAA,oDACA,qFACA,qEACA,8E,sGAEe,QAASA,CAAAA,cAAT,CACbC,SADa,CAGb,IADAC,CAAAA,MACA,2DADS,CAAEC,UAAU,CAAE,IAAd,CACT,IACMC,CAAAA,uBADN,oZAKW,gBACP,GAAMC,CAAAA,cAAc,CAAG,KAAKC,KAAL,CAAWC,UAAlC,CACA,MACE,8BAAC,0BAAD,CAAmB,QAAnB,kDACG,SAAAC,iBAAiB,CAAI,CACpB,GAAMD,CAAAA,UAAU,CAAGF,cAAc,EAAIG,iBAArC,CACA,uBACE,CAAC,CAACD,UADJ,CAEE,wJAFF,EAIA,MACE,8BAAC,SAAD,0BACM,KAAI,CAACD,KADX,EAEE,UAAU,CAAEC,UAFd,CAGE,GAAG,CAAEL,MAAM,CAACC,UAAP,CAAoB,KAAI,CAACG,KAAL,CAAWG,KAA/B,CAAuCC,SAH9C,kDADF,CAOD,CAdH,CADF,CAkBD,CAzBH,qCACsCC,eAAMV,SAD5C,EACMG,uBADN,CAESQ,WAFT,oBAEyCX,SAAS,CAACW,WAAV,EACrCX,SAAS,CAACY,IAHd,MA4BA,MAAO,kCAAaT,uBAAb,CAAsCH,SAAtC,CAAP,CACD","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from '../utils/invariant';\nimport NavigationContext from './NavigationContext';\n\nexport default function withNavigation(\n Component,\n config = { forwardRef: true }\n) {\n class ComponentWithNavigation extends React.Component {\n static displayName = `withNavigation(${Component.displayName ||\n Component.name})`;\n\n render() {\n const navigationProp = this.props.navigation;\n return (\n <NavigationContext.Consumer>\n {navigationContext => {\n const navigation = navigationProp || navigationContext;\n invariant(\n !!navigation,\n 'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.'\n );\n return (\n <Component\n {...this.props}\n navigation={navigation}\n ref={config.forwardRef ? this.props.onRef : undefined}\n />\n );\n }}\n </NavigationContext.Consumer>\n );\n }\n }\n\n return hoistStatics(ComponentWithNavigation, Component);\n}\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=withNavigationFocus;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _hoistNonReactStatics=_interopRequireDefault(require("hoist-non-react-statics"));var _withNavigation=_interopRequireDefault(require("./withNavigation"));var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/views/withNavigationFocus.js";function withNavigationFocus(Component){var ComponentWithNavigationFocus=function(_React$Component){(0,_inherits2.default)(ComponentWithNavigationFocus,_React$Component);function ComponentWithNavigationFocus(props){var _this;(0,_classCallCheck2.default)(this,ComponentWithNavigationFocus);_this=(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(ComponentWithNavigationFocus).call(this,props));_this.subscriptions=[props.navigation.addListener('didFocus',function(){return _this.setState({isFocused:true});}),props.navigation.addListener('willBlur',function(){return _this.setState({isFocused:false});})];_this.state={isFocused:props.navigation?props.navigation.isFocused():false};return _this;}(0,_createClass2.default)(ComponentWithNavigationFocus,[{key:"componentWillUnmount",value:function componentWillUnmount(){this.subscriptions.forEach(function(sub){return sub.remove();});}},{key:"render",value:function render(){return _react.default.createElement(Component,(0,_extends2.default)({},this.props,{isFocused:this.state.isFocused,ref:this.props.onRef,__source:{fileName:_jsxFileName,lineNumber:33}}));}}]);return ComponentWithNavigationFocus;}(_react.default.Component);ComponentWithNavigationFocus.displayName="withNavigationFocus("+(Component.displayName||Component.name)+")";return(0,_hoistNonReactStatics.default)((0,_withNavigation.default)(ComponentWithNavigationFocus,{forwardRef:false}),Component);}
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=withNavigationFocus;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _hoistNonReactStatics=_interopRequireDefault(require("hoist-non-react-statics"));var _withNavigation=_interopRequireDefault(require("./withNavigation"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/views/withNavigationFocus.js";function withNavigationFocus(Component){var ComponentWithNavigationFocus=function(_React$Component){(0,_inherits2.default)(ComponentWithNavigationFocus,_React$Component);function ComponentWithNavigationFocus(props){var _this;(0,_classCallCheck2.default)(this,ComponentWithNavigationFocus);_this=(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(ComponentWithNavigationFocus).call(this,props));_this.subscriptions=[props.navigation.addListener('didFocus',function(){return _this.setState({isFocused:true});}),props.navigation.addListener('willBlur',function(){return _this.setState({isFocused:false});})];_this.state={isFocused:props.navigation?props.navigation.isFocused():false};return _this;}(0,_createClass2.default)(ComponentWithNavigationFocus,[{key:"componentWillUnmount",value:function componentWillUnmount(){this.subscriptions.forEach(function(sub){return sub.remove();});}},{key:"render",value:function render(){return _react.default.createElement(Component,(0,_extends2.default)({},this.props,{isFocused:this.state.isFocused,ref:this.props.onRef,__source:{fileName:_jsxFileName,lineNumber:33}}));}}]);return ComponentWithNavigationFocus;}(_react.default.Component);ComponentWithNavigationFocus.displayName="withNavigationFocus("+(Component.displayName||Component.name)+")";return(0,_hoistNonReactStatics.default)((0,_withNavigation.default)(ComponentWithNavigationFocus,{forwardRef:false}),Component);}
2
2
  //# sourceMappingURL=withNavigationFocus.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["withNavigationFocus.js"],"names":["withNavigationFocus","Component","ComponentWithNavigationFocus","props","subscriptions","navigation","addListener","setState","isFocused","state","forEach","sub","remove","onRef","React","displayName","name","forwardRef"],"mappings":"0tBAAA,oDACA,qFACA,wE,mGAEe,QAASA,CAAAA,mBAAT,CAA6BC,SAA7B,CAAwC,IAC/CC,CAAAA,4BAD+C,kGAKnD,sCAAYC,KAAZ,CAAmB,2EACjB,wHAAMA,KAAN,GAEA,MAAKC,aAAL,CAAqB,CACnBD,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,IAAb,CAAd,CADuC,EAAzC,CADmB,CAInBL,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,KAAb,CAAd,CADuC,EAAzC,CAJmB,CAArB,CASA,MAAKC,KAAL,CAAa,CACXD,SAAS,CAAEL,KAAK,CAACE,UAAN,CAAmBF,KAAK,CAACE,UAAN,CAAiBG,SAAjB,EAAnB,CAAkD,KADlD,CAAb,CAZiB,aAelB,CApBkD,yHAsB5B,CACrB,KAAKJ,aAAL,CAAmBM,OAAnB,CAA2B,SAAAC,GAAG,QAAIA,CAAAA,GAAG,CAACC,MAAJ,EAAJ,EAA9B,EACD,CAxBkD,uCA0B1C,CACP,MACE,8BAAC,SAAD,0BACM,KAAKT,KADX,EAEE,SAAS,CAAE,KAAKM,KAAL,CAAWD,SAFxB,CAGE,GAAG,CAAE,KAAKL,KAAL,CAAWU,KAHlB,kDADF,CAOD,CAlCkD,0CACVC,eAAMb,SADI,EAC/CC,4BAD+C,CAE5Ca,WAF4C,yBAEPd,SAAS,CAACc,WAAV,EAC1Cd,SAAS,CAACe,IAHuC,MAqCrD,MAAO,kCACL,4BAAed,4BAAf,CAA6C,CAAEe,UAAU,CAAE,KAAd,CAA7C,CADK,CAELhB,SAFK,CAAP,CAID","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport withNavigation from './withNavigation';\n\nexport default function withNavigationFocus(Component) {\n class ComponentWithNavigationFocus extends React.Component {\n static displayName = `withNavigationFocus(${Component.displayName ||\n Component.name})`;\n\n constructor(props) {\n super(props);\n\n this.subscriptions = [\n props.navigation.addListener('didFocus', () =>\n this.setState({ isFocused: true })\n ),\n props.navigation.addListener('willBlur', () =>\n this.setState({ isFocused: false })\n ),\n ];\n\n this.state = {\n isFocused: props.navigation ? props.navigation.isFocused() : false,\n };\n }\n\n componentWillUnmount() {\n this.subscriptions.forEach(sub => sub.remove());\n }\n\n render() {\n return (\n <Component\n {...this.props}\n isFocused={this.state.isFocused}\n ref={this.props.onRef}\n />\n );\n }\n }\n\n return hoistStatics(\n withNavigation(ComponentWithNavigationFocus, { forwardRef: false }),\n Component\n );\n}\n"]}
1
+ {"version":3,"sources":["withNavigationFocus.js"],"names":["withNavigationFocus","Component","ComponentWithNavigationFocus","props","subscriptions","navigation","addListener","setState","isFocused","state","forEach","sub","remove","onRef","React","displayName","name","forwardRef"],"mappings":"0tBAAA,oDACA,qFACA,wE,2GAEe,QAASA,CAAAA,mBAAT,CAA6BC,SAA7B,CAAwC,IAC/CC,CAAAA,4BAD+C,kGAKnD,sCAAYC,KAAZ,CAAmB,2EACjB,wHAAMA,KAAN,GAEA,MAAKC,aAAL,CAAqB,CACnBD,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,IAAb,CAAd,CADuC,EAAzC,CADmB,CAInBL,KAAK,CAACE,UAAN,CAAiBC,WAAjB,CAA6B,UAA7B,CAAyC,iBACvC,OAAKC,QAAL,CAAc,CAAEC,SAAS,CAAE,KAAb,CAAd,CADuC,EAAzC,CAJmB,CAArB,CASA,MAAKC,KAAL,CAAa,CACXD,SAAS,CAAEL,KAAK,CAACE,UAAN,CAAmBF,KAAK,CAACE,UAAN,CAAiBG,SAAjB,EAAnB,CAAkD,KADlD,CAAb,CAZiB,aAelB,CApBkD,yHAsB5B,CACrB,KAAKJ,aAAL,CAAmBM,OAAnB,CAA2B,SAAAC,GAAG,QAAIA,CAAAA,GAAG,CAACC,MAAJ,EAAJ,EAA9B,EACD,CAxBkD,uCA0B1C,CACP,MACE,8BAAC,SAAD,0BACM,KAAKT,KADX,EAEE,SAAS,CAAE,KAAKM,KAAL,CAAWD,SAFxB,CAGE,GAAG,CAAE,KAAKL,KAAL,CAAWU,KAHlB,kDADF,CAOD,CAlCkD,0CACVC,eAAMb,SADI,EAC/CC,4BAD+C,CAE5Ca,WAF4C,yBAEPd,SAAS,CAACc,WAAV,EAC1Cd,SAAS,CAACe,IAHuC,MAqCrD,MAAO,kCACL,4BAAed,4BAAf,CAA6C,CAAEe,UAAU,CAAE,KAAd,CAA7C,CADK,CAELhB,SAFK,CAAP,CAID","sourcesContent":["import React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport withNavigation from './withNavigation';\n\nexport default function withNavigationFocus(Component) {\n class ComponentWithNavigationFocus extends React.Component {\n static displayName = `withNavigationFocus(${Component.displayName ||\n Component.name})`;\n\n constructor(props) {\n super(props);\n\n this.subscriptions = [\n props.navigation.addListener('didFocus', () =>\n this.setState({ isFocused: true })\n ),\n props.navigation.addListener('willBlur', () =>\n this.setState({ isFocused: false })\n ),\n ];\n\n this.state = {\n isFocused: props.navigation ? props.navigation.isFocused() : false,\n };\n }\n\n componentWillUnmount() {\n this.subscriptions.forEach(sub => sub.remove());\n }\n\n render() {\n return (\n <Component\n {...this.props}\n isFocused={this.state.isFocused}\n ref={this.props.onRef}\n />\n );\n }\n }\n\n return hoistStatics(\n withNavigation(ComponentWithNavigationFocus, { forwardRef: false }),\n Component\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/navigators/__tests__/createSwitchnavigator-test.js";import*as React from'react';import{Text,View,TouchableOpacity}from'react-native';import{render,fireEvent}from'react-native-testing-library';import{createAppContainer}from'@react-navigation/native';import createSwitchNavigator from'../createSwitchNavigator';jest.mock('@react-navigation/core',function(){return require('../../index');});var getActiveRouteName=function getActiveRouteName(state){return state.routes[state.index].routeName;};var createScreen=function createScreen(routeName,nextRouteName){return function(props){return React.createElement(View,{__source:{fileName:_jsxFileName,lineNumber:11}},React.createElement(Text,{testID:"title",__source:{fileName:_jsxFileName,lineNumber:12}},routeName),React.createElement(Text,{testID:routeName+'-isFirstRoute',__source:{fileName:_jsxFileName,lineNumber:13}},String(props.navigation.isFirstRouteInParent())),React.createElement(TouchableOpacity,{testID:routeName+'-next',onPress:function onPress(){return props.navigation.navigate(nextRouteName);},__source:{fileName:_jsxFileName,lineNumber:16}},"Go to ",nextRouteName),React.createElement(TouchableOpacity,{testID:routeName+'-back',onPress:function onPress(){return props.navigation.goBack();},__source:{fileName:_jsxFileName,lineNumber:22}},"Go back"));};};it('renders switch navigator with initialRouteName',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{initialRouteName:'Second'});var App=createAppContainer(SwitchNavigator);var _render=render(React.createElement(App,{__source:{fileName:_jsxFileName,lineNumber:45}})),queryByText=_render.queryByText,getByTestId=_render.getByTestId;expect(queryByText('First')).toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).not.toBeNull();fireEvent.press(getByTestId('Second-next'));expect(queryByText('First')).not.toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).toBeNull();});it('uses backBehavior=none by default',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render2=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:69}})),getByTestId=_render2.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('uses backBehavior=initialRoute when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'initialRoute'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render3=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:102}})),getByTestId=_render3.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=order when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'order'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render4=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:135}})),getByTestId=_render4.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=history when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render5=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:168}})),getByTestId=_render5.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('returns correct value for canGoBack in a simple navigator',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render6=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:217}})),getByTestId=_render6.getByTestId;expect(getByTestId('First-isFirstRoute').props.children).toBe('true');fireEvent.press(getByTestId('First-next'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');fireEvent.press(getByTestId('Third-next'));expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');fireEvent.press(getByTestId('Second-back'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');});
1
+ var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/navigators/__tests__/createSwitchnavigator-test.js";import*as React from'react';import{Text,View,TouchableOpacity}from'react-native';import{render,fireEvent}from'react-native-testing-library';import{createAppContainer}from'@react-navigation/native';import createSwitchNavigator from'../createSwitchNavigator';jest.mock('@react-navigation/core',function(){return require('../../index');});var getActiveRouteName=function getActiveRouteName(state){return state.routes[state.index].routeName;};var createScreen=function createScreen(routeName,nextRouteName){return function(props){return React.createElement(View,{__source:{fileName:_jsxFileName,lineNumber:11}},React.createElement(Text,{testID:"title",__source:{fileName:_jsxFileName,lineNumber:12}},routeName),React.createElement(Text,{testID:routeName+'-isFirstRoute',__source:{fileName:_jsxFileName,lineNumber:13}},String(props.navigation.isFirstRouteInParent())),React.createElement(TouchableOpacity,{testID:routeName+'-next',onPress:function onPress(){return props.navigation.navigate(nextRouteName);},__source:{fileName:_jsxFileName,lineNumber:16}},"Go to ",nextRouteName),React.createElement(TouchableOpacity,{testID:routeName+'-back',onPress:function onPress(){return props.navigation.goBack();},__source:{fileName:_jsxFileName,lineNumber:22}},"Go back"));};};it('renders switch navigator with initialRouteName',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{initialRouteName:'Second'});var App=createAppContainer(SwitchNavigator);var _render=render(React.createElement(App,{__source:{fileName:_jsxFileName,lineNumber:45}})),queryByText=_render.queryByText,getByTestId=_render.getByTestId;expect(queryByText('First')).toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).not.toBeNull();fireEvent.press(getByTestId('Second-next'));expect(queryByText('First')).not.toBeNull();expect(queryByText('Third')).toBeNull();expect(queryByText('Second')).toBeNull();});it('uses backBehavior=none by default',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render2=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:69}})),getByTestId=_render2.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('uses backBehavior=initialRoute when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'initialRoute'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render3=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:102}})),getByTestId=_render3.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=order when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'order'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render4=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:135}})),getByTestId=_render4.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=history when specified',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render5=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:168}})),getByTestId=_render5.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');fireEvent.press(getByTestId('First-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('returns correct value for canGoBack in a simple navigator',function(){var SwitchNavigator=createSwitchNavigator({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=createAppContainer(SwitchNavigator);var navigationRef=React.createRef();var _render6=render(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:217}})),getByTestId=_render6.getByTestId;expect(getByTestId('First-isFirstRoute').props.children).toBe('true');fireEvent.press(getByTestId('First-next'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');fireEvent.press(getByTestId('Third-next'));expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');fireEvent.press(getByTestId('Second-back'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');});
2
2
  //# sourceMappingURL=createSwitchnavigator-test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["createSwitchnavigator-test.js"],"names":["React","Text","View","TouchableOpacity","render","fireEvent","createAppContainer","createSwitchNavigator","jest","mock","require","getActiveRouteName","state","routes","index","routeName","createScreen","nextRouteName","props","String","navigation","isFirstRouteInParent","navigate","goBack","it","SwitchNavigator","First","Second","Third","initialRouteName","App","queryByText","getByTestId","expect","toBeNull","not","press","navigationRef","createRef","current","nav","toBe","backBehavior","children"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Text, View, TouchableOpacity } from 'react-native';\nimport { render, fireEvent } from 'react-native-testing-library';\nimport { createAppContainer } from '@react-navigation/native';\nimport createSwitchNavigator from '../createSwitchNavigator';\n\njest.mock('@react-navigation/core', () => require('../../index'));\n\nconst getActiveRouteName = state => state.routes[state.index].routeName;\nconst createScreen = (routeName, nextRouteName) => props => (\n <View>\n <Text testID=\"title\">{routeName}</Text>\n <Text testID={routeName + '-isFirstRoute'}>\n {String(props.navigation.isFirstRouteInParent())}\n </Text>\n <TouchableOpacity\n testID={routeName + '-next'}\n onPress={() => props.navigation.navigate(nextRouteName)}\n >\n Go to {nextRouteName}\n </TouchableOpacity>\n <TouchableOpacity\n testID={routeName + '-back'}\n onPress={() => props.navigation.goBack()}\n >\n Go back\n </TouchableOpacity>\n </View>\n);\n\nit('renders switch navigator with initialRouteName', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n initialRouteName: 'Second',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const { queryByText, getByTestId } = render(<App />);\n\n expect(queryByText('First')).toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).not.toBeNull();\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(queryByText('First')).not.toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).toBeNull();\n});\n\nit('uses backBehavior=none by default', () => {\n const SwitchNavigator = createSwitchNavigator({\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n });\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('uses backBehavior=initialRoute when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'initialRoute',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=order when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'order',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=history when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('returns correct value for canGoBack in a simple navigator', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getByTestId('First-isFirstRoute').props.children).toBe('true');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n});\n"]}
1
+ {"version":3,"sources":["createSwitchnavigator-test.js"],"names":["React","Text","View","TouchableOpacity","render","fireEvent","createAppContainer","createSwitchNavigator","jest","mock","require","getActiveRouteName","state","routes","index","routeName","createScreen","nextRouteName","props","String","navigation","isFirstRouteInParent","navigate","goBack","it","SwitchNavigator","First","Second","Third","initialRouteName","App","queryByText","getByTestId","expect","toBeNull","not","press","navigationRef","createRef","current","nav","toBe","backBehavior","children"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Text, View, TouchableOpacity } from 'react-native';\nimport { render, fireEvent } from 'react-native-testing-library';\nimport { createAppContainer } from '@react-navigation/native';\nimport createSwitchNavigator from '../createSwitchNavigator';\n\njest.mock('@react-navigation/core', () => require('../../index'));\n\nconst getActiveRouteName = state => state.routes[state.index].routeName;\nconst createScreen = (routeName, nextRouteName) => props => (\n <View>\n <Text testID=\"title\">{routeName}</Text>\n <Text testID={routeName + '-isFirstRoute'}>\n {String(props.navigation.isFirstRouteInParent())}\n </Text>\n <TouchableOpacity\n testID={routeName + '-next'}\n onPress={() => props.navigation.navigate(nextRouteName)}\n >\n Go to {nextRouteName}\n </TouchableOpacity>\n <TouchableOpacity\n testID={routeName + '-back'}\n onPress={() => props.navigation.goBack()}\n >\n Go back\n </TouchableOpacity>\n </View>\n);\n\nit('renders switch navigator with initialRouteName', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n initialRouteName: 'Second',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const { queryByText, getByTestId } = render(<App />);\n\n expect(queryByText('First')).toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).not.toBeNull();\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(queryByText('First')).not.toBeNull();\n expect(queryByText('Third')).toBeNull();\n expect(queryByText('Second')).toBeNull();\n});\n\nit('uses backBehavior=none by default', () => {\n const SwitchNavigator = createSwitchNavigator({\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n });\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('uses backBehavior=initialRoute when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'initialRoute',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=order when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'order',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n});\n\nit('uses backBehavior=history when specified', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');\n\n fireEvent.press(getByTestId('Third-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');\n\n fireEvent.press(getByTestId('First-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');\n});\n\nit('returns correct value for canGoBack in a simple navigator', () => {\n const SwitchNavigator = createSwitchNavigator(\n {\n First: createScreen('First', 'Third'),\n Second: createScreen('Second', 'First'),\n Third: createScreen('Third', 'Second'),\n },\n {\n backBehavior: 'history',\n }\n );\n\n const App = createAppContainer(SwitchNavigator);\n\n const navigationRef = React.createRef();\n\n const { getByTestId } = render(<App ref={navigationRef} />);\n\n expect(getByTestId('First-isFirstRoute').props.children).toBe('true');\n\n fireEvent.press(getByTestId('First-next'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Third-next'));\n\n expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');\n\n fireEvent.press(getByTestId('Second-back'));\n\n expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');\n});\n"]}
@@ -1,2 +1,2 @@
1
- import _extends from"@babel/runtime/helpers/extends";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/navigators/createNavigator.js";import React from'react';import invariant from'../utils/invariant';function createNavigator(NavigatorView,router,navigationConfig){var Navigator=function(_React$Component){_inherits(Navigator,_React$Component);function Navigator(){var _getPrototypeOf2;var _this;_classCallCheck(this,Navigator);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=_possibleConstructorReturn(this,(_getPrototypeOf2=_getPrototypeOf(Navigator)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={descriptors:{},screenProps:_this.props.screenProps};return _this;}_createClass(Navigator,[{key:"render",value:function render(){return React.createElement(NavigatorView,_extends({},this.props,{screenProps:this.state.screenProps,navigation:this.props.navigation,navigationConfig:navigationConfig,descriptors:this.state.descriptors,__source:{fileName:_jsxFileName,lineNumber:61}}));}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(nextProps,prevState){var prevDescriptors=prevState.descriptors;var navigation=nextProps.navigation,screenProps=nextProps.screenProps;invariant(navigation!=null,'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html');var state=navigation.state;var routes=state.routes;if(typeof routes==='undefined'){throw new TypeError('No "routes" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop');}var descriptors={};routes.forEach(function(route){if(prevDescriptors&&prevDescriptors[route.key]&&route===prevDescriptors[route.key].state&&screenProps===prevState.screenProps){descriptors[route.key]=prevDescriptors[route.key];return;}var getComponent=router.getComponentForRouteName.bind(null,route.routeName);var childNavigation=navigation.getChildNavigation(route.key);var options=router.getScreenOptions(childNavigation,screenProps);descriptors[route.key]={key:route.key,getComponent:getComponent,options:options,state:route,navigation:childNavigation};});return{descriptors:descriptors,screenProps:screenProps};}}]);return Navigator;}(React.Component);Navigator.router=router;Navigator.navigationOptions=navigationConfig.navigationOptions;return Navigator;}export default createNavigator;
1
+ import _extends from"@babel/runtime/helpers/extends";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/navigators/createNavigator.js";import React from'react';import invariant from'../utils/invariant';import ThemeContext from'../views/ThemeContext';function createNavigator(NavigatorView,router,navigationConfig){var Navigator=function(_React$Component){_inherits(Navigator,_React$Component);function Navigator(props,context){var _this;_classCallCheck(this,Navigator);_this=_possibleConstructorReturn(this,_getPrototypeOf(Navigator).call(this,props,context));_this.state={descriptors:{},screenProps:_this.props.screenProps,theme:context,themeContext:context};return _this;}_createClass(Navigator,[{key:"componentDidUpdate",value:function componentDidUpdate(){if(this.context!==this.state.themeContext){this.setState({themeContext:this.context});}}},{key:"render",value:function render(){return React.createElement(NavigatorView,_extends({},this.props,{screenProps:this.state.screenProps,navigation:this.props.navigation,navigationConfig:navigationConfig,descriptors:this.state.descriptors,__source:{fileName:_jsxFileName,lineNumber:80}}));}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(nextProps,currentState){var prevDescriptors=currentState.descriptors;var navigation=nextProps.navigation,screenProps=nextProps.screenProps;invariant(navigation!=null,'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html');var state=navigation.state;var routes=state.routes;if(typeof routes==='undefined'){throw new TypeError('No "routes" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop');}var descriptors=routes.reduce(function(acc,route){if(prevDescriptors&&prevDescriptors[route.key]&&route===prevDescriptors[route.key].state&&screenProps===currentState.screenProps&&currentState.themeContext===currentState.theme){acc[route.key]=prevDescriptors[route.key];return acc;}var getComponent=router.getComponentForRouteName.bind(null,route.routeName);var childNavigation=navigation.getChildNavigation(route.key);var options=router.getScreenOptions(childNavigation,screenProps,currentState.themeContext);acc[route.key]={key:route.key,getComponent:getComponent,options:options,state:route,navigation:childNavigation};return acc;},{});return{descriptors:descriptors,screenProps:screenProps,theme:state.themeContext};}}]);return Navigator;}(React.Component);Navigator.contextType=ThemeContext;Navigator.router=router;Navigator.navigationOptions=navigationConfig.navigationOptions;return Navigator;}export default createNavigator;
2
2
  //# sourceMappingURL=createNavigator.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["createNavigator.js"],"names":["React","invariant","createNavigator","NavigatorView","router","navigationConfig","Navigator","state","descriptors","screenProps","props","navigation","nextProps","prevState","prevDescriptors","routes","TypeError","forEach","route","key","getComponent","getComponentForRouteName","bind","routeName","childNavigation","getChildNavigation","options","getScreenOptions","Component","navigationOptions"],"mappings":"4eAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,MAAOC,CAAAA,SAAP,KAAsB,oBAAtB,CAEA,QAASC,CAAAA,eAAT,CAAyBC,aAAzB,CAAwCC,MAAxC,CAAgDC,gBAAhD,CAAkE,IAC1DC,CAAAA,SAD0D,0YAK9DC,KAL8D,CAKtD,CACNC,WAAW,CAAE,EADP,CAENC,WAAW,CAAE,MAAKC,KAAL,CAAWD,WAFlB,CALsD,4EAuDrD,CACP,MACE,qBAAC,aAAD,aACM,KAAKC,KADX,EAEE,WAAW,CAAE,KAAKH,KAAL,CAAWE,WAF1B,CAGE,UAAU,CAAE,KAAKC,KAAL,CAAWC,UAHzB,CAIE,gBAAgB,CAAEN,gBAJpB,CAKE,WAAW,CAAE,KAAKE,KAAL,CAAWC,WAL1B,kDADF,CASD,CAjE6D,4EAU9BI,SAV8B,CAUnBC,SAVmB,CAUR,CACpD,GAAMC,CAAAA,eAAe,CAAGD,SAAS,CAACL,WAAlC,CADoD,GAE5CG,CAAAA,UAF4C,CAEhBC,SAFgB,CAE5CD,UAF4C,CAEhCF,WAFgC,CAEhBG,SAFgB,CAEhCH,WAFgC,CAGpDR,SAAS,CACPU,UAAU,EAAI,IADP,CAEP,0LAFO,CAAT,CAHoD,GAO5CJ,CAAAA,KAP4C,CAOlCI,UAPkC,CAO5CJ,KAP4C,IAQ5CQ,CAAAA,MAR4C,CAQjCR,KARiC,CAQ5CQ,MAR4C,CASpD,GAAI,MAAOA,CAAAA,MAAP,GAAkB,WAAtB,CAAmC,CACjC,KAAM,IAAIC,CAAAA,SAAJ,CACJ,oNADI,CAAN,CAGD,CAED,GAAMR,CAAAA,WAAW,CAAG,EAApB,CAEAO,MAAM,CAACE,OAAP,CAAe,SAAAC,KAAK,CAAI,CACtB,GACEJ,eAAe,EACfA,eAAe,CAACI,KAAK,CAACC,GAAP,CADf,EAEAD,KAAK,GAAKJ,eAAe,CAACI,KAAK,CAACC,GAAP,CAAf,CAA2BZ,KAFrC,EAGAE,WAAW,GAAKI,SAAS,CAACJ,WAJ5B,CAKE,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyBL,eAAe,CAACI,KAAK,CAACC,GAAP,CAAxC,CACA,OACD,CACD,GAAMC,CAAAA,YAAY,CAAGhB,MAAM,CAACiB,wBAAP,CAAgCC,IAAhC,CACnB,IADmB,CAEnBJ,KAAK,CAACK,SAFa,CAArB,CAIA,GAAMC,CAAAA,eAAe,CAAGb,UAAU,CAACc,kBAAX,CAA8BP,KAAK,CAACC,GAApC,CAAxB,CACA,GAAMO,CAAAA,OAAO,CAAGtB,MAAM,CAACuB,gBAAP,CAAwBH,eAAxB,CAAyCf,WAAzC,CAAhB,CACAD,WAAW,CAACU,KAAK,CAACC,GAAP,CAAX,CAAyB,CACvBA,GAAG,CAAED,KAAK,CAACC,GADY,CAEvBC,YAAY,CAAZA,YAFuB,CAGvBM,OAAO,CAAPA,OAHuB,CAIvBnB,KAAK,CAAEW,KAJgB,CAKvBP,UAAU,CAAEa,eALW,CAAzB,CAOD,CAvBD,EAyBA,MAAO,CAAEhB,WAAW,CAAXA,WAAF,CAAeC,WAAW,CAAXA,WAAf,CAAP,CACD,CArD6D,uBACxCT,KAAK,CAAC4B,SADkC,EAC1DtB,SAD0D,CAEvDF,MAFuD,CAE9CA,MAF8C,CAC1DE,SAD0D,CAGvDuB,iBAHuD,CAGnCxB,gBAAgB,CAACwB,iBAHkB,CAoEhE,MAAOvB,CAAAA,SAAP,CACD,CAED,cAAeJ,CAAAA,eAAf","sourcesContent":["import React from 'react';\nimport invariant from '../utils/invariant';\n\nfunction createNavigator(NavigatorView, router, navigationConfig) {\n class Navigator extends React.Component {\n static router = router;\n static navigationOptions = navigationConfig.navigationOptions;\n\n state = {\n descriptors: {},\n screenProps: this.props.screenProps,\n };\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const prevDescriptors = prevState.descriptors;\n const { navigation, screenProps } = nextProps;\n invariant(\n navigation != null,\n 'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html'\n );\n const { state } = navigation;\n const { routes } = state;\n if (typeof routes === 'undefined') {\n throw new TypeError(\n 'No \"routes\" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop'\n );\n }\n\n const descriptors = {};\n\n routes.forEach(route => {\n if (\n prevDescriptors &&\n prevDescriptors[route.key] &&\n route === prevDescriptors[route.key].state &&\n screenProps === prevState.screenProps\n ) {\n descriptors[route.key] = prevDescriptors[route.key];\n return;\n }\n const getComponent = router.getComponentForRouteName.bind(\n null,\n route.routeName\n );\n const childNavigation = navigation.getChildNavigation(route.key);\n const options = router.getScreenOptions(childNavigation, screenProps);\n descriptors[route.key] = {\n key: route.key,\n getComponent,\n options,\n state: route,\n navigation: childNavigation,\n };\n });\n\n return { descriptors, screenProps };\n }\n\n render() {\n return (\n <NavigatorView\n {...this.props}\n screenProps={this.state.screenProps}\n navigation={this.props.navigation}\n navigationConfig={navigationConfig}\n descriptors={this.state.descriptors}\n />\n );\n }\n }\n\n return Navigator;\n}\n\nexport default createNavigator;\n"]}
1
+ {"version":3,"sources":["createNavigator.js"],"names":["React","invariant","ThemeContext","createNavigator","NavigatorView","router","navigationConfig","Navigator","props","context","state","descriptors","screenProps","theme","themeContext","setState","navigation","nextProps","currentState","prevDescriptors","routes","TypeError","reduce","acc","route","key","getComponent","getComponentForRouteName","bind","routeName","childNavigation","getChildNavigation","options","getScreenOptions","Component","contextType","navigationOptions"],"mappings":"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","sourcesContent":["import React from 'react';\nimport invariant from '../utils/invariant';\nimport ThemeContext from '../views/ThemeContext';\n\nfunction createNavigator(NavigatorView, router, navigationConfig) {\n class Navigator extends React.Component {\n static contextType = ThemeContext;\n static router = router;\n static navigationOptions = navigationConfig.navigationOptions;\n\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n descriptors: {},\n screenProps: this.props.screenProps,\n theme: context,\n themeContext: context,\n };\n }\n\n static getDerivedStateFromProps(nextProps, currentState) {\n const prevDescriptors = currentState.descriptors;\n const { navigation, screenProps } = nextProps;\n invariant(\n navigation != null,\n 'The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html'\n );\n const { state } = navigation;\n const { routes } = state;\n if (typeof routes === 'undefined') {\n throw new TypeError(\n 'No \"routes\" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop'\n );\n }\n\n const descriptors = routes.reduce((acc, route) => {\n if (\n prevDescriptors &&\n prevDescriptors[route.key] &&\n route === prevDescriptors[route.key].state &&\n screenProps === currentState.screenProps &&\n currentState.themeContext === currentState.theme\n ) {\n acc[route.key] = prevDescriptors[route.key];\n return acc;\n }\n const getComponent = router.getComponentForRouteName.bind(\n null,\n route.routeName\n );\n const childNavigation = navigation.getChildNavigation(route.key);\n const options = router.getScreenOptions(\n childNavigation,\n screenProps,\n currentState.themeContext\n );\n acc[route.key] = {\n key: route.key,\n getComponent,\n options,\n state: route,\n navigation: childNavigation,\n };\n return acc;\n }, {});\n\n return { descriptors, screenProps, theme: state.themeContext };\n }\n\n componentDidUpdate() {\n if (this.context !== this.state.themeContext) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ themeContext: this.context });\n }\n }\n\n render() {\n return (\n <NavigatorView\n {...this.props}\n screenProps={this.state.screenProps}\n navigation={this.props.navigation}\n navigationConfig={navigationConfig}\n descriptors={this.state.descriptors}\n />\n );\n }\n }\n\n return Navigator;\n}\n\nexport default createNavigator;\n"]}