-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.tsx
49 lines (40 loc) · 1.28 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
/* eslint-disable no-unused-vars */
/* eslint-disable react/display-name */
import React from 'react';
import {Provider as PaperProvider, Snackbar} from 'react-native-paper';
import {enableScreens} from 'react-native-screens';
import {Provider, useSelector} from 'react-redux';
import {Prompt} from './src/helper/Prompt';
import {GlobalSnackbar} from './src/helper/GlobalSnackbar';
import './src/i18n/config';
import MainNavigation from './src/navigation/MainNavigation';
import {RootState, store} from './src/redux/store';
import {OwnPaperTheme, OwnPaperThemeDark} from './src/styles/CentralStyles';
import {useColorScheme} from 'react-native';
enableScreens();
export default () => {
return (
<Provider store={store}>
<ReduxWrappedApp />
</Provider>
);
};
const ReduxWrappedApp = () => {
const selectedTheme = useSelector((state: RootState) => state.settings.theme);
const colorScheme = useColorScheme();
let theme;
if (selectedTheme == 'light') {
theme = OwnPaperTheme;
} else if (selectedTheme == 'dark') {
theme = OwnPaperThemeDark;
} else {
theme = colorScheme == 'light' ? OwnPaperTheme : OwnPaperThemeDark;
}
return (
<PaperProvider theme={theme}>
<MainNavigation />
<Prompt/>
<GlobalSnackbar />
</PaperProvider>
);
};