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 global.bytomAPI.setNetType(bytom.net)
32 this.props.updateBalances(account.accountId)
34 this.listBalance(account, GetContractArgs().assetDeposited)
39 listBalance(account, assetId){
40 listBalances({address: account.address, asset:assetId})
49 if(!this.state.account){
53 const account = this.state.account
54 const svg = jdenticon.toSvg(account.alias, 100)
56 let record = <div></div>
57 if(this.state.record !== '' && this.state.record.length !== 0){
59 this.state.record.forEach(
61 list.push( <tr key={'record'+i}>
62 <th scope="row">{i}</th>
64 <td>{new Date(re.create_at * 1000).toLocaleString()}</td>
68 record= <table className="table">
71 <th scope="col">#</th>
72 <th scope="col">Amount</th>
73 <th scope="col">Time</th>
81 record = <p>No Record Found.</p>
85 <div className="container">
87 <div className="col-2">
88 <div className="mr-2" dangerouslySetInnerHTML={{__html:svg}} />
91 <h1 className="text-uppercase">{account.alias}</h1>
92 <div>Address: {account.address}</div>
93 <div>Deposit Asset balance: {this.props.depositAssetBalance || 0}</div>
94 <div>Bill Asset Balance: {this.props.billAssetBalance || 0}</div>
98 <ul className="nav nav-pills mb-3" id="pills-tab" role="tablist">
99 <li className="nav-item">
100 <a className="nav-link active" id="pills-home-tab" data-toggle="pill"
101 href="#pills-deposit" onClick={() => this.listBalance(account, GetContractArgs().assetDeposited)} role="tab" aria-controls="pills-deposit" aria-selected="true">Deposit Asset Record</a>
103 <li className="nav-item">
104 <a className="nav-link" id="pills-profile-tab" data-toggle="pill"
105 href="#pills-profit" onClick={() => this.listBalance(account, GetContractArgs().assetBill)} role="tab" aria-controls="pills-profit" aria-selected="false">Bill Asset Record</a>
108 <div className="tab-content" id="pills-tabContent">
109 <div className="tab-pane fade show active" id="pills-deposit" role="tabpanel" aria-labelledby="pills-deposit-tab">
112 <div className="tab-pane fade" id="pills-profit" role="tabpanel" aria-labelledby="pills-profit-tab">
124 const mapStateToProps = state => ({
125 depositAssetBalance: state.depositAssetBalance,
126 billAssetBalance: state.billAssetBalance,
130 const mapDispatchToProps = dispatch => ({
131 updateBalances: (guid) => dispatch(action.updateBalances(guid)),
134 export default connect(mapStateToProps, mapDispatchToProps)(Account)