-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.tsx
116 lines (110 loc) · 3.18 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import Welcome from './app/screens/Welcome';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { useState } from 'react';
import { UserInfoContext } from './app/context/userInfoContext';
import Search from './app/screens/Search';
import Register from './app/screens/Register';
import Filter from './app/screens/Filter';
import { navigationRef } from './app/routes/RootNavigation';
import Profile from './app/screens/Profile';
import Messages from './app/screens/Messages';
import Chat from './app/screens/Chat';
const Stack = createNativeStackNavigator();
type UserInfo = {
id?: number;
email?: string;
isLoggedIn?: boolean;
name?: string;
};
const UserInfo: UserInfo = {};
const headerOptions = {
headerStyle: {
backgroundColor: '#fff',
},
headerTintColor: '#FB9114',
headerTitleStyle: {
fontSize: 20,
},
};
export default function App() {
const [userInfo, setUserInfo] = useState(UserInfo);
return (
<>
<UserInfoContext.Provider value={{ userInfo, setUserInfo }} >
<NavigationContainer ref={navigationRef}>
<Stack.Navigator>
<Stack.Group>
<Stack.Screen
name="Welcome"
component={Welcome}
options={{
header: () => null
}}
/>
<Stack.Screen
name="Register"
component={Register}
options={{
headerStyle: {
backgroundColor: '#fff',
},
headerTintColor: '#FB9114',
headerTitleStyle: {
fontSize: 20,
},
}}
/>
</Stack.Group>
<Stack.Group>
<Stack.Screen
name="Search"
component={Search}
options={{
...headerOptions,
animation: 'fade',
}}
/>
<Stack.Screen
name="Filter"
component={Filter}
options={{
...headerOptions,
presentation: 'modal'
}}
/>
</Stack.Group>
<Stack.Group>
<Stack.Screen
name="Profile"
component={Profile}
options={{
...headerOptions,
animation: 'fade',
}}
/>
</Stack.Group>
<Stack.Group>
<Stack.Screen
name="Messages"
component={Messages}
options={{
...headerOptions,
animation: 'fade',
}}
/>
<Stack.Screen
name="Chat"
component={Chat}
options={{
...headerOptions,
animation: 'simple_push',
}}
/>
</Stack.Group>
</Stack.Navigator>
</NavigationContainer>
</UserInfoContext.Provider>
</>
);
};