/* @flow */ 'use strict'; import React, { Component } from 'react'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import Tooltip from 'rc-tooltip'; import { QRCode } from 'react-qr-svg'; import AbstractAccount from './account/AbstractAccount'; import { Notification } from '../common/Notification'; import * as ReceiveActions from '../../actions/ReceiveActions'; class Receive extends AbstractAccount { render() { return super.render(this.props.receive) || _render(this.props, this.device, this.account, this.deviceStatusNotification); } } const _render = (props: any, device, account, deviceStatusNotification): any => { const { network, deviceState, accountIndex, addressVerified, addressUnverified, } = props.receive; // const device = props.devices.find(d => d.state === deviceState); // const account = props.accounts.find(a => a.deviceState === deviceState && a.index === accountIndex && a.network === network); let qrCode = null; let address = `${account.address.substring(0, 20)}...`; let className = 'address hidden'; let button = ( ); if (addressVerified || addressUnverified) { qrCode = ( ); address = account.address; className = addressUnverified ? 'address unverified' : 'address'; const tooltip = addressUnverified ? (
Unverified address.
{ device.connected && device.available ? 'Show on TREZOR' : 'Connect your TREZOR to verify it.' }
) : (
{ device.connected ? 'Show on TREZOR' : 'Connect your TREZOR to verify address.' }
); button = ( } overlay={ tooltip } placement="bottomRight"> ); } return (
{ deviceStatusNotification }

Receive Ethereum or tokens

{ address }
{ button }
{ qrCode }
); } const mapStateToProps = (state, own) => { return { location: state.router.location, devices: state.connect.devices, accounts: state.accounts, discovery: state.discovery, receive: state.receive }; } const mapDispatchToProps = (dispatch) => { return { initAccount: bindActionCreators(ReceiveActions.init, dispatch), updateAccount: bindActionCreators(ReceiveActions.update, dispatch), disposeAccount: bindActionCreators(ReceiveActions.dispose, dispatch), showAddress: bindActionCreators(ReceiveActions.showAddress, dispatch), }; } export default connect(mapStateToProps, mapDispatchToProps)(Receive);