visual-identity/app/components/voting-dapp/proposal-container.js

55 lines
1.4 KiB
JavaScript
Raw Normal View History

import web3 from "Embark/web3"
import EmbarkJS from 'Embark/EmbarkJS';
import React from 'react';
import ProposalForm from './proposal-form';
import Proposal from './proposal';
import ProposalList from './proposal-list';
2018-05-22 13:49:22 +00:00
import Paginator from './paginator';
2018-05-22 18:03:28 +00:00
const pageLength = 10;
class ProposalContainer extends React.Component {
constructor(props) {
super(props);
this.state = {
2018-05-22 18:03:28 +00:00
proposals: [],
total: 10, // TODO get total
page: 1
};
}
componentDidMount(){
2018-05-22 18:03:28 +00:00
this.getProposalsOnPage(this.state.page);
}
2018-05-22 18:03:28 +00:00
getProposalsOnPage(pageNum){
this.fetchProposals((pageNum - 1) * pageLength, pageLength, _p => this.setState({proposals: _p, page: pageNum}));
}
fetchProposals(from, qty, cb){
console.log("Loading %s records starting from record %s", qty, from);
// TODO: populate proposals
2018-05-22 15:11:53 +00:00
let proposalList = [
{
2018-05-29 15:00:21 +00:00
description: "QmZ4hQ5jKUqtHEXhXDVSz81JexMoDmVfiypECFQZZibyrS",
2018-05-22 15:11:53 +00:00
approved: true
}
]
cb(proposalList);
}
render(){
2018-05-22 13:49:22 +00:00
return <React.Fragment>
<ProposalList proposals={this.state.proposals} />
2018-05-22 18:03:28 +00:00
<Paginator total={this.state.total} recordsByPage={pageLength} page={this.state.page} pageHandler={(e, pageNum) => this.getProposalsOnPage(pageNum) } />
2018-05-22 13:49:22 +00:00
</React.Fragment>;
}
}
export default ProposalContainer;