import React, {useState, useEffect} from 'react' import 'lib/sentry' // must be relatively on top import {SafeAreaProvider} from 'react-native-safe-area-context' import {RootSiblingParent} from 'react-native-root-siblings' import * as view from './view/index' import * as analytics from 'lib/analytics/analytics' import {RootStoreModel, setupState, RootStoreProvider} from './state' import {Shell} from './view/shell/index' import {ToastContainer} from './view/com/util/Toast.web' import {ThemeProvider} from 'lib/ThemeContext' import {observer} from 'mobx-react-lite' const App = observer(function AppImpl() { const [rootStore, setRootStore] = useState( undefined, ) // init useEffect(() => { view.setup() setupState().then(store => { setRootStore(store) analytics.init(store) }) }, []) // show nothing prior to init if (!rootStore) { return null } return ( ) }) export default App