@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.
- package/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js +1 -1
- package/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js.map +1 -1
- package/lib/commonjs/navigators/createNavigator.js +1 -1
- package/lib/commonjs/navigators/createNavigator.js.map +1 -1
- package/lib/commonjs/routers/SwitchRouter.js +1 -1
- package/lib/commonjs/routers/SwitchRouter.js.map +1 -1
- package/lib/commonjs/routers/__tests__/PathHandling-test.js +1 -1
- package/lib/commonjs/routers/__tests__/PathHandling-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/Routers-test.js +1 -1
- package/lib/commonjs/routers/__tests__/Routers-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/StackRouter-test.js +1 -1
- package/lib/commonjs/routers/__tests__/StackRouter-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/SwitchRouter-test.js +1 -1
- package/lib/commonjs/routers/__tests__/SwitchRouter-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/TabRouter-test.js +1 -1
- package/lib/commonjs/routers/__tests__/TabRouter-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/pathUtils-test.js +1 -1
- package/lib/commonjs/routers/__tests__/pathUtils-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js +1 -1
- package/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js.map +1 -1
- package/lib/commonjs/routers/createConfigGetter.js +1 -1
- package/lib/commonjs/routers/createConfigGetter.js.map +1 -1
- package/lib/commonjs/routers/pathUtils.js +1 -1
- package/lib/commonjs/routers/pathUtils.js.map +1 -1
- package/lib/commonjs/useTheme.js +1 -1
- package/lib/commonjs/useTheme.js.map +1 -1
- package/lib/commonjs/utils/getActiveChildNavigationOptions.js +1 -1
- package/lib/commonjs/utils/getActiveChildNavigationOptions.js.map +1 -1
- package/lib/commonjs/views/SceneView.js +1 -1
- package/lib/commonjs/views/SceneView.js.map +1 -1
- package/lib/commonjs/views/SwitchView/SwitchView.js +1 -1
- package/lib/commonjs/views/SwitchView/SwitchView.js.map +1 -1
- package/lib/commonjs/views/__tests__/NavigationEvents-test.js +1 -1
- package/lib/commonjs/views/__tests__/NavigationEvents-test.js.map +1 -1
- package/lib/commonjs/views/withNavigation.js +1 -1
- package/lib/commonjs/views/withNavigation.js.map +1 -1
- package/lib/commonjs/views/withNavigationFocus.js +1 -1
- package/lib/commonjs/views/withNavigationFocus.js.map +1 -1
- package/lib/module/navigators/__tests__/createSwitchnavigator-test.js +1 -1
- package/lib/module/navigators/__tests__/createSwitchnavigator-test.js.map +1 -1
- package/lib/module/navigators/createNavigator.js +1 -1
- package/lib/module/navigators/createNavigator.js.map +1 -1
- package/lib/module/routers/SwitchRouter.js +1 -1
- package/lib/module/routers/SwitchRouter.js.map +1 -1
- package/lib/module/routers/__tests__/PathHandling-test.js +1 -1
- package/lib/module/routers/__tests__/PathHandling-test.js.map +1 -1
- package/lib/module/routers/__tests__/Routers-test.js +1 -1
- package/lib/module/routers/__tests__/Routers-test.js.map +1 -1
- package/lib/module/routers/__tests__/StackRouter-test.js +1 -1
- package/lib/module/routers/__tests__/StackRouter-test.js.map +1 -1
- package/lib/module/routers/__tests__/SwitchRouter-test.js +1 -1
- package/lib/module/routers/__tests__/SwitchRouter-test.js.map +1 -1
- package/lib/module/routers/__tests__/TabRouter-test.js +1 -1
- package/lib/module/routers/__tests__/TabRouter-test.js.map +1 -1
- package/lib/module/routers/__tests__/pathUtils-test.js +1 -1
- package/lib/module/routers/__tests__/pathUtils-test.js.map +1 -1
- package/lib/module/routers/__tests__/validateRouteConfigMap-test.js +1 -1
- package/lib/module/routers/__tests__/validateRouteConfigMap-test.js.map +1 -1
- package/lib/module/routers/createConfigGetter.js +1 -1
- package/lib/module/routers/createConfigGetter.js.map +1 -1
- package/lib/module/routers/pathUtils.js +1 -1
- package/lib/module/routers/pathUtils.js.map +1 -1
- package/lib/module/useTheme.js +1 -1
- package/lib/module/useTheme.js.map +1 -1
- package/lib/module/utils/getActiveChildNavigationOptions.js +1 -1
- package/lib/module/utils/getActiveChildNavigationOptions.js.map +1 -1
- package/lib/module/views/SceneView.js +1 -1
- package/lib/module/views/SceneView.js.map +1 -1
- package/lib/module/views/SwitchView/SwitchView.js +1 -1
- package/lib/module/views/SwitchView/SwitchView.js.map +1 -1
- package/lib/module/views/__tests__/NavigationEvents-test.js +1 -1
- package/lib/module/views/__tests__/NavigationEvents-test.js.map +1 -1
- package/lib/module/views/withNavigation.js +1 -1
- package/lib/module/views/withNavigation.js.map +1 -1
- package/lib/module/views/withNavigationFocus.js +1 -1
- package/lib/module/views/withNavigationFocus.js.map +1 -1
- package/lib/typescript/useTheme.d.ts +1 -1
- package/package.json +1 -1
- package/src/navigators/createNavigator.js +35 -16
- package/src/routers/SwitchRouter.js +13 -11
- package/src/routers/__tests__/pathUtils-test.js +37 -1
- package/src/routers/createConfigGetter.js +3 -2
- package/src/routers/pathUtils.js +16 -5
- package/src/useTheme.ts +1 -1
- package/src/utils/getActiveChildNavigationOptions.js +6 -2
- package/src/.DS_Store +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeTestingLibrary=require("react-native-testing-library");var _native=require("@react-navigation/native");var _createSwitchNavigator=_interopRequireDefault(require("../createSwitchNavigator"));var _jsxFileName="/Users/
|
|
1
|
+
var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeTestingLibrary=require("react-native-testing-library");var _native=require("@react-navigation/native");var _createSwitchNavigator=_interopRequireDefault(require("../createSwitchNavigator"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/navigators/__tests__/createSwitchnavigator-test.js";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(_reactNative.View,{__source:{fileName:_jsxFileName,lineNumber:11}},React.createElement(_reactNative.Text,{testID:"title",__source:{fileName:_jsxFileName,lineNumber:12}},routeName),React.createElement(_reactNative.Text,{testID:routeName+'-isFirstRoute',__source:{fileName:_jsxFileName,lineNumber:13}},String(props.navigation.isFirstRouteInParent())),React.createElement(_reactNative.TouchableOpacity,{testID:routeName+'-next',onPress:function onPress(){return props.navigation.navigate(nextRouteName);},__source:{fileName:_jsxFileName,lineNumber:16}},"Go to ",nextRouteName),React.createElement(_reactNative.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=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{initialRouteName:'Second'});var App=(0,_native.createAppContainer)(SwitchNavigator);var _render=(0,_reactNativeTestingLibrary.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();_reactNativeTestingLibrary.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=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render2=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:69}})),getByTestId=_render2.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');});it('uses backBehavior=initialRoute when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'initialRoute'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render3=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:102}})),getByTestId=_render3.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=order when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'order'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render4=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:135}})),getByTestId=_render4.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');});it('uses backBehavior=history when specified',function(){var SwitchNavigator=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render5=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:168}})),getByTestId=_render5.getByTestId;expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Second-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Third');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('First');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-back'));expect(getActiveRouteName(navigationRef.current.state.nav)).toBe('Second');_reactNativeTestingLibrary.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=(0,_createSwitchNavigator.default)({First:createScreen('First','Third'),Second:createScreen('Second','First'),Third:createScreen('Third','Second')},{backBehavior:'history'});var App=(0,_native.createAppContainer)(SwitchNavigator);var navigationRef=React.createRef();var _render6=(0,_reactNativeTestingLibrary.render)(React.createElement(App,{ref:navigationRef,__source:{fileName:_jsxFileName,lineNumber:217}})),getByTestId=_render6.getByTestId;expect(getByTestId('First-isFirstRoute').props.children).toBe('true');_reactNativeTestingLibrary.fireEvent.press(getByTestId('First-next'));expect(getByTestId('Third-isFirstRoute').props.children).toBe('false');_reactNativeTestingLibrary.fireEvent.press(getByTestId('Third-next'));expect(getByTestId('Second-isFirstRoute').props.children).toBe('false');_reactNativeTestingLibrary.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":["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","fireEvent","press","navigationRef","React","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":["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","fireEvent","press","navigationRef","React","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
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;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
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;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 _invariant=_interopRequireDefault(require("../utils/invariant"));var _ThemeContext=_interopRequireDefault(require("../views/ThemeContext"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/navigators/createNavigator.js";function createNavigator(NavigatorView,router,navigationConfig){var Navigator=function(_React$Component){(0,_inherits2.default)(Navigator,_React$Component);function Navigator(props,context){var _this;(0,_classCallCheck2.default)(this,Navigator);_this=(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(Navigator).call(this,props,context));_this.state={descriptors:{},screenProps:_this.props.screenProps,theme:context,themeContext:context};return _this;}(0,_createClass2.default)(Navigator,[{key:"componentDidUpdate",value:function componentDidUpdate(){if(this.context!==this.state.themeContext){this.setState({themeContext:this.context});}}},{key:"render",value:function render(){return _react.default.createElement(NavigatorView,(0,_extends2.default)({},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;(0,_invariant.default)(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&¤tState.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.default.Component);Navigator.contextType=_ThemeContext.default;Navigator.router=router;Navigator.navigationOptions=navigationConfig.navigationOptions;return Navigator;}var _default=createNavigator;exports.default=_default;
|
|
2
2
|
//# sourceMappingURL=createNavigator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createNavigator.js"],"names":["createNavigator","NavigatorView","router","navigationConfig","Navigator","state","descriptors","screenProps","
|
|
1
|
+
{"version":3,"sources":["createNavigator.js"],"names":["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","React","Component","contextType","ThemeContext","navigationOptions"],"mappings":"6sBAAA,oDACA,qEACA,2E,4GAEA,QAASA,CAAAA,eAAT,CAAyBC,aAAzB,CAAwCC,MAAxC,CAAgDC,gBAAhD,CAAkE,IAC1DC,CAAAA,SAD0D,+EAM9D,mBAAYC,KAAZ,CAAmBC,OAAnB,CAA4B,wDAC1B,qGAAMD,KAAN,CAAaC,OAAb,GAEA,MAAKC,KAAL,CAAa,CACXC,WAAW,CAAE,EADF,CAEXC,WAAW,CAAE,MAAKJ,KAAL,CAAWI,WAFb,CAGXC,KAAK,CAAEJ,OAHI,CAIXK,YAAY,CAAEL,OAJH,CAAb,CAH0B,aAS3B,CAf6D,kGAkEzC,CACnB,GAAI,KAAKA,OAAL,GAAiB,KAAKC,KAAL,CAAWI,YAAhC,CAA8C,CAE5C,KAAKC,QAAL,CAAc,CAAED,YAAY,CAAE,KAAKL,OAArB,CAAd,EACD,CACF,CAvE6D,uCAyErD,CACP,MACE,8BAAC,aAAD,0BACM,KAAKD,KADX,EAEE,WAAW,CAAE,KAAKE,KAAL,CAAWE,WAF1B,CAGE,UAAU,CAAE,KAAKJ,KAAL,CAAWQ,UAHzB,CAIE,gBAAgB,CAAEV,gBAJpB,CAKE,WAAW,CAAE,KAAKI,KAAL,CAAWC,WAL1B,kDADF,CASD,CAnF6D,4EAiB9BM,SAjB8B,CAiBnBC,YAjBmB,CAiBL,CACvD,GAAMC,CAAAA,eAAe,CAAGD,YAAY,CAACP,WAArC,CADuD,GAE/CK,CAAAA,UAF+C,CAEnBC,SAFmB,CAE/CD,UAF+C,CAEnCJ,WAFmC,CAEnBK,SAFmB,CAEnCL,WAFmC,CAGvD,uBACEI,UAAU,EAAI,IADhB,CAEE,0LAFF,EAHuD,GAO/CN,CAAAA,KAP+C,CAOrCM,UAPqC,CAO/CN,KAP+C,IAQ/CU,CAAAA,MAR+C,CAQpCV,KARoC,CAQ/CU,MAR+C,CASvD,GAAI,MAAOA,CAAAA,MAAP,GAAkB,WAAtB,CAAmC,CACjC,KAAM,IAAIC,CAAAA,SAAJ,CACJ,oNADI,CAAN,CAGD,CAED,GAAMV,CAAAA,WAAW,CAAGS,MAAM,CAACE,MAAP,CAAc,SAACC,GAAD,CAAMC,KAAN,CAAgB,CAChD,GACEL,eAAe,EACfA,eAAe,CAACK,KAAK,CAACC,GAAP,CADf,EAEAD,KAAK,GAAKL,eAAe,CAACK,KAAK,CAACC,GAAP,CAAf,CAA2Bf,KAFrC,EAGAE,WAAW,GAAKM,YAAY,CAACN,WAH7B,EAIAM,YAAY,CAACJ,YAAb,GAA8BI,YAAY,CAACL,KAL7C,CAME,CACAU,GAAG,CAACC,KAAK,CAACC,GAAP,CAAH,CAAiBN,eAAe,CAACK,KAAK,CAACC,GAAP,CAAhC,CACA,MAAOF,CAAAA,GAAP,CACD,CACD,GAAMG,CAAAA,YAAY,CAAGrB,MAAM,CAACsB,wBAAP,CAAgCC,IAAhC,CACnB,IADmB,CAEnBJ,KAAK,CAACK,SAFa,CAArB,CAIA,GAAMC,CAAAA,eAAe,CAAGd,UAAU,CAACe,kBAAX,CAA8BP,KAAK,CAACC,GAApC,CAAxB,CACA,GAAMO,CAAAA,OAAO,CAAG3B,MAAM,CAAC4B,gBAAP,CACdH,eADc,CAEdlB,WAFc,CAGdM,YAAY,CAACJ,YAHC,CAAhB,CAKAS,GAAG,CAACC,KAAK,CAACC,GAAP,CAAH,CAAiB,CACfA,GAAG,CAAED,KAAK,CAACC,GADI,CAEfC,YAAY,CAAZA,YAFe,CAGfM,OAAO,CAAPA,OAHe,CAIftB,KAAK,CAAEc,KAJQ,CAKfR,UAAU,CAAEc,eALG,CAAjB,CAOA,MAAOP,CAAAA,GAAP,CACD,CA7BmB,CA6BjB,EA7BiB,CAApB,CA+BA,MAAO,CAAEZ,WAAW,CAAXA,WAAF,CAAeC,WAAW,CAAXA,WAAf,CAA4BC,KAAK,CAAEH,KAAK,CAACI,YAAzC,CAAP,CACD,CAhE6D,uBACxCoB,eAAMC,SADkC,EAC1D5B,SAD0D,CAEvD6B,WAFuD,CAEzCC,qBAFyC,CAC1D9B,SAD0D,CAGvDF,MAHuD,CAG9CA,MAH8C,CAC1DE,SAD0D,CAIvD+B,iBAJuD,CAInChC,gBAAgB,CAACgC,iBAJkB,CAsFhE,MAAO/B,CAAAA,SAAP,CACD,C,aAEcJ,e","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"]}
|
|
@@ -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.default=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _getScreenForRouteName=_interopRequireDefault(require("./getScreenForRouteName"));var _createConfigGetter=_interopRequireDefault(require("./createConfigGetter"));var NavigationActions=_interopRequireWildcard(require("../NavigationActions"));var SwitchActions=_interopRequireWildcard(require("./SwitchActions"));var _validateRouteConfigMap=_interopRequireDefault(require("./validateRouteConfigMap"));var _pathUtils=require("./pathUtils");var defaultActionCreators=function defaultActionCreators(){return{};};var _default=function _default(routeConfigs){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};(0,_validateRouteConfigMap.default)(routeConfigs);var order=config.order||Object.keys(routeConfigs);var getCustomActionCreators=config.getCustomActionCreators||defaultActionCreators;var initialRouteParams=config.initialRouteParams;var initialRouteName=config.initialRouteName||order[0];var backBehavior=config.backBehavior||'none';var resetOnBlur=config.hasOwnProperty('resetOnBlur')?config.resetOnBlur:true;var initialRouteIndex=order.indexOf(initialRouteName);if(initialRouteIndex===-1){throw new Error("Invalid initialRouteName '"+initialRouteName+"'."+("Should be one of "+order.map(function(n){return"\""+n+"\"";}).join(', ')));}var childRouters={};order.forEach(function(routeName){childRouters[routeName]=null;var screen=(0,_getScreenForRouteName.default)(routeConfigs,routeName);if(screen.router){childRouters[routeName]=screen.router;}});function getParamsForRoute(routeName,params){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return(0,_objectSpread2.default)({},routeConfig.params,params);}else{return params;}}var _createPathParser=(0,_pathUtils.createPathParser)(childRouters,routeConfigs,config),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;function resetChildRoute(routeName){var initialParams=routeName===initialRouteName?initialRouteParams:undefined;var params=getParamsForRoute(routeName,initialParams);var childRouter=childRouters[routeName];if(childRouter){var childAction=NavigationActions.init();return(0,_objectSpread2.default)({},childRouter.getStateForAction(childAction),{key:routeName,routeName:routeName,params:params});}return{key:routeName,routeName:routeName,params:params};}function getNextState(action,prevState,possibleNextState){function updateNextStateHistory(nextState){if(backBehavior!=='history'){return nextState;}var nextRouteKeyHistory=prevState?prevState.routeKeyHistory:[];if(action.type===NavigationActions.NAVIGATE){nextRouteKeyHistory=(0,_toConsumableArray2.default)(nextRouteKeyHistory);var keyToAdd=nextState.routes[nextState.index].key;nextRouteKeyHistory=nextRouteKeyHistory.filter(function(k){return k!==keyToAdd;});nextRouteKeyHistory.push(keyToAdd);}else if(action.type===NavigationActions.BACK){nextRouteKeyHistory=(0,_toConsumableArray2.default)(nextRouteKeyHistory);nextRouteKeyHistory.pop();}return(0,_objectSpread2.default)({},nextState,{routeKeyHistory:nextRouteKeyHistory});}var nextState=possibleNextState;if(prevState&&prevState.index!==possibleNextState.index&&resetOnBlur){var prevRouteName=prevState.routes[prevState.index].routeName;var nextRoutes=(0,_toConsumableArray2.default)(possibleNextState.routes);nextRoutes[prevState.index]=resetChildRoute(prevRouteName);nextState=(0,_objectSpread2.default)({},possibleNextState,{routes:nextRoutes});}return updateNextStateHistory(nextState);}function getInitialState(){var routes=order.map(resetChildRoute);var initialState={routes:routes,index:initialRouteIndex,isTransitioning:false};if(backBehavior==='history'){var initialKey=routes[initialRouteIndex].key;initialState['routeKeyHistory']=[initialKey];}return initialState;}return{childRouters:childRouters,getActionCreators:function getActionCreators(route,stateKey){return getCustomActionCreators(route,stateKey);},getStateForAction:function getStateForAction(action,inputState){var prevState=inputState?(0,_objectSpread2.default)({},inputState):inputState;var state=inputState||getInitialState();var activeChildIndex=state.index;if(action.type===NavigationActions.INIT){var params=action.params;if(params){state.routes=state.routes.map(function(route){return(0,_objectSpread2.default)({},route,{params:(0,_objectSpread2.default)({},route.params,params,route.routeName===initialRouteName?initialRouteParams:null)});});}}if(action.type===SwitchActions.JUMP_TO&&(action.key==null||action.key===state.key)){var _params=action.params;var _index=state.routes.findIndex(function(route){return route.routeName===action.routeName;});if(_index===-1){throw new Error("There is no route named '"+action.routeName+"' in the navigator with the key '"+action.key+"'.\n"+("Must be one of: "+state.routes.map(function(route){return"'"+route.routeName+"'";}).join(',')));}return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:state.routes.map(function(route,i){return i===_index?(0,_objectSpread2.default)({},route,{params:(0,_objectSpread2.default)({},route.params,_params)}):route;}),index:_index}));}var activeChildLastState=state.routes[state.index];var activeChildRouter=childRouters[order[state.index]];if(activeChildRouter){var activeChildState=activeChildRouter.getStateForAction(action,activeChildLastState);if(!activeChildState&&inputState){return null;}if(activeChildState&&activeChildState!==activeChildLastState){var _routes=(0,_toConsumableArray2.default)(state.routes);_routes[state.index]=activeChildState;return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_routes}));}}var isBackEligible=action.key==null||action.key===activeChildLastState.key;if(action.type===NavigationActions.BACK){if(isBackEligible&&backBehavior==='initialRoute'){activeChildIndex=initialRouteIndex;}else if(isBackEligible&&backBehavior==='order'){activeChildIndex=Math.max(0,activeChildIndex-1);}else if(isBackEligible&&backBehavior==='history'&&state.routeKeyHistory.length>1){var routeKey=state.routeKeyHistory[state.routeKeyHistory.length-2];activeChildIndex=order.indexOf(routeKey);}else{return state;}}var didNavigate=false;if(action.type===NavigationActions.NAVIGATE){didNavigate=!!order.find(function(childId,i){if(childId===action.routeName){activeChildIndex=i;return true;}return false;});if(didNavigate){var childState=state.routes[activeChildIndex];var childRouter=childRouters[action.routeName];var newChildState=childState;if(action.action&&childRouter){var childStateUpdate=childRouter.getStateForAction(action.action,childState);if(childStateUpdate){newChildState=childStateUpdate;}}if(action.params){newChildState=(0,_objectSpread2.default)({},newChildState,{params:(0,_objectSpread2.default)({},newChildState.params||{},action.params)});}if(newChildState!==childState){var _routes2=(0,_toConsumableArray2.default)(state.routes);_routes2[activeChildIndex]=newChildState;var nextState=(0,_objectSpread2.default)({},state,{routes:_routes2,index:activeChildIndex});return getNextState(action,prevState,nextState);}else if(newChildState===childState&&state.index===activeChildIndex&&prevState){return null;}}}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var _params2=(0,_objectSpread2.default)({},lastRoute.params,action.params);var _routes3=(0,_toConsumableArray2.default)(state.routes);_routes3[state.routes.indexOf(lastRoute)]=(0,_objectSpread2.default)({},lastRoute,{params:_params2});return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_routes3}));}}if(activeChildIndex!==state.index){return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{index:activeChildIndex}));}else if(didNavigate&&!inputState){return state;}else if(didNavigate){return(0,_objectSpread2.default)({},state);}var index=state.index;var routes=state.routes;order.find(function(childId,i){var childRouter=childRouters[childId];if(i===index){return false;}var childState=routes[i];if(childRouter){childState=childRouter.getStateForAction(action,childState);}if(!childState){index=i;return true;}if(childState!==routes[i]){routes=(0,_toConsumableArray2.default)(routes);routes[i]=childState;index=i;return true;}return false;});if(action.preserveFocus){index=state.index;}if(index!==state.index||routes!==state.routes){return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{index:index,routes:routes}));}return state;},getComponentForState:function getComponentForState(state){var routeName=state.routes[state.index].routeName;(0,_invariant.default)(routeName,"There is no route defined for index "+state.index+". Check that\n that you passed in a navigation state with a valid tab/screen index.");var childRouter=childRouters[routeName];if(childRouter){return childRouter.getComponentForState(state.routes[state.index]);}return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:(0,_createConfigGetter.default)(routeConfigs,config.defaultNavigationOptions)};};exports.default=_default;
|
|
1
|
+
var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _invariant=_interopRequireDefault(require("../utils/invariant"));var _getScreenForRouteName=_interopRequireDefault(require("./getScreenForRouteName"));var _createConfigGetter=_interopRequireDefault(require("./createConfigGetter"));var NavigationActions=_interopRequireWildcard(require("../NavigationActions"));var SwitchActions=_interopRequireWildcard(require("./SwitchActions"));var _validateRouteConfigMap=_interopRequireDefault(require("./validateRouteConfigMap"));var _pathUtils=require("./pathUtils");var defaultActionCreators=function defaultActionCreators(){return{};};var _default=function _default(routeConfigs){var config=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};(0,_validateRouteConfigMap.default)(routeConfigs);var order=config.order||Object.keys(routeConfigs);var getCustomActionCreators=config.getCustomActionCreators||defaultActionCreators;var initialRouteParams=config.initialRouteParams;var initialRouteName=config.initialRouteName||order[0];var backBehavior=config.backBehavior||'none';var resetOnBlur=config.hasOwnProperty('resetOnBlur')?config.resetOnBlur:true;var initialRouteIndex=order.indexOf(initialRouteName);if(initialRouteIndex===-1){throw new Error("Invalid initialRouteName '"+initialRouteName+"'."+("Should be one of "+order.map(function(n){return"\""+n+"\"";}).join(', ')));}var childRouters={};order.forEach(function(routeName){childRouters[routeName]=null;var screen=(0,_getScreenForRouteName.default)(routeConfigs,routeName);if(screen.router){childRouters[routeName]=screen.router;}});function getParamsForRoute(routeName,params){var routeConfig=routeConfigs[routeName];if(routeConfig&&routeConfig.params){return(0,_objectSpread2.default)({},routeConfig.params,params);}else{return params;}}var _createPathParser=(0,_pathUtils.createPathParser)(childRouters,routeConfigs,config),getPathAndParamsForRoute=_createPathParser.getPathAndParamsForRoute,_getActionForPathAndParams=_createPathParser.getActionForPathAndParams;function resetChildRoute(routeName){var initialParams=routeName===initialRouteName?initialRouteParams:undefined;var params=getParamsForRoute(routeName,initialParams);var childRouter=childRouters[routeName];if(childRouter){var childAction=NavigationActions.init();return(0,_objectSpread2.default)({},childRouter.getStateForAction(childAction),{key:routeName,routeName:routeName,params:params});}return{key:routeName,routeName:routeName,params:params};}function getNextState(action,prevState,possibleNextState){function updateNextStateHistory(nextState){if(backBehavior!=='history'){return nextState;}var nextRouteKeyHistory=prevState?prevState.routeKeyHistory:[];if(action.type===NavigationActions.NAVIGATE){nextRouteKeyHistory=(0,_toConsumableArray2.default)(nextRouteKeyHistory);var keyToAdd=nextState.routes[nextState.index].key;nextRouteKeyHistory=nextRouteKeyHistory.filter(function(k){return k!==keyToAdd;});nextRouteKeyHistory.push(keyToAdd);}else if(action.type===NavigationActions.BACK){nextRouteKeyHistory=(0,_toConsumableArray2.default)(nextRouteKeyHistory);nextRouteKeyHistory.pop();}return(0,_objectSpread2.default)({},nextState,{routeKeyHistory:nextRouteKeyHistory});}var nextState=possibleNextState;if(prevState&&prevState.index!==possibleNextState.index&&resetOnBlur){var prevRouteName=prevState.routes[prevState.index].routeName;var nextRoutes=(0,_toConsumableArray2.default)(possibleNextState.routes);nextRoutes[prevState.index]=resetChildRoute(prevRouteName);nextState=(0,_objectSpread2.default)({},possibleNextState,{routes:nextRoutes});}return updateNextStateHistory(nextState);}function getInitialState(){var routes=order.map(resetChildRoute);var initialState={routes:routes,index:initialRouteIndex,isTransitioning:false};if(backBehavior==='history'){var initialKey=routes[initialRouteIndex].key;initialState['routeKeyHistory']=[initialKey];}return initialState;}return{childRouters:childRouters,getActionCreators:function getActionCreators(route,stateKey){return getCustomActionCreators(route,stateKey);},getStateForAction:function getStateForAction(action,inputState){var prevState=inputState?(0,_objectSpread2.default)({},inputState):inputState;var state=inputState||getInitialState();var activeChildIndex=state.index;if(action.type===NavigationActions.INIT){var params=action.params;if(params){state.routes=state.routes.map(function(route){return(0,_objectSpread2.default)({},route,{params:(0,_objectSpread2.default)({},route.params,params,route.routeName===initialRouteName?initialRouteParams:null)});});}}if(action.type===SwitchActions.JUMP_TO&&(action.key==null||action.key===state.key)){var _params=action.params;var _index=state.routes.findIndex(function(route){return route.routeName===action.routeName;});if(_index===-1){throw new Error("There is no route named '"+action.routeName+"' in the navigator with the key '"+action.key+"'.\n"+("Must be one of: "+state.routes.map(function(route){return"'"+route.routeName+"'";}).join(',')));}return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_params?state.routes.map(function(route,i){return i===_index?(0,_objectSpread2.default)({},route,{params:(0,_objectSpread2.default)({},route.params,_params)}):route;}):state.routes,index:_index}));}var activeChildLastState=state.routes[state.index];var activeChildRouter=childRouters[order[state.index]];if(activeChildRouter){var activeChildState=activeChildRouter.getStateForAction(action,activeChildLastState);if(!activeChildState&&inputState){return null;}if(activeChildState&&activeChildState!==activeChildLastState){var _routes=(0,_toConsumableArray2.default)(state.routes);_routes[state.index]=activeChildState;return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_routes}));}}var isBackEligible=action.key==null||action.key===activeChildLastState.key;if(action.type===NavigationActions.BACK){if(isBackEligible&&backBehavior==='initialRoute'){activeChildIndex=initialRouteIndex;}else if(isBackEligible&&backBehavior==='order'){activeChildIndex=Math.max(0,activeChildIndex-1);}else if(isBackEligible&&backBehavior==='history'&&state.routeKeyHistory.length>1){var routeKey=state.routeKeyHistory[state.routeKeyHistory.length-2];activeChildIndex=order.indexOf(routeKey);}else{return state;}}var didNavigate=false;if(action.type===NavigationActions.NAVIGATE){didNavigate=!!order.find(function(childId,i){if(childId===action.routeName){activeChildIndex=i;return true;}return false;});if(didNavigate){var childState=state.routes[activeChildIndex];var childRouter=childRouters[action.routeName];var newChildState=childState;if(action.action&&childRouter){var childStateUpdate=childRouter.getStateForAction(action.action,childState);if(childStateUpdate){newChildState=childStateUpdate;}}if(action.params){newChildState=(0,_objectSpread2.default)({},newChildState,{params:(0,_objectSpread2.default)({},newChildState.params||{},action.params)});}if(newChildState!==childState){var _routes2=(0,_toConsumableArray2.default)(state.routes);_routes2[activeChildIndex]=newChildState;var nextState=(0,_objectSpread2.default)({},state,{routes:_routes2,index:activeChildIndex});return getNextState(action,prevState,nextState);}else if(newChildState===childState&&state.index===activeChildIndex&&prevState){return null;}}}if(action.type===NavigationActions.SET_PARAMS){var key=action.key;var lastRoute=state.routes.find(function(route){return route.key===key;});if(lastRoute){var _params2=(0,_objectSpread2.default)({},lastRoute.params,action.params);var _routes3=(0,_toConsumableArray2.default)(state.routes);_routes3[state.routes.indexOf(lastRoute)]=(0,_objectSpread2.default)({},lastRoute,{params:_params2});return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{routes:_routes3}));}}if(activeChildIndex!==state.index){return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{index:activeChildIndex}));}else if(didNavigate&&!inputState){return state;}else if(didNavigate){return(0,_objectSpread2.default)({},state);}var index=state.index;var routes=state.routes;order.find(function(childId,i){var childRouter=childRouters[childId];if(i===index){return false;}var childState=routes[i];if(childRouter){childState=childRouter.getStateForAction(action,childState);}if(!childState){index=i;return true;}if(childState!==routes[i]){routes=(0,_toConsumableArray2.default)(routes);routes[i]=childState;index=i;return true;}return false;});if(action.preserveFocus){index=state.index;}if(index!==state.index||routes!==state.routes){return getNextState(action,prevState,(0,_objectSpread2.default)({},state,{index:index,routes:routes}));}return state;},getComponentForState:function getComponentForState(state){var routeName=state.routes[state.index].routeName;(0,_invariant.default)(routeName,"There is no route defined for index "+state.index+". Check that\n that you passed in a navigation state with a valid tab/screen index.");var childRouter=childRouters[routeName];if(childRouter){return childRouter.getComponentForState(state.routes[state.index]);}return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getComponentForRouteName:function getComponentForRouteName(routeName){return(0,_getScreenForRouteName.default)(routeConfigs,routeName);},getPathAndParamsForState:function getPathAndParamsForState(state){var route=state.routes[state.index];return getPathAndParamsForRoute(route);},getActionForPathAndParams:function getActionForPathAndParams(path,params){return _getActionForPathAndParams(path,params);},getScreenOptions:(0,_createConfigGetter.default)(routeConfigs,config.defaultNavigationOptions)};};exports.default=_default;
|
|
2
2
|
//# sourceMappingURL=SwitchRouter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SwitchRouter.js"],"names":["defaultActionCreators","routeConfigs","config","order","Object","keys","getCustomActionCreators","initialRouteParams","initialRouteName","backBehavior","resetOnBlur","hasOwnProperty","initialRouteIndex","indexOf","Error","map","n","join","childRouters","forEach","routeName","screen","router","getParamsForRoute","params","routeConfig","getPathAndParamsForRoute","getActionForPathAndParams","resetChildRoute","initialParams","undefined","childRouter","childAction","NavigationActions","init","getStateForAction","key","getNextState","action","prevState","possibleNextState","updateNextStateHistory","nextState","nextRouteKeyHistory","routeKeyHistory","type","NAVIGATE","keyToAdd","routes","index","filter","k","push","BACK","pop","prevRouteName","nextRoutes","getInitialState","initialState","isTransitioning","initialKey","getActionCreators","route","stateKey","inputState","state","activeChildIndex","INIT","SwitchActions","JUMP_TO","findIndex","i","activeChildLastState","activeChildRouter","activeChildState","isBackEligible","Math","max","length","routeKey","didNavigate","find","childId","childState","newChildState","childStateUpdate","SET_PARAMS","lastRoute","preserveFocus","getComponentForState","getComponentForRouteName","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"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","sourcesContent":["import invariant from '../utils/invariant';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport createConfigGetter from './createConfigGetter';\n\nimport * as NavigationActions from '../NavigationActions';\nimport * as SwitchActions from './SwitchActions';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport { createPathParser } from './pathUtils';\n\nconst defaultActionCreators = () => ({});\n\nexport default (routeConfigs, config = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const order = config.order || Object.keys(routeConfigs);\n\n const getCustomActionCreators =\n config.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteParams = config.initialRouteParams;\n const initialRouteName = config.initialRouteName || order[0];\n const backBehavior = config.backBehavior || 'none';\n const resetOnBlur = config.hasOwnProperty('resetOnBlur')\n ? config.resetOnBlur\n : true;\n\n const initialRouteIndex = order.indexOf(initialRouteName);\n if (initialRouteIndex === -1) {\n throw new Error(\n `Invalid initialRouteName '${initialRouteName}'.` +\n `Should be one of ${order.map(n => `\"${n}\"`).join(', ')}`\n );\n }\n\n const childRouters = {};\n order.forEach(routeName => {\n childRouters[routeName] = null;\n const screen = getScreenForRouteName(routeConfigs, routeName);\n if (screen.router) {\n childRouters[routeName] = screen.router;\n }\n });\n\n function getParamsForRoute(routeName, params) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...params };\n } else {\n return params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, config);\n\n function resetChildRoute(routeName) {\n let initialParams =\n routeName === initialRouteName ? initialRouteParams : undefined;\n // note(brentvatne): merging initialRouteParams *on top* of default params\n // on the route seems incorrect but it's consistent with existing behavior\n // in stackrouter\n let params = getParamsForRoute(routeName, initialParams);\n const childRouter = childRouters[routeName];\n if (childRouter) {\n const childAction = NavigationActions.init();\n return {\n ...childRouter.getStateForAction(childAction),\n key: routeName,\n routeName,\n params,\n };\n }\n return {\n key: routeName,\n routeName,\n params,\n };\n }\n\n function getNextState(action, prevState, possibleNextState) {\n function updateNextStateHistory(nextState) {\n if (backBehavior !== 'history') {\n return nextState;\n }\n let nextRouteKeyHistory = prevState ? prevState.routeKeyHistory : [];\n if (action.type === NavigationActions.NAVIGATE) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n const keyToAdd = nextState.routes[nextState.index].key;\n nextRouteKeyHistory = nextRouteKeyHistory.filter(k => k !== keyToAdd); // dedup\n nextRouteKeyHistory.push(keyToAdd);\n } else if (action.type === NavigationActions.BACK) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n nextRouteKeyHistory.pop();\n }\n return {\n ...nextState,\n routeKeyHistory: nextRouteKeyHistory,\n };\n }\n\n let nextState = possibleNextState;\n if (\n prevState &&\n prevState.index !== possibleNextState.index &&\n resetOnBlur\n ) {\n const prevRouteName = prevState.routes[prevState.index].routeName;\n const nextRoutes = [...possibleNextState.routes];\n nextRoutes[prevState.index] = resetChildRoute(prevRouteName);\n nextState = {\n ...possibleNextState,\n routes: nextRoutes,\n };\n }\n return updateNextStateHistory(nextState);\n }\n\n function getInitialState() {\n const routes = order.map(resetChildRoute);\n const initialState = {\n routes,\n index: initialRouteIndex,\n isTransitioning: false,\n };\n if (backBehavior === 'history') {\n const initialKey = routes[initialRouteIndex].key;\n initialState['routeKeyHistory'] = [initialKey];\n }\n return initialState;\n }\n\n return {\n childRouters,\n\n getActionCreators(route, stateKey) {\n return getCustomActionCreators(route, stateKey);\n },\n\n getStateForAction(action, inputState) {\n let prevState = inputState ? { ...inputState } : inputState;\n let state = inputState || getInitialState();\n let activeChildIndex = state.index;\n\n if (action.type === NavigationActions.INIT) {\n // NOTE(brentvatne): this seems weird... why are we merging these\n // params into child routes?\n // ---------------------------------------------------------------\n // Merge any params from the action into all the child routes\n const { params } = action;\n if (params) {\n state.routes = state.routes.map(route => ({\n ...route,\n params: {\n ...route.params,\n ...params,\n ...(route.routeName === initialRouteName\n ? initialRouteParams\n : null),\n },\n }));\n }\n }\n\n if (\n action.type === SwitchActions.JUMP_TO &&\n (action.key == null || action.key === state.key)\n ) {\n const { params } = action;\n const index = state.routes.findIndex(\n route => route.routeName === action.routeName\n );\n\n if (index === -1) {\n throw new Error(\n `There is no route named '${\n action.routeName\n }' in the navigator with the key '${action.key}'.\\n` +\n `Must be one of: ${state.routes\n .map(route => `'${route.routeName}'`)\n .join(',')}`\n );\n }\n\n return getNextState(action, prevState, {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n ...route,\n params: {\n ...route.params,\n ...params,\n },\n }\n : route\n ),\n index,\n });\n }\n\n // Let the current child handle it\n const activeChildLastState = state.routes[state.index];\n const activeChildRouter = childRouters[order[state.index]];\n if (activeChildRouter) {\n const activeChildState = activeChildRouter.getStateForAction(\n action,\n activeChildLastState\n );\n if (!activeChildState && inputState) {\n return null;\n }\n if (activeChildState && activeChildState !== activeChildLastState) {\n const routes = [...state.routes];\n routes[state.index] = activeChildState;\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n // Handle tab changing. Do this after letting the current tab try to\n // handle the action, to allow inner children to change first\n const isBackEligible =\n action.key == null || action.key === activeChildLastState.key;\n if (action.type === NavigationActions.BACK) {\n if (isBackEligible && backBehavior === 'initialRoute') {\n activeChildIndex = initialRouteIndex;\n } else if (isBackEligible && backBehavior === 'order') {\n activeChildIndex = Math.max(0, activeChildIndex - 1);\n }\n // The history contains current route, so we can only go back\n // if there is more than one item in the history\n else if (\n isBackEligible &&\n backBehavior === 'history' &&\n state.routeKeyHistory.length > 1\n ) {\n const routeKey =\n state.routeKeyHistory[state.routeKeyHistory.length - 2];\n activeChildIndex = order.indexOf(routeKey);\n } else {\n return state;\n }\n }\n\n let didNavigate = false;\n if (action.type === NavigationActions.NAVIGATE) {\n didNavigate = !!order.find((childId, i) => {\n if (childId === action.routeName) {\n activeChildIndex = i;\n return true;\n }\n return false;\n });\n if (didNavigate) {\n const childState = state.routes[activeChildIndex];\n const childRouter = childRouters[action.routeName];\n let newChildState = childState;\n\n if (action.action && childRouter) {\n const childStateUpdate = childRouter.getStateForAction(\n action.action,\n childState\n );\n if (childStateUpdate) {\n newChildState = childStateUpdate;\n }\n }\n\n if (action.params) {\n newChildState = {\n ...newChildState,\n params: {\n ...(newChildState.params || {}),\n ...action.params,\n },\n };\n }\n\n if (newChildState !== childState) {\n const routes = [...state.routes];\n routes[activeChildIndex] = newChildState;\n const nextState = {\n ...state,\n routes,\n index: activeChildIndex,\n };\n return getNextState(action, prevState, nextState);\n } else if (\n newChildState === childState &&\n state.index === activeChildIndex &&\n prevState\n ) {\n return null;\n }\n }\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n if (activeChildIndex !== state.index) {\n return getNextState(action, prevState, {\n ...state,\n index: activeChildIndex,\n });\n } else if (didNavigate && !inputState) {\n return state;\n } else if (didNavigate) {\n return { ...state };\n }\n\n // Let other children handle it and switch to the first child that returns a new state\n let index = state.index;\n let routes = state.routes;\n order.find((childId, i) => {\n const childRouter = childRouters[childId];\n if (i === index) {\n return false;\n }\n let childState = routes[i];\n if (childRouter) {\n childState = childRouter.getStateForAction(action, childState);\n }\n if (!childState) {\n index = i;\n return true;\n }\n if (childState !== routes[i]) {\n routes = [...routes];\n routes[i] = childState;\n index = i;\n return true;\n }\n return false;\n });\n\n // Nested routers can be updated after switching children with actions such as SET_PARAMS\n // and COMPLETE_TRANSITION.\n if (action.preserveFocus) {\n index = state.index;\n }\n\n if (index !== state.index || routes !== state.routes) {\n return getNextState(action, prevState, {\n ...state,\n index,\n routes,\n });\n }\n return state;\n },\n\n getComponentForState(state) {\n const routeName = state.routes[state.index].routeName;\n invariant(\n routeName,\n `There is no route defined for index ${state.index}. Check that\n that you passed in a navigation state with a valid tab/screen index.`\n );\n const childRouter = childRouters[routeName];\n if (childRouter) {\n return childRouter.getComponentForState(state.routes[state.index]);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n config.defaultNavigationOptions\n ),\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["SwitchRouter.js"],"names":["defaultActionCreators","routeConfigs","config","order","Object","keys","getCustomActionCreators","initialRouteParams","initialRouteName","backBehavior","resetOnBlur","hasOwnProperty","initialRouteIndex","indexOf","Error","map","n","join","childRouters","forEach","routeName","screen","router","getParamsForRoute","params","routeConfig","getPathAndParamsForRoute","getActionForPathAndParams","resetChildRoute","initialParams","undefined","childRouter","childAction","NavigationActions","init","getStateForAction","key","getNextState","action","prevState","possibleNextState","updateNextStateHistory","nextState","nextRouteKeyHistory","routeKeyHistory","type","NAVIGATE","keyToAdd","routes","index","filter","k","push","BACK","pop","prevRouteName","nextRoutes","getInitialState","initialState","isTransitioning","initialKey","getActionCreators","route","stateKey","inputState","state","activeChildIndex","INIT","SwitchActions","JUMP_TO","findIndex","i","activeChildLastState","activeChildRouter","activeChildState","isBackEligible","Math","max","length","routeKey","didNavigate","find","childId","childState","newChildState","childStateUpdate","SET_PARAMS","lastRoute","preserveFocus","getComponentForState","getComponentForRouteName","getPathAndParamsForState","path","getScreenOptions","defaultNavigationOptions"],"mappings":"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","sourcesContent":["import invariant from '../utils/invariant';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport createConfigGetter from './createConfigGetter';\n\nimport * as NavigationActions from '../NavigationActions';\nimport * as SwitchActions from './SwitchActions';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport { createPathParser } from './pathUtils';\n\nconst defaultActionCreators = () => ({});\n\nexport default (routeConfigs, config = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n\n const order = config.order || Object.keys(routeConfigs);\n\n const getCustomActionCreators =\n config.getCustomActionCreators || defaultActionCreators;\n\n const initialRouteParams = config.initialRouteParams;\n const initialRouteName = config.initialRouteName || order[0];\n const backBehavior = config.backBehavior || 'none';\n const resetOnBlur = config.hasOwnProperty('resetOnBlur')\n ? config.resetOnBlur\n : true;\n\n const initialRouteIndex = order.indexOf(initialRouteName);\n if (initialRouteIndex === -1) {\n throw new Error(\n `Invalid initialRouteName '${initialRouteName}'.` +\n `Should be one of ${order.map(n => `\"${n}\"`).join(', ')}`\n );\n }\n\n const childRouters = {};\n order.forEach(routeName => {\n childRouters[routeName] = null;\n const screen = getScreenForRouteName(routeConfigs, routeName);\n if (screen.router) {\n childRouters[routeName] = screen.router;\n }\n });\n\n function getParamsForRoute(routeName, params) {\n let routeConfig = routeConfigs[routeName];\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params, ...params };\n } else {\n return params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams,\n } = createPathParser(childRouters, routeConfigs, config);\n\n function resetChildRoute(routeName) {\n let initialParams =\n routeName === initialRouteName ? initialRouteParams : undefined;\n // note(brentvatne): merging initialRouteParams *on top* of default params\n // on the route seems incorrect but it's consistent with existing behavior\n // in stackrouter\n let params = getParamsForRoute(routeName, initialParams);\n const childRouter = childRouters[routeName];\n if (childRouter) {\n const childAction = NavigationActions.init();\n return {\n ...childRouter.getStateForAction(childAction),\n key: routeName,\n routeName,\n params,\n };\n }\n return {\n key: routeName,\n routeName,\n params,\n };\n }\n\n function getNextState(action, prevState, possibleNextState) {\n function updateNextStateHistory(nextState) {\n if (backBehavior !== 'history') {\n return nextState;\n }\n let nextRouteKeyHistory = prevState ? prevState.routeKeyHistory : [];\n if (action.type === NavigationActions.NAVIGATE) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n const keyToAdd = nextState.routes[nextState.index].key;\n nextRouteKeyHistory = nextRouteKeyHistory.filter(k => k !== keyToAdd); // dedup\n nextRouteKeyHistory.push(keyToAdd);\n } else if (action.type === NavigationActions.BACK) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n nextRouteKeyHistory.pop();\n }\n return {\n ...nextState,\n routeKeyHistory: nextRouteKeyHistory,\n };\n }\n\n let nextState = possibleNextState;\n if (\n prevState &&\n prevState.index !== possibleNextState.index &&\n resetOnBlur\n ) {\n const prevRouteName = prevState.routes[prevState.index].routeName;\n const nextRoutes = [...possibleNextState.routes];\n nextRoutes[prevState.index] = resetChildRoute(prevRouteName);\n nextState = {\n ...possibleNextState,\n routes: nextRoutes,\n };\n }\n return updateNextStateHistory(nextState);\n }\n\n function getInitialState() {\n const routes = order.map(resetChildRoute);\n const initialState = {\n routes,\n index: initialRouteIndex,\n isTransitioning: false,\n };\n if (backBehavior === 'history') {\n const initialKey = routes[initialRouteIndex].key;\n initialState['routeKeyHistory'] = [initialKey];\n }\n return initialState;\n }\n\n return {\n childRouters,\n\n getActionCreators(route, stateKey) {\n return getCustomActionCreators(route, stateKey);\n },\n\n getStateForAction(action, inputState) {\n let prevState = inputState ? { ...inputState } : inputState;\n let state = inputState || getInitialState();\n let activeChildIndex = state.index;\n\n if (action.type === NavigationActions.INIT) {\n // NOTE(brentvatne): this seems weird... why are we merging these\n // params into child routes?\n // ---------------------------------------------------------------\n // Merge any params from the action into all the child routes\n const { params } = action;\n if (params) {\n state.routes = state.routes.map(route => ({\n ...route,\n params: {\n ...route.params,\n ...params,\n ...(route.routeName === initialRouteName\n ? initialRouteParams\n : null),\n },\n }));\n }\n }\n\n if (\n action.type === SwitchActions.JUMP_TO &&\n (action.key == null || action.key === state.key)\n ) {\n const { params } = action;\n const index = state.routes.findIndex(\n route => route.routeName === action.routeName\n );\n\n if (index === -1) {\n throw new Error(\n `There is no route named '${\n action.routeName\n }' in the navigator with the key '${action.key}'.\\n` +\n `Must be one of: ${state.routes\n .map(route => `'${route.routeName}'`)\n .join(',')}`\n );\n }\n\n return getNextState(action, prevState, {\n ...state,\n routes: params\n ? state.routes.map((route, i) =>\n i === index\n ? {\n ...route,\n params: {\n ...route.params,\n ...params,\n },\n }\n : route\n )\n : state.routes,\n index,\n });\n }\n\n // Let the current child handle it\n const activeChildLastState = state.routes[state.index];\n const activeChildRouter = childRouters[order[state.index]];\n if (activeChildRouter) {\n const activeChildState = activeChildRouter.getStateForAction(\n action,\n activeChildLastState\n );\n if (!activeChildState && inputState) {\n return null;\n }\n if (activeChildState && activeChildState !== activeChildLastState) {\n const routes = [...state.routes];\n routes[state.index] = activeChildState;\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n // Handle tab changing. Do this after letting the current tab try to\n // handle the action, to allow inner children to change first\n const isBackEligible =\n action.key == null || action.key === activeChildLastState.key;\n if (action.type === NavigationActions.BACK) {\n if (isBackEligible && backBehavior === 'initialRoute') {\n activeChildIndex = initialRouteIndex;\n } else if (isBackEligible && backBehavior === 'order') {\n activeChildIndex = Math.max(0, activeChildIndex - 1);\n }\n // The history contains current route, so we can only go back\n // if there is more than one item in the history\n else if (\n isBackEligible &&\n backBehavior === 'history' &&\n state.routeKeyHistory.length > 1\n ) {\n const routeKey =\n state.routeKeyHistory[state.routeKeyHistory.length - 2];\n activeChildIndex = order.indexOf(routeKey);\n } else {\n return state;\n }\n }\n\n let didNavigate = false;\n if (action.type === NavigationActions.NAVIGATE) {\n didNavigate = !!order.find((childId, i) => {\n if (childId === action.routeName) {\n activeChildIndex = i;\n return true;\n }\n return false;\n });\n if (didNavigate) {\n const childState = state.routes[activeChildIndex];\n const childRouter = childRouters[action.routeName];\n let newChildState = childState;\n\n if (action.action && childRouter) {\n const childStateUpdate = childRouter.getStateForAction(\n action.action,\n childState\n );\n if (childStateUpdate) {\n newChildState = childStateUpdate;\n }\n }\n\n if (action.params) {\n newChildState = {\n ...newChildState,\n params: {\n ...(newChildState.params || {}),\n ...action.params,\n },\n };\n }\n\n if (newChildState !== childState) {\n const routes = [...state.routes];\n routes[activeChildIndex] = newChildState;\n const nextState = {\n ...state,\n routes,\n index: activeChildIndex,\n };\n return getNextState(action, prevState, nextState);\n } else if (\n newChildState === childState &&\n state.index === activeChildIndex &&\n prevState\n ) {\n return null;\n }\n }\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n if (lastRoute) {\n const params = {\n ...lastRoute.params,\n ...action.params,\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = {\n ...lastRoute,\n params,\n };\n return getNextState(action, prevState, {\n ...state,\n routes,\n });\n }\n }\n\n if (activeChildIndex !== state.index) {\n return getNextState(action, prevState, {\n ...state,\n index: activeChildIndex,\n });\n } else if (didNavigate && !inputState) {\n return state;\n } else if (didNavigate) {\n return { ...state };\n }\n\n // Let other children handle it and switch to the first child that returns a new state\n let index = state.index;\n let routes = state.routes;\n order.find((childId, i) => {\n const childRouter = childRouters[childId];\n if (i === index) {\n return false;\n }\n let childState = routes[i];\n if (childRouter) {\n childState = childRouter.getStateForAction(action, childState);\n }\n if (!childState) {\n index = i;\n return true;\n }\n if (childState !== routes[i]) {\n routes = [...routes];\n routes[i] = childState;\n index = i;\n return true;\n }\n return false;\n });\n\n // Nested routers can be updated after switching children with actions such as SET_PARAMS\n // and COMPLETE_TRANSITION.\n if (action.preserveFocus) {\n index = state.index;\n }\n\n if (index !== state.index || routes !== state.routes) {\n return getNextState(action, prevState, {\n ...state,\n index,\n routes,\n });\n }\n return state;\n },\n\n getComponentForState(state) {\n const routeName = state.routes[state.index].routeName;\n invariant(\n routeName,\n `There is no route defined for index ${state.index}. Check that\n that you passed in a navigation state with a valid tab/screen index.`\n );\n const childRouter = childRouters[routeName];\n if (childRouter) {\n return childRouter.getComponentForState(state.routes[state.index]);\n }\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(\n routeConfigs,\n config.defaultNavigationOptions\n ),\n };\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");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 _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/PathHandling-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var performRouterTest=function performRouterTest(createTestRouter){var ListScreen=function ListScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ProfileNavigator=function ProfileNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:18}});};ProfileNavigator.router=(0,_StackRouter.default)({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:26}});};MainNavigator.router=(0,_StackRouter.default)({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};var AuthNavigator=function AuthNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:36}});};AuthNavigator.router=(0,_StackRouter.default)({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:43}});};var FooNavigator=function(_React$Component){(0,_inherits2.default)(FooNavigator,_React$Component);function FooNavigator(){(0,_classCallCheck2.default)(this,FooNavigator);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooNavigator).apply(this,arguments));}(0,_createClass2.default)(FooNavigator,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:53}});}}]);return FooNavigator;}(_react.default.Component);FooNavigator.router=(0,_StackRouter.default)({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:57}});};var testRouter=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});it('Handles empty URIs with empty action',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:84}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:87}});}}},{initialRouteName:'Bar',initialRouteParams:{foo:42}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var state=router.getStateForAction(action||NavigationActions.init());expect(state.routes[state.index]).toEqual(expect.objectContaining({routeName:'Bar',params:{foo:42}}));});it('Handles paths with several params',function(){var router=createTestRouter({Person:{path:'people/:person',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:107}});}},Task:{path:'people/:person/tasks/:task',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:111}});}},ThingA:{path:'things/:good',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});}},Thing:{path:'things/:good/:thing',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:119}});}}});var action=router.getActionForPathAndParams('people/brent/tasks/everything');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Task',params:{person:'brent',task:'everything'}});var action1=router.getActionForPathAndParams('people/lucy');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Person',params:{person:'lucy'}});var action2=router.getActionForPathAndParams('things/foo/bar');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Thing',params:{good:'foo',thing:'bar'}});var action3=router.getActionForPathAndParams('things/foo');expect(action3).toEqual({type:NavigationActions.NAVIGATE,routeName:'ThingA',params:{good:'foo'}});});it('Handles empty path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:156}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:159}});},path:''}});var action=router.getActionForPathAndParams('');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{}});});it('Handles wildcard path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:174}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:177}});},path:':something'}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var action1=router.getActionForPathAndParams('Foo');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Foo',params:{}});var action2=router.getActionForPathAndParams('asdf');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{something:'asdf'}});});it('Null path behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:199}});};var router=createTestRouter({Bar:{screen:ScreenA},Foo:{path:null,screen:ScreenA},Baz:{path:'',screen:ScreenA}});var action0=router.getActionForPathAndParams('test/random',{});expect(action0).toBe(null);var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('Baz');var state1=router.getStateForAction(action1);expect(state1.routes[state1.index].routeName).toBe('Baz');});it('Multiple null path sub routers path behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:223}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:224}});};ScreenB.router=createTestRouter({Foo:ScreenA});var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:228}});};ScreenC.router=createTestRouter({Bar:{path:'bar/:id',screen:ScreenA},Empty:{path:'',screen:ScreenA}});var router=createTestRouter({A:{screen:ScreenA},B:{path:null,screen:ScreenB},C:{path:null,screen:ScreenC}});var action0=router.getActionForPathAndParams('Foo',{});expect(action0.routeName).toBe('B');expect(action0.action.routeName).toBe('Foo');var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('C');expect(action1.action.routeName).toBe('Empty');var action2=router.getActionForPathAndParams('A',{});expect(action2.routeName).toBe('A');var action3=router.getActionForPathAndParams('bar/asdf',{});expect(action3.routeName).toBe('C');expect(action3.action.routeName).toBe('Bar');expect(action3.action.params.id).toBe('asdf');});it('Null and empty string path sub routers behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:270}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:271}});};ScreenB.router=createTestRouter({Foo:ScreenA,Baz:{screen:ScreenA,path:''}});var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:279}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA,Baz:{screen:ScreenA,path:''}});var router=createTestRouter({B:{path:null,screen:ScreenB},C:{path:'',screen:ScreenC}});var action0=router.getActionForPathAndParams('',{});expect(action0.routeName).toBe('C');expect(action0.action.routeName).toBe('Baz');var action1=router.getActionForPathAndParams('Foo',{});expect(action1.routeName).toBe('B');expect(action1.action.routeName).toBe('Foo');var action2=router.getActionForPathAndParams('Bar',{});expect(action2.routeName).toBe('C');expect(action2.action.routeName).toBe('Bar');var action3=router.getActionForPathAndParams('unknown',{});expect(action3).toBe(null);});it('Empty path acts as wildcard for nested router',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:315}});};var Foo=function Foo(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:316}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:317}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA});Foo.router=createTestRouter({Quo:ScreenA,Qux:{screen:ScreenC,path:''}});var router=createTestRouter({Bar:{screen:ScreenA},Foo:Foo});var action0=router.getActionForPathAndParams('Foo/Bar',{});expect(action0.routeName).toBe('Foo');expect(action0.action.routeName).toBe('Qux');expect(action0.action.action.routeName).toBe('Bar');});it('Gets deep path with pure wildcard match',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:342}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:343}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:344}});};ScreenA.router=createTestRouter({Boo:{path:'boo',screen:ScreenC},Baz:{path:'baz/:bazId',screen:ScreenB}});ScreenC.router=createTestRouter({Boo2:{path:'',screen:ScreenB}});var router=createTestRouter({Foo:{path:null,screen:ScreenA},Bar:{screen:ScreenB}});{var state={index:0,routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('baz/321');expect(params.id).toEqual('123');}{var _state={index:0,routes:[{index:0,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar2=router.getPathAndParamsForState(_state),_path=_router$getPathAndPar2.path,_params=_router$getPathAndPar2.params;expect(_path).toEqual('boo');expect(_params).toEqual({id:'123'});}});it('URI encoded string get passed to deep link',function(){var uri='people/2018%2F02%2F07';var action=testRouter.getActionForPathAndParams(uri);expect(action).toEqual({routeName:'person',params:{id:'2018/02/07'},type:NavigationActions.NAVIGATE});var malformedUri='people/%E0%A4%A';var action2=testRouter.getActionForPathAndParams(malformedUri);expect(action2).toEqual({routeName:'person',params:{id:'%E0%A4%A'},type:NavigationActions.NAVIGATE});});it('URI encoded path param gets parsed and correctly printed',function(){var action=testRouter.getActionForPathAndParams('people/Henry%20L');expect(action).toEqual({routeName:'person',params:{id:'Henry L'},type:NavigationActions.NAVIGATE});var s=testRouter.getStateForAction(action);var out=testRouter.getPathAndParamsForState(s);expect(out.path).toEqual('people/Henry%20L');expect(out.params).toEqual({});});it('Querystring params get passed to nested deep link',function(){var action=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'test',foo:'bar'});expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});var action2=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'',foo:'bar'});expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});});it('paths option on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator}},{paths:{baz:'overridden'}});var action=router.getActionForPathAndParams('overridden',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});it('paths option set as null on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:'bazPath',screen:FooNavigator}},{paths:{baz:null}});var action=router.getActionForPathAndParams('b/noBaz',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});};describe('Path handling for stack router',function(){performRouterTest(_StackRouter.default);});describe('Path handling for switch router',function(){performRouterTest(_SwitchRouter.default);});it('Handles nested switch routers',function(){var AScreen=function AScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:567}});};var DocsNavigator=function DocsNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:568}});};DocsNavigator.router=(0,_SwitchRouter.default)({A:AScreen,B:AScreen,C:AScreen});DocsNavigator.path='docs';var router=(0,_SwitchRouter.default)({Docs:DocsNavigator,D:AScreen});var action=router.getActionForPathAndParams('docs/B',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('Docs');expect(action.action.type).toEqual(NavigationActions.NAVIGATE);expect(action.action.routeName).toEqual('B');});var performRouteNameAsPathDisabledTest=function performRouteNameAsPathDisabledTest(createTestRouter){var BScreen=function BScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:588}});};var NestedNavigator=function NestedNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:589}});};NestedNavigator.router=createTestRouter({B:{screen:BScreen,path:'baz'}});var router=createTestRouter({A:NestedNavigator},{disableRouteNamePaths:true});it('disableRouteNamePaths option on router prevent the default path to be the routeName',function(){var action=router.getActionForPathAndParams('baz',{});expect(action.routeName).toBe('A');expect(action.action.routeName).toBe('B');});};describe('Stack router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_StackRouter.default);});describe('Switch router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_SwitchRouter.default);});describe('Tab router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_TabRouter.default);});
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");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 _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/PathHandling-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var performRouterTest=function performRouterTest(createTestRouter){var ListScreen=function ListScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:16}});};var ProfileNavigator=function ProfileNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:18}});};ProfileNavigator.router=(0,_StackRouter.default)({list:{path:'list/:id',screen:ListScreen}});var MainNavigator=function MainNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:26}});};MainNavigator.router=(0,_StackRouter.default)({profile:{path:'p/:id',screen:ProfileNavigator}});var LoginScreen=function LoginScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});};var AuthNavigator=function AuthNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:36}});};AuthNavigator.router=(0,_StackRouter.default)({login:{screen:LoginScreen}});var BarScreen=function BarScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:43}});};var FooNavigator=function(_React$Component){(0,_inherits2.default)(FooNavigator,_React$Component);function FooNavigator(){(0,_classCallCheck2.default)(this,FooNavigator);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooNavigator).apply(this,arguments));}(0,_createClass2.default)(FooNavigator,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:53}});}}]);return FooNavigator;}(_react.default.Component);FooNavigator.router=(0,_StackRouter.default)({bar:{path:'b/:barThing',screen:BarScreen}});var PersonScreen=function PersonScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:57}});};var testRouter=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator},auth:{screen:AuthNavigator},person:{path:'people/:id',screen:PersonScreen},foo:{path:'fo/:fooThing',screen:FooNavigator}});it('Handles empty URIs with empty action',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:84}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:87}});}}},{initialRouteName:'Bar',initialRouteParams:{foo:42}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var state=router.getStateForAction(action||NavigationActions.init());expect(state.routes[state.index]).toEqual(expect.objectContaining({routeName:'Bar',params:{foo:42}}));});it('Handles paths with several params',function(){var router=createTestRouter({Person:{path:'people/:person',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:107}});}},Task:{path:'people/:person/tasks/:task',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:111}});}},ThingA:{path:'things/:good',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:115}});}},Thing:{path:'things/:good/:thing',screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:119}});}}});var action=router.getActionForPathAndParams('people/brent/tasks/everything');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Task',params:{person:'brent',task:'everything'}});var action1=router.getActionForPathAndParams('people/lucy');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Person',params:{person:'lucy'}});var action2=router.getActionForPathAndParams('things/foo/bar');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Thing',params:{good:'foo',thing:'bar'}});var action3=router.getActionForPathAndParams('things/foo');expect(action3).toEqual({type:NavigationActions.NAVIGATE,routeName:'ThingA',params:{good:'foo'}});});it('Handles empty path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:156}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:159}});},path:''}});var action=router.getActionForPathAndParams('');expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{}});});it('Handles wildcard path configuration',function(){var router=createTestRouter({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:174}});}},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:177}});},path:':something'}});var action=router.getActionForPathAndParams('');expect(action).toEqual(null);var action1=router.getActionForPathAndParams('Foo');expect(action1).toEqual({type:NavigationActions.NAVIGATE,routeName:'Foo',params:{}});var action2=router.getActionForPathAndParams('asdf');expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'Bar',params:{something:'asdf'}});});it('Null path behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:199}});};var router=createTestRouter({Bar:{screen:ScreenA},Foo:{path:null,screen:ScreenA},Baz:{path:'',screen:ScreenA}});var action0=router.getActionForPathAndParams('test/random',{});expect(action0).toBe(null);var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('Baz');var state1=router.getStateForAction(action1);expect(state1.routes[state1.index].routeName).toBe('Baz');});it('Multiple null path sub routers path behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:223}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:224}});};ScreenB.router=createTestRouter({Foo:ScreenA});var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:228}});};ScreenC.router=createTestRouter({Bar:{path:'bar/:id',screen:ScreenA},Empty:{path:'',screen:ScreenA}});var router=createTestRouter({A:{screen:ScreenA},B:{path:null,screen:ScreenB},C:{path:null,screen:ScreenC}});var action0=router.getActionForPathAndParams('Foo',{});expect(action0.routeName).toBe('B');expect(action0.action.routeName).toBe('Foo');var action1=router.getActionForPathAndParams('',{});expect(action1.routeName).toBe('C');expect(action1.action.routeName).toBe('Empty');var action2=router.getActionForPathAndParams('A',{});expect(action2.routeName).toBe('A');var action3=router.getActionForPathAndParams('bar/asdf',{});expect(action3.routeName).toBe('C');expect(action3.action.routeName).toBe('Bar');expect(action3.action.params.id).toBe('asdf');});it('Null and empty string path sub routers behavior',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:270}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:271}});};ScreenB.router=createTestRouter({Foo:ScreenA,Baz:{screen:ScreenA,path:''}});var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:279}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA,Baz:{screen:ScreenA,path:''}});var router=createTestRouter({B:{path:null,screen:ScreenB},C:{path:'',screen:ScreenC}});var action0=router.getActionForPathAndParams('',{});expect(action0.routeName).toBe('C');expect(action0.action.routeName).toBe('Baz');var action1=router.getActionForPathAndParams('Foo',{});expect(action1.routeName).toBe('B');expect(action1.action.routeName).toBe('Foo');var action2=router.getActionForPathAndParams('Bar',{});expect(action2.routeName).toBe('C');expect(action2.action.routeName).toBe('Bar');var action3=router.getActionForPathAndParams('unknown',{});expect(action3).toBe(null);});it('Empty path acts as wildcard for nested router',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:315}});};var Foo=function Foo(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:316}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:317}});};ScreenC.router=createTestRouter({Boo:ScreenA,Bar:ScreenA});Foo.router=createTestRouter({Quo:ScreenA,Qux:{screen:ScreenC,path:''}});var router=createTestRouter({Bar:{screen:ScreenA},Foo:Foo});var action0=router.getActionForPathAndParams('Foo/Bar',{});expect(action0.routeName).toBe('Foo');expect(action0.action.routeName).toBe('Qux');expect(action0.action.action.routeName).toBe('Bar');});it('Gets deep path with pure wildcard match',function(){var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:342}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:343}});};var ScreenC=function ScreenC(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:344}});};ScreenA.router=createTestRouter({Boo:{path:'boo',screen:ScreenC},Baz:{path:'baz/:bazId',screen:ScreenB}});ScreenC.router=createTestRouter({Boo2:{path:'',screen:ScreenB}});var router=createTestRouter({Foo:{path:null,screen:ScreenA},Bar:{screen:ScreenB}});{var state={index:0,routes:[{index:1,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar=router.getPathAndParamsForState(state),path=_router$getPathAndPar.path,params=_router$getPathAndPar.params;expect(path).toEqual('baz/321');expect(params.id).toEqual('123');}{var _state={index:0,routes:[{index:0,key:'Foo',routeName:'Foo',params:{id:'123'},routes:[{index:0,key:'Boo',routeName:'Boo',routes:[{key:'Boo2',routeName:'Boo2'}]},{key:'Baz',routeName:'Baz',params:{bazId:'321'}}]},{key:'Bar',routeName:'Bar'}]};var _router$getPathAndPar2=router.getPathAndParamsForState(_state),_path=_router$getPathAndPar2.path,_params=_router$getPathAndPar2.params;expect(_path).toEqual('boo');expect(_params).toEqual({id:'123'});}});it('URI encoded string get passed to deep link',function(){var uri='people/2018%2F02%2F07';var action=testRouter.getActionForPathAndParams(uri);expect(action).toEqual({routeName:'person',params:{id:'2018/02/07'},type:NavigationActions.NAVIGATE});var malformedUri='people/%E0%A4%A';var action2=testRouter.getActionForPathAndParams(malformedUri);expect(action2).toEqual({routeName:'person',params:{id:'%E0%A4%A'},type:NavigationActions.NAVIGATE});});it('URI encoded path param gets parsed and correctly printed',function(){var action=testRouter.getActionForPathAndParams('people/Henry%20L');expect(action).toEqual({routeName:'person',params:{id:'Henry L'},type:NavigationActions.NAVIGATE});var s=testRouter.getStateForAction(action);var out=testRouter.getPathAndParamsForState(s);expect(out.path).toEqual('people/Henry%20L');expect(out.params).toEqual({});});it('Querystring params get passed to nested deep link',function(){var action=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'test',foo:'bar'});expect(action).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'test',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'test',foo:'bar'}}}});var action2=testRouter.getActionForPathAndParams('main/p/4/list/10259959195',{code:'',foo:'bar'});expect(action2).toEqual({type:NavigationActions.NAVIGATE,routeName:'main',params:{code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'profile',params:{id:'4',code:'',foo:'bar'},action:{type:NavigationActions.NAVIGATE,routeName:'list',params:{id:'10259959195',code:'',foo:'bar'}}}});});it('paths option on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:null,screen:FooNavigator}},{paths:{baz:'overridden'}});var action=router.getActionForPathAndParams('overridden',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});it('paths option set as null on router overrides path from route config',function(){var router=createTestRouter({main:{screen:MainNavigator},baz:{path:'bazPath',screen:FooNavigator}},{paths:{baz:null}});var action=router.getActionForPathAndParams('b/noBaz',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('baz');});};describe('Path handling for stack router',function(){performRouterTest(_StackRouter.default);});describe('Path handling for switch router',function(){performRouterTest(_SwitchRouter.default);});it('Handles nested switch routers',function(){var AScreen=function AScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:567}});};var DocsNavigator=function DocsNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:568}});};DocsNavigator.router=(0,_SwitchRouter.default)({A:AScreen,B:AScreen,C:AScreen});DocsNavigator.path='docs';var router=(0,_SwitchRouter.default)({Docs:DocsNavigator,D:AScreen});var action=router.getActionForPathAndParams('docs/B',{});expect(action.type).toEqual(NavigationActions.NAVIGATE);expect(action.routeName).toEqual('Docs');expect(action.action.type).toEqual(NavigationActions.NAVIGATE);expect(action.action.routeName).toEqual('B');});var performRouteNameAsPathDisabledTest=function performRouteNameAsPathDisabledTest(createTestRouter){var BScreen=function BScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:588}});};var NestedNavigator=function NestedNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:589}});};NestedNavigator.router=createTestRouter({B:{screen:BScreen,path:'baz'}});var router=createTestRouter({A:NestedNavigator},{disableRouteNamePaths:true});it('disableRouteNamePaths option on router prevent the default path to be the routeName',function(){var action=router.getActionForPathAndParams('baz',{});expect(action.routeName).toBe('A');expect(action.action.routeName).toBe('B');});};describe('Stack router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_StackRouter.default);});describe('Switch router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_SwitchRouter.default);});describe('Tab router handles disableRouteNamePaths',function(){performRouteNameAsPathDisabledTest(_TabRouter.default);});
|
|
2
2
|
//# sourceMappingURL=PathHandling-test.js.map
|