-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.tsx
More file actions
50 lines (45 loc) · 1.57 KB
/
App.tsx
File metadata and controls
50 lines (45 loc) · 1.57 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
import { Character } from '@api/character/model';
import { ThemeProvider, ThemeProps } from '@contexts/theme';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import CharacterScreen from '@screens/Character';
import HomeScreen from '@screens/Home';
import { useColorScheme } from 'react-native';
import { Colors } from 'react-native/Libraries/NewAppScreen';
export type RootStackParamsList = {
Home: undefined;
Character: Character;
};
const Stack = createNativeStackNavigator<RootStackParamsList>();
function App(): React.JSX.Element {
const isDarkMode = useColorScheme() === 'dark';
const theme: ThemeProps = {
color: isDarkMode ? Colors.lighter : Colors.darker,
backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
barStyle: isDarkMode ? 'light-content' : 'dark-content',
};
return (
<ThemeProvider {...theme}>
<NavigationContainer>
<Stack.Navigator
initialRouteName="Home"
screenOptions={{
headerTintColor: theme.color,
headerStyle: { backgroundColor: theme.backgroundColor },
}}>
<Stack.Screen
name="Home"
component={HomeScreen}
options={{ title: 'Rick and Morty - Personagens' }}
/>
<Stack.Screen
name="Character"
component={CharacterScreen}
options={{ headerShown: false }}
/>
</Stack.Navigator>
</NavigationContainer>
</ThemeProvider>
);
}
export default App;