-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathApp.tsx
91 lines (80 loc) · 2.47 KB
/
App.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import { StyleSheet } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { HomeScreen } from "./components/HomeScreen";
import { SHARED_ENV } from "./constants/SharedEnv";
import { ROUTE_ITEMS } from "./constants/RouteItems";
import { ROUTE_KEYS } from "./constants/RouteKeys";
const shouldEnableTabs =
SHARED_ENV.enableReactNavigation && SHARED_ENV.enableTabNavigation;
function Tab1StackScreen() {
if (shouldEnableTabs) {
const Tab1Stack = createNativeStackNavigator();
return (
<Tab1Stack.Navigator initialRouteName='Home'>
<Tab1Stack.Screen name='Home' component={HomeScreen} />
</Tab1Stack.Navigator>
);
} else {
return null;
}
}
export default function App() {
if (shouldEnableTabs) {
const TabNavigator = createBottomTabNavigator();
return (
<NavigationContainer>
<TabNavigator.Navigator>
<TabNavigator.Screen name='Tab1' component={Tab1StackScreen} />
<TabNavigator.Screen name='Tab2' component={HomeScreen} />
</TabNavigator.Navigator>
</NavigationContainer>
);
} else if (SHARED_ENV.enableReactNavigation) {
const Stack = createNativeStackNavigator();
return (
<NavigationContainer>
<Stack.Navigator
initialRouteName={ROUTE_KEYS.home}
screenOptions={{
contentStyle: {
backgroundColor: (SHARED_ENV.shouldSetAppBackground
? "black"
: undefined
),
},
headerShadowVisible: false,
headerStyle: {
backgroundColor: (SHARED_ENV.shouldSetAppBackground
? "black"
: undefined
),
},
}}
>
{ROUTE_ITEMS.map((item) => (
<Stack.Screen
key={item.routeKey}
name={item.routeKey}
component={item.component}
options={{
...(item.routeKey === 'home' && {
headerTitleAlign: "center",
}),
}}
/>
))}
</Stack.Navigator>
</NavigationContainer>
);
}
return <HomeScreen />;
}
const styles = StyleSheet.create({
navigationBarBannerImage: {
height: 45,
width: 115,
resizeMode: "contain",
}
});