-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.tsx
99 lines (93 loc) · 2.89 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
92
93
94
95
96
97
98
99
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* @format
*/
import {NavigationContainer} from '@react-navigation/native';
import {createNativeStackNavigator} from '@react-navigation/native-stack';
import React from 'react';
import {StatusBar, StyleSheet} from 'react-native';
import AllExpenses from './screens/AllExpenses';
import RecentExpenses from './screens/RecentExpenses';
import ManageExpenses from './screens/ManageExpenses';
import {GlobalStyles} from './constants/styles';
import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
import Icon from 'react-native-vector-icons/Ionicons';
import IconButton from './components/Ui/IconButton';
import ExpenseContextProvider from './store/excpense-context';
const Stack = createNativeStackNavigator();
const BottomTab = createBottomTabNavigator();
function ExpensesOverView() {
return (
<BottomTab.Navigator
screenOptions={({navigation}) => ({
headerStyle: {backgroundColor: GlobalStyles.colors.primary500},
headerTintColor: 'white',
tabBarStyle: {backgroundColor: GlobalStyles.colors.primary500},
tabBarActiveTintColor: GlobalStyles.colors.accent500,
headerRight: ({tintColor}) => (
<IconButton
icon="add"
size={24}
color={tintColor}
onPress={() => {
navigation.navigate('ManageExpenses');
}}
/>
),
})}>
<BottomTab.Screen
name="RecentExpenses"
component={RecentExpenses}
options={{
title: 'Recent Expenses',
tabBarLabel: 'Recent',
tabBarIcon: ({color, size}) => (
<Icon name="hourglass" size={size} color={color} />
),
}}
/>
<BottomTab.Screen
name="AllExpenses"
component={AllExpenses}
options={{
title: 'All Expenses',
tabBarLabel: 'All',
tabBarIcon: ({color, size}) => (
<Icon name="calendar" size={size} color={color} />
),
}}
/>
</BottomTab.Navigator>
);
}
function App() {
return (
<>
<StatusBar barStyle={'light-content'} />
<ExpenseContextProvider>
<NavigationContainer>
<Stack.Navigator
screenOptions={{
headerStyle: {backgroundColor: GlobalStyles.colors.primary500},
headerTintColor: 'white',
}}>
<Stack.Screen
name="ExpensesOverView"
component={ExpensesOverView}
options={{headerShown: false}}
/>
<Stack.Screen
name="ManageExpenses"
component={ManageExpenses}
options={{presentation: 'modal'}}
/>
</Stack.Navigator>
</NavigationContainer>
</ExpenseContextProvider>
</>
);
}
const styles = StyleSheet.create({});
export default App;