This repository has been archived by the owner on Jun 26, 2023. It is now read-only.
/
App.tsx
52 lines (47 loc) · 1.54 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
import React from 'react'
import classnames from 'classnames'
import {createPersistentStore} from './common/store'
import {WalletState} from './common/wallet-state'
import {BackendState} from './common/backend-state'
import {SettingsState} from './settings-state'
import {RouterState} from './router-state'
import {TokensState} from './tokens/tokens-state'
import {Router} from './layout/Router'
import {Sidebar} from './layout/Sidebar'
import {SplashScreen} from './SplashScreen'
import {config} from './config/renderer'
import {createWeb3} from './web3'
import './App.scss'
const web3 = createWeb3(config.rpcAddress)
const store = createPersistentStore()
const AppContent: React.FC = () => {
const {isBackendRunning} = BackendState.useContainer()
const {
currentRoute: {menu},
} = RouterState.useContainer()
return isBackendRunning ? (
<div className={classnames('App', menu.toLowerCase())}>
<WalletState.Provider initialState={{web3, store}}>
<TokensState.Provider initialState={{web3, store}}>
<Sidebar />
{/* FIXME: ETCM-404 version={MANTIS_WALLET_VERSION} /> */}
<Router />
</TokensState.Provider>
</WalletState.Provider>
</div>
) : (
<SplashScreen />
)
}
const App: React.FC = () => {
return (
<BackendState.Provider initialState={{web3, store}}>
<SettingsState.Provider initialState={{store}}>
<RouterState.Provider>
<AppContent />
</RouterState.Provider>
</SettingsState.Provider>
</BackendState.Provider>
)
}
export default App