From 26720dead0841c4c133cf733f5ad631b339e5f75 Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola Date: Mon, 4 Jun 2018 17:34:03 +0100 Subject: [PATCH] Wallet page improvements (#155) * wallet page send form improvements * style tweaks for the send form input fields --- app/src/component/walletSend/view.js | 52 ++++++++++++++++++++++------ app/src/styles/wallet.js | 8 +++-- 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/app/src/component/walletSend/view.js b/app/src/component/walletSend/view.js index 73cc59c..2559410 100644 --- a/app/src/component/walletSend/view.js +++ b/app/src/component/walletSend/view.js @@ -16,9 +16,13 @@ type Props = { }; class WalletSend extends React.PureComponent { + amountInput = null; + state = { amount: null, - address: null + address: null, + addressChanged: false, + addressValid: false }; componentWillUpdate(nextProps) { @@ -52,6 +56,22 @@ class WalletSend extends React.PureComponent { this.setState({ address: null, amount: null }); } } + + handleAddressInputBlur = () => { + if (this.state.addressChanged && !this.state.addressValid) { + const { notify } = this.props; + notify({ + message: 'The recipient address is not a valid LBRY address.', + displayType: ['toast'] + }); + } + } + + handleAddressInputSubmit = () => { + if (this.amountInput) { + this.amountInput.focus(); + } + } render() { const { balance } = this.props; @@ -62,20 +82,30 @@ class WalletSend extends React.PureComponent { return ( Send Credits - Amount - - this.setState({amount: value})} - keyboardType={'numeric'} - value={this.state.amount} - style={[walletStyle.input, walletStyle.amountInput]} /> - LBC - Recipient address - - this.setState({address: value})} + + this.setState({ + address: value, + addressChanged: true, + addressValid: (value.trim().length == 0 || regexAddress.test(value)) + })} + onBlur={this.handleAddressInputBlur} + onSubmitEditing={this.handleAddressInputSubmit} placeholder={'bbFxRyXXXXXXXXXXXZD8nE7XTLUxYnddTs'} value={this.state.address} + returnKeyType={'next'} style={[walletStyle.input, walletStyle.addressInput, walletStyle.bottomMarginMedium]} /> + + Amount + + + this.amountInput = ref} + onChangeText={value => this.setState({amount: value})} + keyboardType={'numeric'} + value={this.state.amount} + style={[walletStyle.input, walletStyle.amountInput]} /> + LBC +