-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.js
138 lines (128 loc) · 3.4 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
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import React from 'react';
import {
SafeAreaView,
ScrollView,
StatusBar,
StyleSheet,
Text,
TouchableOpacity,
useColorScheme,
View,
} from 'react-native';
const redColor = '#FF0000';
const whiteColor = '#FFFFFF';
const blackColor = '#000000';
const CustomHeader = ({ title }) => {
const isDarkMode = useColorScheme() === 'dark';
return (
<View style={[styles.headerContainer, { backgroundColor: isDarkMode ? blackColor : whiteColor }]}>
<Text style={[styles.headerTitle, { color: isDarkMode ? whiteColor : redColor }]}>{title}</Text>
</View>
);
};
const Section = ({ children, title, last, reducedMargin }) => {
const isDarkMode = useColorScheme() === 'dark';
return (
<TouchableOpacity onPress={() => alert(`You clicked ${title}`)}>
<View
style={[
styles.sectionContainer,
{ borderBottomWidth: last ? 0 : 1 },
reducedMargin ? { marginTop: 16 } : {},
]}
>
<Text
style={[
styles.sectionTitle,
{
color: isDarkMode ? whiteColor : redColor,
},
]}
>
{title}
</Text>
<Text
style={[
styles.sectionDescription,
{
color: isDarkMode ? blackColor : whiteColor,
},
]}
>
{children}
</Text>
</View>
</TouchableOpacity>
);
};
const App = () => {
const isDarkMode = useColorScheme() === 'dark';
const backgroundStyle = {
backgroundColor: isDarkMode ? blackColor : whiteColor,
};
return (
<SafeAreaView style={backgroundStyle}>
<StatusBar
barStyle={isDarkMode ? 'light-content' : 'dark-content'}
backgroundColor={backgroundStyle.backgroundColor}
/>
<ScrollView contentInsetAdjustmentBehavior="automatic" style={backgroundStyle}>
<CustomHeader title="Trainer Battle League" />
<View
style={{
backgroundColor: isDarkMode ? whiteColor : blackColor,
}}
>
<Section title="Trainer Profile">
See your <Text style={styles.highlight}>Trainer Profile</Text> and accomplishments across
the different battle communities.
</Section>
<Section title="Battle Communities" reducedMargin>
Browse New Trainer communities or participate in your favorite one.
</Section>
<Section title="Badge Book" reducedMargin>
See your badges you earned in different Trainer Communities. Are you ready for the
Pokemon League yet?
</Section>
<Section title="Settings" last={true} reducedMargin>
Change your settings
</Section>
</View>
</ScrollView>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
headerContainer: {
paddingTop: StatusBar.currentHeight,
paddingBottom: 16,
paddingHorizontal: 24,
},
headerTitle: {
fontSize: 52,
fontWeight: '600',
textAlign: 'center',
},
sectionContainer: {
marginTop: 12,
paddingHorizontal: 24,
marginBottom: 16,
borderBottomColor: whiteColor,
marginLeft: 16,
marginRight: 16,
paddingBottom: 12,
},
sectionTitle: {
fontSize: 24,
fontWeight: '600',
},
sectionDescription: {
marginTop: 8,
fontSize: 18,
fontWeight: '400',
},
highlight: {
fontWeight: '700',
},
});
export default App;