blob: a220fab3b1ca788a4c939bf886e7d61ef078c9e4 (
plain) (
blame)
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
|
import 'react-native-url-polyfill/auto'
import React, {useState, useEffect} from 'react'
import {RootSiblingParent} from 'react-native-root-siblings'
import {GestureHandlerRootView} from 'react-native-gesture-handler'
import {whenWebCrypto} from './platform/polyfills.native'
import * as view from './view/index'
import {RootStoreModel, setupState, RootStoreProvider} from './state'
import {MobileShell} from './view/shell/mobile'
function App() {
const [rootStore, setRootStore] = useState<RootStoreModel | undefined>(
undefined,
)
// init
useEffect(() => {
whenWebCrypto
.then(() => {
view.setup()
return setupState()
})
.then(setRootStore)
}, [])
// show nothing prior to init
if (!rootStore) {
return null
}
return (
<GestureHandlerRootView style={{flex: 1}}>
<RootSiblingParent>
<RootStoreProvider value={rootStore}>
<MobileShell />
</RootStoreProvider>
</RootSiblingParent>
</GestureHandlerRootView>
)
}
export default App
|