import React from 'react'; import { connect } from 'react-redux'; import { LocalStorage } from '../services/local_storage'; import { initializeAppNoMetamaskOrLocked, initWallet, initWeb3 } from '../store/actions'; import { Web3State } from '../types/blockchain'; import { StoreState } from '../types/store'; import { getWeb3State } from '../store/blockchain/selectors' import { ToolbarContentContainer } from './common/toolbar_content'; import { GeneralLayout } from './general_layout'; const toolbar = ; interface OwnProps { children: React.ReactNode; } interface StateProps { web3State: Web3State; } interface DispatchProps { onConnectWallet: () => any; onInitMetamaskState: () => any; // initWeb3: () => any; } type Props = OwnProps & DispatchProps & StateProps; let localStorage = null; class App extends React.Component { public componentDidMount = async () => { window.addEventListener("load", async ()=> { if(!localStorage) localStorage = new LocalStorage(window.localStorage) await this.props.initWeb3() //this.props.onConnectWallet(); }) }; public render = () => { return( {this.props.children} ) }; } const mapStateToProps = (state: StoreState): StateProps => { return { web3State: getWeb3State(state), }; }; const mapDispatchToProps = (dispatch: any): DispatchProps => { return { onInitMetamaskState: () => dispatch(initializeAppNoMetamaskOrLocked()), onConnectWallet: () => dispatch(initWallet()), initWeb3: () => dispatch(initWeb3()), }; }; const AppContainer = connect( mapStateToProps, mapDispatchToProps, )(App) as any; export { App, AppContainer };