/
App.js
77 lines (68 loc) · 2.49 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
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* @format
*/
import React, { useEffect } from 'react';
import { ToastAndroid } from 'react-native';
import codePush from "react-native-code-push";
import { MMKV } from "react-native-mmkv";
import { initializeMMKVFlipper } from "react-native-mmkv-flipper-plugin";
import { Provider as PaperProvider } from 'react-native-paper';
import { Provider } from 'react-redux';
import { PersistGate } from 'redux-persist/integration/react';
import LoadingScreen from './src/components/screens/loadingscreen';
import * as constants from './src/components/styles/colors/constants';
import StackNavigation from './src/navigation/stack-navigation';
import { persistor, store } from './src/redux/store';
import { realmConfig } from './src/utils/database';
const { RealmProvider } = realmConfig;
const storage = new MMKV();
const codePushOptions = { checkFrequency: codePush.CheckFrequency.MANUAL };
const MyApp = () => {
useEffect(() => {
if (__DEV__) {
initializeMMKVFlipper({ default: storage });
}
codePush.sync({
updateDialog: false,
installMode: codePush.InstallMode.ON_NEXT_RESTART
},
(status) => {
switch (status) {
case codePush.SyncStatus.CHECKING_FOR_UPDATE:
ToastAndroid.show('Checking for updates...', ToastAndroid.LONG);
break;
case codePush.SyncStatus.DOWNLOADING_PACKAGE:
ToastAndroid.show('Downloading update...', ToastAndroid.LONG);
break;
case codePush.SyncStatus.INSTALLING_UPDATE:
ToastAndroid.show('Installing update...', ToastAndroid.LONG);
break;
case codePush.SyncStatus.UPDATE_INSTALLED:
ToastAndroid.show('Update installed and will be applied on next app restart.', ToastAndroid.LONG);
break;
case codePush.SyncStatus.UP_TO_DATE:
ToastAndroid.show('App is up to date.', ToastAndroid.LONG);
break;
case codePush.SyncStatus.SYNC_IN_PROGRESS:
console.log('Sync in progress...');
break;
}
});
}, [])
return (
<RealmProvider>
<Provider store={store}>
<PaperProvider theme={constants.darkTheme}>
<PersistGate loading={<LoadingScreen />} persistor={persistor}>
<StackNavigation />
</PersistGate>
</PaperProvider>
</Provider>
</RealmProvider>
);
}
let App = codePush(codePushOptions)(MyApp);
export default App;