4 import { connect } from "react-redux"
5 import jdenticon from "jdenticon"
6 import action from "./action";
7 import GetContractArgs from "../../constants";
8 import { listBalances } from '../../util/api'
10 class Account extends Component {
18 this.listBalance = this.listBalance.bind(this)
22 const bytom = this.props.bytom
25 && bytom.default_account
27 const account = bytom.default_account
28 this.setState({ account })
31 this.props.updateBalances(account.accountId)
33 this.listBalance(account, GetContractArgs().assetDeposited)
38 listBalance(account, assetId){
39 listBalances({address: account.address, asset:assetId})
48 if(!this.state.account){
52 const account = this.state.account
53 const svg = jdenticon.toSvg(account.alias, 100)
55 let record = <div></div>
56 if(this.state.record !== '' && this.state.record.length !== 0){
58 this.state.record.forEach(
60 list.push( <tr key={'record'+i}>
61 <th scope="row">{i}</th>
63 <td>{new Date(re.create_at * 1000).toLocaleString()}</td>
67 record= <table className="table">
70 <th scope="col">#</th>
71 <th scope="col">Amount</th>
72 <th scope="col">Time</th>
80 record = <p>No Record Found.</p>
84 <div className="container">
86 <div className="col-2">
87 <div className="mr-2" dangerouslySetInnerHTML={{__html:svg}} />
90 <h1 className="text-uppercase">{account.alias}</h1>
91 <div>Address: {account.address}</div>
92 <div>Deposit Asset balance: {this.props.depositAssetBalance || 0}</div>
93 <div>Bill Asset Balance: {this.props.billAssetBalance || 0}</div>
97 <ul className="nav nav-pills mb-3" id="pills-tab" role="tablist">
98 <li className="nav-item">
99 <a className="nav-link active" id="pills-home-tab" data-toggle="pill"
100 href="#pills-deposit" onClick={() => this.listBalance(account, GetContractArgs().assetDeposited)} role="tab" aria-controls="pills-deposit" aria-selected="true">Deposit Asset Record</a>
102 <li className="nav-item">
103 <a className="nav-link" id="pills-profile-tab" data-toggle="pill"
104 href="#pills-profit" onClick={() => this.listBalance(account, GetContractArgs().assetBill)} role="tab" aria-controls="pills-profit" aria-selected="false">Bill Asset Record</a>
107 <div className="tab-content" id="pills-tabContent">
108 <div className="tab-pane fade show active" id="pills-deposit" role="tabpanel" aria-labelledby="pills-deposit-tab">
111 <div className="tab-pane fade" id="pills-profit" role="tabpanel" aria-labelledby="pills-profit-tab">
123 const mapStateToProps = state => ({
124 depositAssetBalance: state.depositAssetBalance,
125 billAssetBalance: state.billAssetBalance,
129 const mapDispatchToProps = dispatch => ({
130 updateBalances: (guid) => dispatch(action.updateBalances(guid)),
133 export default connect(mapStateToProps, mapDispatchToProps)(Account)