var NewAddressSection = React.createClass({
generateAddress: function() {
lbry.getNewAddress((results) => {
this.setState({
address: results,
})
});
},
getInitialState: function() {
return {
address: "",
}
},
render: function() {
return (
);
}
});
var SendToAddressSection = React.createClass({
sendToAddress: function() {
if ((this.state.balance - this.state.amount) < 1)
{
alert("Insufficient balance: after this transaction you would have less than 1 LBC in your wallet.")
return;
}
this.setState({
results: "",
});
lbry.sendToAddress(this.state.amount, this.state.address, (results) => {
if(results === true)
{
this.setState({
results: "Your transaction was successfully placed in the queue.",
});
}
else
{
this.setState({
results: "Something went wrong: " + results
});
}
}, (error) => {
this.setState({
results: "Something went wrong: " + error.faultString + " " + error.faultCode
})
});
},
getInitialState: function() {
return {
address: "",
amount: 0.0,
balance: "Checking balance...",
results: "",
}
},
componentWillMount: function() {
lbry.getBalance((results) => {
this.setState({
balance: results,
});
});
},
setAmount: function(event) {
this.setState({
amount: parseFloat(event.target.value),
})
},
setAddress: function(event) {
this.setState({
address: event.target.value,
})
},
render: function() {
return (
);
}
});
var WalletPage = React.createClass({
componentDidMount: function() {
document.title = "My Wallet";
},
/*
Below should be refactored so that balance is shared all of wallet page. Or even broader?
What is the proper React pattern for sharing a global state like balance?
*/
getInitialState: function() {
return {
balance: "Checking balance...",
txlog: "Loading transactions...",
}
},
componentWillMount: function() {
lbry.getBalance((results) => {
this.setState({
balance: results,
})
});
lbry.call('get_transaction_history', {}, (results) => {
var out = 'Transaction history loaded.'
if (results.length == 0) {
out = 'No transactions yet.';
} else {
var rows = [];
rows.push(
Amount |
Time |
Date |
Transaction |
);
results.forEach(function(tx) {
rows.push(
{ (tx["amount"]>0 ? '+' : '' ) + tx["amount"] } |
{ (new Date(tx["time"])).toLocaleTimeString() } |
{ (new Date(tx["time"])).toLocaleDateString() } |
{ tx["txid"] }
|
)
});
out =
}
this.setState({
txlog: out,
})
});
},
render: function() {
return (
Balance
{this.state.balance}
Transaction History
{this.state.txlog}
);
}
});