-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.js
71 lines (65 loc) · 2.26 KB
/
App.js
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
import * as React from 'react';
import { View, TouchableOpacity, Button } from 'react-native';
import { MaterialCommunityIcons } from '@expo/vector-icons';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import ContactsListScreen from './screens/ContactsListScreen';
import IndividualContactScreen from './screens/IndividualContactScreen';
import colors from './assets/colors/colors';
const Stack = createStackNavigator();
function App() {
const addNewContact = (navigation) => {
console.log('Add new contact');
navigation.navigate('IndividualContact', {contact: {}, action: 'add'});
};
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="ContactsList">
<Stack.Screen
name="ContactsList"
component={ContactsListScreen}
options={({navigation}) => ({
title: 'Contacts',
headerLeft: () => (
<TouchableOpacity
activeOpacity={0.5}
style={{
paddingLeft: 20
}}
onPress={() => console.log('Search for contact')}
>
<MaterialCommunityIcons name="magnify" size={30} color={colors.THEME_COLOR}/>
</TouchableOpacity>
),
headerRight: () => (
<TouchableOpacity
activeOpacity={0.5}
style={{
paddingRight: 20
}}
onPress={() => addNewContact(navigation)}>
<MaterialCommunityIcons name="plus" size={30} color={colors.THEME_COLOR}/>
</TouchableOpacity>
),
})
} />
<Stack.Screen
name="IndividualContact"
component={IndividualContactScreen}
options={({navigation}) => ({
title: '',
headerLeft: () => (
<View
style={{
paddingLeft: 10
}}>
<Button onPress={() => navigation.navigate('ContactsList')} title="Cancel" color={colors.THEME_COLOR} />
</View>
)
})
} />
</Stack.Navigator>
</NavigationContainer>
);
}
export default App;