Skip to content

Commit 51f4f1f

Browse files
committed
feat: add basic navigation
1 parent 8677ca8 commit 51f4f1f

2 files changed

Lines changed: 135 additions & 0 deletions

File tree

home.tsx

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
/**
2+
* Sample React Native App
3+
* https://github.com/facebook/react-native
4+
*
5+
* @format
6+
*/
7+
8+
import React from 'react';
9+
import type {PropsWithChildren} from 'react';
10+
import {
11+
ScrollView,
12+
StatusBar,
13+
StyleSheet,
14+
Text,
15+
useColorScheme,
16+
View,
17+
} from 'react-native';
18+
19+
import {
20+
Colors,
21+
DebugInstructions,
22+
Header,
23+
LearnMoreLinks,
24+
ReloadInstructions,
25+
} from 'react-native/Libraries/NewAppScreen';
26+
27+
type SectionProps = PropsWithChildren<{
28+
title: string;
29+
}>;
30+
31+
function Section({children, title}: SectionProps): React.JSX.Element {
32+
const isDarkMode = useColorScheme() === 'dark';
33+
return (
34+
<View style={styles.sectionContainer}>
35+
<Text
36+
style={[
37+
styles.sectionTitle,
38+
{
39+
color: isDarkMode ? Colors.white : Colors.black,
40+
},
41+
]}>
42+
{title}
43+
</Text>
44+
<Text
45+
style={[
46+
styles.sectionDescription,
47+
{
48+
color: isDarkMode ? Colors.light : Colors.dark,
49+
},
50+
]}>
51+
{children}
52+
</Text>
53+
</View>
54+
);
55+
}
56+
57+
function App(): React.JSX.Element {
58+
const isDarkMode = useColorScheme() === 'dark';
59+
60+
const backgroundStyle = {
61+
backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
62+
};
63+
64+
/*
65+
* To keep the template simple and small we're adding padding to prevent view
66+
* from rendering under the System UI.
67+
* For bigger apps the recommendation is to use `react-native-safe-area-context`:
68+
* https://github.com/AppAndFlow/react-native-safe-area-context
69+
*
70+
* You can read more about it here:
71+
* https://github.com/react-native-community/discussions-and-proposals/discussions/827
72+
*/
73+
const safePadding = '5%';
74+
75+
return (
76+
<View style={backgroundStyle}>
77+
<StatusBar
78+
barStyle={isDarkMode ? 'light-content' : 'dark-content'}
79+
backgroundColor={backgroundStyle.backgroundColor}
80+
/>
81+
<ScrollView
82+
style={backgroundStyle}>
83+
<View style={{paddingRight: safePadding}}>
84+
<Header/>
85+
</View>
86+
<View
87+
style={{
88+
backgroundColor: isDarkMode ? Colors.black : Colors.white,
89+
paddingHorizontal: safePadding,
90+
paddingBottom: safePadding,
91+
}}>
92+
<Section title="Step One">
93+
Edit <Text style={styles.highlight}>App.tsx</Text> to change this
94+
screen and then come back to see your edits.
95+
</Section>
96+
<Section title="See Your Changes">
97+
<ReloadInstructions />
98+
</Section>
99+
<Section title="Debug">
100+
<DebugInstructions />
101+
</Section>
102+
<Section title="Learn More">
103+
Read the docs to discover what to do next:
104+
</Section>
105+
<LearnMoreLinks />
106+
</View>
107+
</ScrollView>
108+
</View>
109+
);
110+
}
111+
112+
const styles = StyleSheet.create({
113+
sectionContainer: {
114+
marginTop: 32,
115+
paddingHorizontal: 24,
116+
},
117+
sectionTitle: {
118+
fontSize: 24,
119+
fontWeight: '600',
120+
},
121+
sectionDescription: {
122+
marginTop: 8,
123+
fontSize: 18,
124+
fontWeight: '400',
125+
},
126+
highlight: {
127+
fontWeight: '700',
128+
},
129+
});
130+
131+
export default App;

src/screens/details.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1+
import { useNavigation } from '@react-navigation/native';
12
import { View, Text } from 'react-native';
3+
import { Button } from '@react-navigation/elements';
24

35
export type DetailsScreenProps = {
46
message?: string;
57
};
68

79
export function DetailsScreen({message = "Details Screen"}: DetailsScreenProps) {
10+
const navigation = useNavigation();
811
return (
912
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
1013
<Text>{message}</Text>
14+
<Button onPress={() => navigation.navigate('Home')}>Go Home</Button>
1115
</View>
1216
);
1317
}

0 commit comments

Comments
 (0)