Files
Eventment/app/router.js
Mike Fitzpatrick f0460a1b76 - more
2019-08-12 17:44:01 -04:00

195 lines
5.3 KiB
JavaScript

import React, { Component } from 'react';
import { Dimensions, Platform } from 'react-native';
import { createBottomTabNavigator, createStackNavigator } from 'react-navigation';
import { Icon } from 'react-native-elements';
import AppHeader from './components/AppHeader/AppHeader.container.js';
import Auction from './screens/Auction.container.js';
import Checkout from './screens/Checkout.js';
import Event from './screens/Event.container.js';
import Events from './screens/Events.container.js';
import ImageDetail from './screens/ImageDetail.js';
import Item from './screens/Item.js';
import Marketplace from './screens/Marketplace.js';
import Profile from './screens/Profile.container.js';
import Register from './screens/Register.container.js';
import SignInOrRegister from './screens/SignInOrRegister.js';
const tabBarVisibility = ({ navigation }) => {
let tabBarVisible = true;
if (navigation.state.index > 0) {
tabBarVisible = false;
}
return {
tabBarVisible,
};
};
export const SignInOrRegisterStack = createStackNavigator({
SignInOrRegister: {
screen: SignInOrRegister,
navigationOptions: ({ navigation }) => ({
header: null,
tabBarVisible: false,
gesturesEnabled: false,
}),
},
Register: {
screen: Register,
navigationOptions: ({ navigation }) => ({
header: null,
tabBarVisible: false,
gesturesEnabled: false,
}),
},
});
SignInOrRegisterStack.navigationOptions = tabBarVisibility;
export const ProfileStack = createStackNavigator({
Profile: {
screen: Profile,
navigationOptions: ({ navigation }) => ({
header: <AppHeader navigation={navigation} />,
}),
},
SignInOrRegister: {
screen: SignInOrRegister,
navigationOptions: ({ navigation }) => ({
header: null,
gesturesEnabled: false,
}),
},
Register: {
screen: Register,
navigationOptions: ({ navigation }) => ({
header: null,
gesturesEnabled: false,
}),
},
});
ProfileStack.navigationOptions = tabBarVisibility;
export const AuctionStack = createStackNavigator({
Auction: {
screen: Auction,
navigationOptions: ({ navigation }) => ({
header: <AppHeader navigation={navigation} />,
}),
},
Item: {
screen: Item,
navigationOptions: ({ navigation }) => ({
header: null,
tabBarVisible: false,
gesturesEnabled: false,
}),
},
ImageDetail: {
screen: ImageDetail,
navigationOptions: ({ navigation }) => ({
header: null,
tabBarVisible: false,
gesturesEnabled: false,
}),
},
});
AuctionStack.navigationOptions = tabBarVisibility;
export const BazaarStack = createStackNavigator({
Bazaar: {
screen: Marketplace,
navigationOptions: ({ navigation }) => ({
header: <AppHeader navigation={navigation} />,
}),
},
Item: {
screen: Item,
navigationOptions: ({ navigation }) => ({
header: null,
tabBarVisible: false,
gesturesEnabled: false,
}),
},
ImageDetail: {
screen: ImageDetail,
navigationOptions: ({ navigation }) => ({
header: null,
tabBarVisible: false,
gesturesEnabled: false,
}),
},
Checkout: {
screen: Checkout,
navigationOptions: ({ navigation }) => ({
header: null,
tabBarVisible: false,
gesturesEnabled: false,
}),
},
});
BazaarStack.navigationOptions = tabBarVisibility;
export const EventsStack = createStackNavigator({
Events: {
screen: Events,
navigationOptions: ({ navigation }) => ({
header: <AppHeader navigation={navigation} />,
gesturesEnabled: false,
}),
},
Event: {
screen: Event,
navigationOptions: ({ navigation }) => ({
header: <AppHeader navigation={navigation} />,
gesturesEnabled: false,
}),
},
});
EventsStack.navigationOptions = tabBarVisibility;
export const Tabs = createBottomTabNavigator({
Event: {
screen: EventsStack,
navigationOptions: {
tabBarLabel: 'Event',
tabBarIcon: ({ tintColor }) => (
<Icon name="black-tie" type="font-awesome" size={28} color={tintColor} />
),
},
},
Auction: {
screen: AuctionStack,
navigationOptions: {
tabBarLabel: 'Silent Auction',
tabBarIcon: ({ tintColor }) => (
<Icon name="gavel" type="font-awesome" size={28} color={tintColor} />
),
},
},
Bazaar: {
screen: BazaarStack,
navigationOptions: {
tabBarLabel: 'Bazaar',
tabBarIcon: ({ tintColor }) => (
<Icon name="store" type="fontisto" size={28} color={tintColor} />
),
},
},
Profile: {
screen: ProfileStack,
navigationOptions: {
tabBarLabel: 'Profile',
tabBarIcon: ({ tintColor }) => (
<Icon name="user" type="evilicon" size={28} color={tintColor} />
),
},
},
}, { initialRouteName: 'Event' });