diff --git a/dist/index.html b/dist/index.html index cbd6e497e..d4a10ed73 100644 --- a/dist/index.html +++ b/dist/index.html @@ -43,6 +43,7 @@ + diff --git a/js/app.js b/js/app.js index c2fc77148..51e70b8d8 100644 --- a/js/app.js +++ b/js/app.js @@ -81,11 +81,13 @@ var App = React.createClass({ case 'send': case 'receive': case 'claim': + case 'referral': return { '?wallet' : 'Overview', '?send' : 'Send', '?receive' : 'Receive', - '?claim' : 'Claim Beta Code' + '?claim' : 'Claim Beta Code', + '?referral' : 'Claim Referral', }; default: return null; @@ -109,6 +111,8 @@ var App = React.createClass({ return ; case 'claim': return ; + case 'referral': + return ; case 'wallet': case 'send': case 'receive': diff --git a/js/page/referral.js b/js/page/referral.js new file mode 100644 index 000000000..e15b6bfbb --- /dev/null +++ b/js/page/referral.js @@ -0,0 +1,89 @@ +var referralCodeContentStyle = { + display: 'inline-block', + textAlign: 'left', + width: '600px', +}, referralCodeLabelStyle = { + display: 'inline-block', + cursor: 'default', + width: '130px', + textAlign: 'right', + marginRight: '6px', +}; + +var ReferralPage = React.createClass({ + getInitialState: function() { + return { + submitting: false, + } + }, + handleSubmit: function() { + if (!this.refs.code.value) { + alert('Please enter a referral code.'); + return; + } else if (!this.refs.email.value) { + alert('Please enter an email address.'); + return; + } + + this.setState({ + submitting: true + }); + + lbry.getNewAddress((address) => { + var code = this.refs.code.value; + var email = this.refs.email.value; + + var xhr = new XMLHttpRequest; + xhr.addEventListener('load', () => { + var response = JSON.parse(xhr.responseText); + + if (response.success) { + var credits = response.activationCredits + response.referralCredits; + alert('Your referral code has been redeemed! ' + credits + ' credits will be added to ' + + 'your balance shortly.'); + window.location = '?home'; + } else { + alert(response.reason); + this.setState({ + submitting: false + }); + } + }); + + xhr.addEventListener('error', () => { + this.setState({ + submitting: false + }); + alert('LBRY couldn\'t connect to our servers to confirm your referral code. Please check your ' + + 'internet connection.'); + }); + + xhr.open('POST', 'https://invites.lbry.io/check', true); + xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xhr.send('code=' + encodeURIComponent(code) + '&address=' + encodeURIComponent(address) + + '&email=' + encodeURIComponent(email)); + }); + }, + render: function() { + return ( + + + Claim your referral credits + + Did you refer someone to LBRY? Enter your referral code and email address below to receive your credits! + + + + Referral code + Email + + + + + + + + ); + } +});
Did you refer someone to LBRY? Enter your referral code and email address below to receive your credits!