Tokens.js 1.87 KiB
Newer Older
Amaury Martiny's avatar
Amaury Martiny committed
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity.
Amaury Martiny's avatar
Amaury Martiny committed
//
Amaury Martiny's avatar
Amaury Martiny committed
// SPDX-License-Identifier: MIT
import React, { PureComponent } from 'react';
import { AccountHeader } from 'fether-ui';
import { accountsInfo$, defaultAccount$ } from '@parity/light.js';
Amaury Martiny's avatar
Amaury Martiny committed
import light from 'light-hoc';
Amaury Martiny's avatar
Amaury Martiny committed
import { Link, Redirect } from 'react-router-dom';
import Health from '../Health';
import TokensList from './TokensList';
@light({
  accountsInfo: accountsInfo$,
  defaultAccount: defaultAccount$
})
class Tokens extends PureComponent {
  render () {
    const {
      accountsInfo,
      defaultAccount,
      location: { state }
    } = this.props;

Amaury Martiny's avatar
Amaury Martiny committed
    // If the accountsInfo object is empty (i.e. no accounts), then we redirect
    // to the accounts page to create an account
    if (accountsInfo && !Object.keys(accountsInfo).length) {
      return <Redirect to='/accounts' />;
    }

    // The address is defaultAccount, but if we are coming from the accounts
    // page, then the address is also put inside the route state, for faster
    // access.
    const myAddress = (state && state.address) || defaultAccount;
Amaury Martiny's avatar
Amaury Martiny committed
    return (
      <div>
        <AccountHeader
          address={myAddress}
          copyAddress
          name={
            accountsInfo &&
            myAddress &&
            accountsInfo[myAddress] &&
            accountsInfo[myAddress].name
            <Link to='/accounts' className='icon -back'>
              Back
            </Link>
        <TokensList />
        <nav className='footer-nav'>
          <div className='footer-nav_status'>
            <Health />
          </div>
          <div className='footer-nav_icons'>
            <Link to='/settings' className='icon -settings'>
              Settings
            </Link>
          </div>
        </nav>
Amaury Martiny's avatar
Amaury Martiny committed
    );
  }
Amaury Martiny's avatar
Amaury Martiny committed
export default Tokens;