Tokens.js 1.8 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: BSD-3-Clause
Axel Chalon's avatar
Axel Chalon committed
import React, { PureComponent } from "react";
import { AccountHeader } from "fether-ui";
import { accountsInfo$ } from "@parity/light.js";
import light from "light-hoc";
import { Link, Redirect } from "react-router-dom";
Axel Chalon's avatar
Axel Chalon committed
import Health from "../Health";
import TokensList from "./TokensList";
@light({
Axel Chalon's avatar
Axel Chalon committed
  accountsInfo: accountsInfo$
class Tokens extends PureComponent {
  handleGoToWhitelist = () => {
Axel Chalon's avatar
Axel Chalon committed
    this.props.history.push("/whitelist");
Axel Chalon's avatar
Axel Chalon committed
  render() {
Axel Chalon's avatar
Axel Chalon committed
      match: {
        params: { accountAddress }
      }
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) {
Axel Chalon's avatar
Axel Chalon committed
      return <Redirect to="/accounts/new" />;
Axel Chalon's avatar
Axel Chalon committed
    // @todo keeps on being rerendered... even though nothings changes?
Amaury Martiny's avatar
Amaury Martiny committed
    return (
      <div>
        <AccountHeader
Axel Chalon's avatar
Axel Chalon committed
          address={accountAddress}
          copyAddress
          name={
            accountsInfo &&
Axel Chalon's avatar
Axel Chalon committed
            accountsInfo[accountAddress] &&
            accountsInfo[accountAddress].name
Axel Chalon's avatar
Axel Chalon committed
            <Link to="/accounts" className="icon -back">
              Back
            </Link>
Axel Chalon's avatar
Axel Chalon committed
        <TokensList accountAddress={accountAddress} />
Axel Chalon's avatar
Axel Chalon committed
        <nav className="footer-nav">
          <div className="footer-nav_status">
            <Health />
          </div>
Axel Chalon's avatar
Axel Chalon committed
          <div className="footer-nav_icons">
            <button className="button -tiny" onClick={this.handleGoToWhitelist}>
Amaury Martiny's avatar
Amaury Martiny committed
              Add tokens
          </div>
        </nav>
Amaury Martiny's avatar
Amaury Martiny committed
    );
  }
Amaury Martiny's avatar
Amaury Martiny committed
export default Tokens;