-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathApp.tsx
80 lines (67 loc) · 2.39 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
import {StatusBar, StatusBarStyle, Text, useWindowDimensions} from 'react-native';
import useCachedResources from "hooks/useCachedResources";
import useColorScheme from "hooks/useColorScheme";
import {SafeAreaProvider} from "react-native-safe-area-context";
import CustomThemedProvider from "theme/CustomThemedProvider";
import {DarkTheme, DefaultTheme, NavigationContainer} from '@react-navigation/native';
import {darkTheme, lightTheme} from "theme/StyledThemes";
import {useEffect, useState} from "react";
import Colors from "theme/colors/ThemeColors";
import {Printer} from "utils/Printer";
export default function App() {
const isLoadingComplete = useCachedResources();
const colorScheme = useColorScheme();
const [appTheme, setAppTheme] = useState(lightTheme)
const [statusBarStyle, setStatusBarStyle] = useState<StatusBarStyle>('default')
const dimensions = useWindowDimensions();
useEffect(() => {
let extraDimensions = {
vwPx: dimensions.width / 100,
vhPx: dimensions.height / 100
}
Printer.log("Estamos cambiando", colorScheme, dimensions)
switch (colorScheme) {
case "light": {
setAppTheme({...lightTheme, screenDimens: {...dimensions, ...extraDimensions}})
setStatusBarStyle('default')
break
}
case "dark": {
setAppTheme({...darkTheme, screenDimens: {...dimensions, ...extraDimensions}})
setStatusBarStyle('light-content')
break
}
default: {
setAppTheme({...lightTheme, screenDimens: {...dimensions, ...extraDimensions}})
setStatusBarStyle('default')
break
}
}
}, [colorScheme, dimensions])
const getNavigationTheme = () => {
let navigationTheme = colorScheme === 'dark' ? DarkTheme : DefaultTheme
return {
...navigationTheme,
colors: {
...navigationTheme.colors,
background: Colors[colorScheme].themeBackground,
card: Colors[colorScheme].navigationCardBackground,
text: Colors[colorScheme].text
},
};
}
if (!isLoadingComplete) {
return null;
} else {
return (
<SafeAreaProvider>
<StatusBar barStyle={statusBarStyle}/>
<CustomThemedProvider theme={appTheme}>
<NavigationContainer theme={getNavigationTheme()}>
<Text>Hola Mundo que hace</Text>
</NavigationContainer>
</CustomThemedProvider>
</SafeAreaProvider>
);
}
}