forked from mongodb-university/realm-tutorial-react-native
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
58 lines (51 loc) · 1.74 KB
/
App.js
File metadata and controls
58 lines (51 loc) · 1.74 KB
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
// Defines which screens are in the app and sets up the navigation system.
// * AuthProvider wraps the whole app
import React from 'react';
import 'react-native-gesture-handler';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { AuthProvider } from './providers/AuthProvider';
import { TasksProvider } from './providers/TasksProvider';
import { WelcomeView } from './views/WelcomeView';
import { ProjectsView } from './views/ProjectsView';
import { TasksView } from './views/TasksView';
import { Logout } from './components/Logout';
const Stack = createStackNavigator();
const App = () => {
return (
<AuthProvider>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name='Welcome View'
component={WelcomeView}
options={{ title: 'Task Tracker' }}
/>
<Stack.Screen
name='Projects'
component={ProjectsView}
title='ProjectsView'
headerBackTitle='log out'
options={{
headerLeft: function Header() {
return <Logout />;
},
}}
/>
<Stack.Screen name='Task List'>
{(props) => {
const { navigation, route } = props;
const { user, projectPartition } = route.params;
return (
<TasksProvider user={user} projectPartition={projectPartition}>
<TasksView navigation={navigation} route={route} />
</TasksProvider>
);
}}
</Stack.Screen>
</Stack.Navigator>
</NavigationContainer>
</AuthProvider>
);
};
export default App;