From 5f4611d65e40eae3ca6191a15f68d69ea5a1c4cb Mon Sep 17 00:00:00 2001 From: Kirill Rogovoy Date: Tue, 20 Jul 2021 21:24:52 +0300 Subject: WIP --- app_expo/navigators/main-navigator.tsx | 59 ++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 app_expo/navigators/main-navigator.tsx (limited to 'app_expo/navigators/main-navigator.tsx') diff --git a/app_expo/navigators/main-navigator.tsx b/app_expo/navigators/main-navigator.tsx new file mode 100644 index 0000000..095a9bf --- /dev/null +++ b/app_expo/navigators/main-navigator.tsx @@ -0,0 +1,59 @@ +/** + * This is the navigator you will modify to display the logged-in screens of your app. + * You can use RootNavigator to also display an auth flow or other user flows. + * + * You'll likely spend most of your time in this file. + */ +import React from 'react' +import { createStackNavigator } from '@react-navigation/stack' +import { WelcomeScreen, DemoScreen, DemoListScreen, GraphScreen } from '../screens' + +/** + * This type allows TypeScript to know what routes are defined in this navigator + * as well as what properties (if any) they might take when navigating to them. + * + * If no params are allowed, pass through `undefined`. Generally speaking, we + * recommend using your MobX-State-Tree store(s) to keep application state + * rather than passing state through navigation params. + * + * For more information, see this documentation: + * https://reactnavigation.org/docs/params/ + * https://reactnavigation.org/docs/typescript#type-checking-the-navigator + */ +export type PrimaryParamList = { + welcome: undefined + demo: undefined + demoList: undefined + graph: undefined +} + +// Documentation: https://reactnavigation.org/docs/stack-navigator/ +const Stack = createStackNavigator() + +export function MainNavigator() { + return ( + + + + ) +} + +/** + + + + * A list of routes from which we're allowed to leave the app when + * the user presses the back button on Android. + * + * Anything not on this list will be a standard `back` action in + * react-navigation. + * + * `canExit` is used in ./app/app.tsx in the `useBackButtonHandler` hook. + */ +const exitRoutes = ['welcome'] +export const canExit = (routeName: string) => exitRoutes.includes(routeName) -- cgit v1.2.3