/* @flow */ import React from 'react'; import { isWebUSB } from 'utils/device'; import LandingWrapper from 'views/Landing/components/LandingWrapper'; import BetaDisclaimer from 'views/Landing/components/BetaDisclaimer'; import BrowserNotSupported from 'views/Landing/components/BrowserNotSupported'; import ConnectDevice from 'views/Landing/components/ConnectDevice'; import InstallBridge from 'views/Landing/views/InstallBridge/Container'; import type { Props } from './Container'; const Root = (props: Props) => { const { initialized, browserState, transport } = props.connect; const { disconnectRequest } = props.wallet; const localStorageError = props.localStorage.error; const connectError = props.connect.error; if (props.wallet.showBetaDisclaimer) return ; const error = !initialized ? localStorageError || connectError : null; const shouldShowUnsupportedBrowser = browserState.supported === false; const shouldShowInstallBridge = initialized && connectError; const shouldShowConnectDevice = props.wallet.ready && props.devices.length < 1; const shouldShowDisconnectDevice = !!disconnectRequest; const isLoading = !error && !shouldShowConnectDevice && !shouldShowUnsupportedBrowser; console.log('props', props) console.log('isLoading', isLoading); console.log('error', error); console.log('shouldShowConnectDevice', shouldShowConnectDevice); console.log('shouldShowUnsupportedBrowser', shouldShowConnectDevice); const deviceLabel = disconnectRequest ? disconnectRequest.label : ''; // corner case: display InstallBridge view on "/" route // it has it's own Container and props if (shouldShowInstallBridge) return ; return ( {shouldShowUnsupportedBrowser && } {(shouldShowConnectDevice || shouldShowDisconnectDevice) && ( )} ); }; export default Root;