import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import Button from '../../ui/button'; import LoadingScreen from '../../ui/loading-screen'; export default class LoadingNetworkScreen extends PureComponent { state = { showErrorScreen: false, }; static contextTypes = { t: PropTypes.func, }; static propTypes = { loadingMessage: PropTypes.string, cancelTime: PropTypes.number, provider: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), providerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), showNetworkDropdown: PropTypes.func, setProviderArgs: PropTypes.array, setProviderType: PropTypes.func, rollbackToPreviousProvider: PropTypes.func, isNetworkLoading: PropTypes.bool, }; componentDidMount = () => { this.cancelCallTimeout = setTimeout( this.cancelCall, this.props.cancelTime || 15000, ); }; getConnectingLabel = function (loadingMessage) { if (loadingMessage) { return loadingMessage; } const { provider, providerId } = this.props; const providerName = provider.type; let name; if (providerName === 'mainnet') { name = this.context.t('connectingToMainnet'); } else if (providerName === 'ropsten') { name = this.context.t('connectingToRopsten'); } else if (providerName === 'kovan') { name = this.context.t('connectingToKovan'); } else if (providerName === 'rinkeby') { name = this.context.t('connectingToRinkeby'); } else if (providerName === 'goerli') { name = this.context.t('connectingToGoerli'); } else { name = this.context.t('connectingTo', [providerId]); } return name; }; renderErrorScreenContent = () => { const { showNetworkDropdown, setProviderArgs, setProviderType, } = this.props; return (