Tokens.js 1.23 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, { Component } from 'react';
Amaury Martiny's avatar
Amaury Martiny committed
import { inject, observer } from 'mobx-react';
Amaury Martiny's avatar
Amaury Martiny committed
import { defaultAccount$ } from '@parity/light.js';
Amaury Martiny's avatar
Amaury Martiny committed
import { Redirect } from 'react-router-dom';
Amaury Martiny's avatar
Amaury Martiny committed
import EthBalance from './EthBalance';
import light from '../hoc';
import TokenBalance from './TokenBalance';
Amaury Martiny's avatar
Amaury Martiny committed
@inject('parityStore', 'tokensStore')
Amaury Martiny's avatar
Amaury Martiny committed
@observer
@light({
Amaury Martiny's avatar
Amaury Martiny committed
  me: defaultAccount$
Amaury Martiny's avatar
Amaury Martiny committed
})
class Tokens extends Component {
Amaury Martiny's avatar
Amaury Martiny committed
    const {
      me,
Amaury Martiny's avatar
Amaury Martiny committed
      parityStore: { isApiConnected },
Amaury Martiny's avatar
Amaury Martiny committed
      tokensStore: { tokens }
    } = this.props;

Amaury Martiny's avatar
Amaury Martiny committed
    if (!isApiConnected) {
      return <Redirect to='/loading' />;
    return (
      <div className='box -scroller'>
        <ul className='list -tokens'>
          {me &&
            Array.from(tokens.keys()).map(key => (
              <li key={key}>
                {key === 'ETH' ? (
                  <EthBalance address={me} token={key} {...tokens.get(key)} />
                ) : (
                  <TokenBalance address={me} token={key} {...tokens.get(key)} />
                )}
              </li>
            ))}
Amaury Martiny's avatar
Amaury Martiny committed
export default Tokens;