Skip to content

Instantly share code, notes, and snippets.

@MosesEsan
Last active May 17, 2020 15:21
Show Gist options
  • Save MosesEsan/41d3918160ecf0e75169024eb18ea381 to your computer and use it in GitHub Desktop.
Save MosesEsan/41d3918160ecf0e75169024eb18ea381 to your computer and use it in GitHub Desktop.
Event App Router
import React from 'react';
import {createAppContainer, createSwitchNavigator} from 'react-navigation';
import {createBottomTabNavigator} from 'react-navigation-tabs';
import {createStackNavigator} from 'react-navigation-stack';
import {Icon} from 'react-native-elements';
//IMPORT ROUTES AND PROVIDER
import AuthLoading from "../app/scenes/auth/AuthLoading";
import AuthProvider from "../app/providers/auth";
import AuthStack from "../app/routes/auth";
import {HomeProvider, HomeStack} from "../app/routes/home";
import {EventProvider, EventStack, AddEditEventScreen, SearchScreen} from "./routes/event";
const TabNavigator = createBottomTabNavigator(
{
Home: HomeStack,
Search: SearchScreen,
Events: {
screen: EventStack,
navigationOptions: {
title: 'Events',
},
},
},
{
defaultNavigationOptions: ({navigation}) => ({
tabBarIcon: ({focused, horizontal, tintColor}) => {
const {routeName} = navigation.state;
let iconName, iconType = 'ionicon';
if (routeName === 'Home') {
iconName = `home`;
iconType = `entypo`;
} else if (routeName === 'Search') {
iconName = `search`;
iconType = `font-awesome`;
} else if (routeName === 'Events') {
iconName = `heart`;
iconType = `font-awesome`;
}
return <Icon type={iconType} name={iconName} size={22} color={tintColor}/>
}
}),
tabBarOptions: {
activeTintColor: "#0a163d",
inactiveTintColor: 'gray',
},
}
);
//MAIN STACK
const MainStack = createSwitchNavigator(
{
Loading: AuthLoading,
Auth: AuthStack,
App: TabNavigator
},
{initialRouteName: 'Loading'}
);
//ROOT STACK
const RootStack = createStackNavigator(
{
Main: MainStack,
AddEditEvent: AddEditEventScreen,
},
{
mode: 'modal',
headerMode: 'none'
}
);
const Navigator = createAppContainer(RootStack);
export default function Router() {
return (
<AuthProvider>
<HomeProvider>
<EventProvider>
<Navigator/>
</EventProvider>
</HomeProvider>
</AuthProvider>
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment