Wallet page improvements (#155)
* wallet page send form improvements * style tweaks for the send form input fields
This commit is contained in:
parent
cda7e81485
commit
26720dead0
2 changed files with 47 additions and 13 deletions
|
@ -16,9 +16,13 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
class WalletSend extends React.PureComponent<Props> {
|
class WalletSend extends React.PureComponent<Props> {
|
||||||
|
amountInput = null;
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
amount: null,
|
amount: null,
|
||||||
address: null
|
address: null,
|
||||||
|
addressChanged: false,
|
||||||
|
addressValid: false
|
||||||
};
|
};
|
||||||
|
|
||||||
componentWillUpdate(nextProps) {
|
componentWillUpdate(nextProps) {
|
||||||
|
@ -52,6 +56,22 @@ class WalletSend extends React.PureComponent<Props> {
|
||||||
this.setState({ address: null, amount: null });
|
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() {
|
render() {
|
||||||
const { balance } = this.props;
|
const { balance } = this.props;
|
||||||
|
@ -62,20 +82,30 @@ class WalletSend extends React.PureComponent<Props> {
|
||||||
return (
|
return (
|
||||||
<View style={walletStyle.card}>
|
<View style={walletStyle.card}>
|
||||||
<Text style={walletStyle.title}>Send Credits</Text>
|
<Text style={walletStyle.title}>Send Credits</Text>
|
||||||
<Text style={walletStyle.text}>Amount</Text>
|
|
||||||
<View style={[walletStyle.amountRow, walletStyle.bottomMarginMedium]}>
|
|
||||||
<TextInput onChangeText={value => this.setState({amount: value})}
|
|
||||||
keyboardType={'numeric'}
|
|
||||||
value={this.state.amount}
|
|
||||||
style={[walletStyle.input, walletStyle.amountInput]} />
|
|
||||||
<Text style={[walletStyle.text, walletStyle.currency]}>LBC</Text>
|
|
||||||
</View>
|
|
||||||
<Text style={walletStyle.text}>Recipient address</Text>
|
<Text style={walletStyle.text}>Recipient address</Text>
|
||||||
<View style={walletStyle.row}>
|
<View style={[walletStyle.row, walletStyle.bottomMarginMedium]}>
|
||||||
<TextInput onChangeText={value => this.setState({address: value})}
|
<TextInput onChangeText={value => this.setState({
|
||||||
|
address: value,
|
||||||
|
addressChanged: true,
|
||||||
|
addressValid: (value.trim().length == 0 || regexAddress.test(value))
|
||||||
|
})}
|
||||||
|
onBlur={this.handleAddressInputBlur}
|
||||||
|
onSubmitEditing={this.handleAddressInputSubmit}
|
||||||
placeholder={'bbFxRyXXXXXXXXXXXZD8nE7XTLUxYnddTs'}
|
placeholder={'bbFxRyXXXXXXXXXXXZD8nE7XTLUxYnddTs'}
|
||||||
value={this.state.address}
|
value={this.state.address}
|
||||||
|
returnKeyType={'next'}
|
||||||
style={[walletStyle.input, walletStyle.addressInput, walletStyle.bottomMarginMedium]} />
|
style={[walletStyle.input, walletStyle.addressInput, walletStyle.bottomMarginMedium]} />
|
||||||
|
</View>
|
||||||
|
<Text style={walletStyle.text}>Amount</Text>
|
||||||
|
<View style={walletStyle.row}>
|
||||||
|
<View style={walletStyle.amountRow}>
|
||||||
|
<TextInput ref={ref => this.amountInput = ref}
|
||||||
|
onChangeText={value => this.setState({amount: value})}
|
||||||
|
keyboardType={'numeric'}
|
||||||
|
value={this.state.amount}
|
||||||
|
style={[walletStyle.input, walletStyle.amountInput]} />
|
||||||
|
<Text style={[walletStyle.text, walletStyle.currency]}>LBC</Text>
|
||||||
|
</View>
|
||||||
<Button text={'Send'}
|
<Button text={'Send'}
|
||||||
style={[walletStyle.button, walletStyle.sendButton]}
|
style={[walletStyle.button, walletStyle.sendButton]}
|
||||||
disabled={!canSend}
|
disabled={!canSend}
|
||||||
|
|
|
@ -112,10 +112,14 @@ const walletStyle = StyleSheet.create({
|
||||||
},
|
},
|
||||||
amountInput: {
|
amountInput: {
|
||||||
alignSelf: 'flex-start',
|
alignSelf: 'flex-start',
|
||||||
width: 150
|
width: 100,
|
||||||
|
fontSize: 16,
|
||||||
|
letterSpacing: 1
|
||||||
},
|
},
|
||||||
addressInput: {
|
addressInput: {
|
||||||
width: '80%'
|
flex: 1,
|
||||||
|
fontSize: 16,
|
||||||
|
letterSpacing: 1.5
|
||||||
},
|
},
|
||||||
warning: {
|
warning: {
|
||||||
backgroundColor: Colors.Orange,
|
backgroundColor: Colors.Orange,
|
||||||
|
|
Loading…
Add table
Reference in a new issue