display balance when LBC input text is focused #97

Merged
akinwale merged 2 commits from input-focus-balance into master 2019-12-18 10:22:34 +01:00
10 changed files with 76 additions and 10 deletions
Showing only changes of commit 3662834fba - Show all commits

View file

@ -1,5 +1,5 @@
import React from 'react';
import { CLAIM_VALUES, isNameValid } from 'lbry-redux';
import { CLAIM_VALUES, formatCredits, isNameValid } from 'lbry-redux';
import { ActivityIndicator, NativeModules, Picker, Text, TextInput, TouchableOpacity, View } from 'react-native';
import { logPublish } from 'utils/helper';
import Button from 'component/button';
@ -14,6 +14,7 @@ export default class ChannelSelector extends React.PureComponent {
super(props);
this.state = {
creditsInputFocused: false,
currentSelectedValue: Constants.ITEM_ANONYMOUS,
newChannelName: '',
newChannelBid: 0.1,
@ -188,7 +189,7 @@ export default class ChannelSelector extends React.PureComponent {
render() {
const channel = this.state.addingChannel ? 'new' : this.props.channel;
const { enabled, fetchingChannels, channels = [] } = this.props;
const { balance, enabled, fetchingChannels, channels = [] } = this.props;
const pickerItems = [Constants.ITEM_ANONYMOUS, Constants.ITEM_CREATE_A_CHANNEL].concat(
channels ? channels.map(ch => ch.name) : []
);
@ -244,11 +245,18 @@ export default class ChannelSelector extends React.PureComponent {
style={channelSelectorStyle.bidAmountInput}
value={String(newChannelBid)}
onChangeText={this.handleNewChannelBidChange}
onFocus={() => this.setState({ creditsInputFocused: true })}
onBlur={() => this.setState({ creditsInputFocused: false })}
placeholder={'0.00'}
keyboardType={'number-pad'}
underlineColorAndroid={Colors.NextLbryGreen}
/>
<Text style={channelSelectorStyle.currency}>LBC</Text>
<Text style={channelSelectorStyle.balance}>
{this.state.creditsInputFocused
? __('Bal: %balance%', { balance: formatCredits(parseFloat(balance), 1, true) })
: ''}
</Text>
</View>
<Text style={channelSelectorStyle.helpText}>
{__('This LBC remains yours. It is a deposit to reserve the name and can be undone at any time.')}

View file

@ -1,6 +1,6 @@
// @flow
import React from 'react';
import { regexAddress } from 'lbry-redux';
import { formatCredits, regexAddress } from 'lbry-redux';
import { Alert, Clipboard, TextInput, Text, View } from 'react-native';
import Button from 'component/button';
import Colors from 'styles/colors';
@ -24,6 +24,7 @@ class WalletSend extends React.PureComponent<Props> {
address: null,
addressChanged: false,
addressValid: false,
creditsInputFocused: false,
};
componentWillUpdate(nextProps) {
@ -118,6 +119,8 @@ class WalletSend extends React.PureComponent<Props> {
<TextInput
ref={ref => (this.amountInput = ref)}
onChangeText={value => this.setState({ amount: value })}
onFocus={() => this.setState({ creditsInputFocused: true })}
onBlur={() => this.setState({ creditsInputFocused: false })}
keyboardType={'numeric'}
placeholder={'0'}
underlineColorAndroid={Colors.NextLbryGreen}
@ -125,6 +128,11 @@ class WalletSend extends React.PureComponent<Props> {
style={[walletStyle.input, walletStyle.amountInput]}
/>
<Text style={[walletStyle.text, walletStyle.currency]}>LBC</Text>
<Text style={walletStyle.balanceFocus}>
{this.state.creditsInputFocused
? __('Bal: %balance%', { balance: formatCredits(parseFloat(balance), 1, true) })
: ''}
</Text>
</View>
<Button
text={__('Send')}

View file

@ -1,5 +1,5 @@
import React from 'react';
import { CLAIM_VALUES, isNameValid, regexInvalidURI } from 'lbry-redux';
import { CLAIM_VALUES, formatCredits, isNameValid, regexInvalidURI } from 'lbry-redux';
import {
ActivityIndicator,
Alert,
@ -38,6 +38,7 @@ export default class ChannelCreator extends React.PureComponent {
autoStyle: null,
canSave: true,
claimId: null,
creditsInputFocused: false,
currentSelectedValue: Constants.ITEM_ANONYMOUS,
currentPhase: null,
displayName: null,
@ -960,11 +961,18 @@ export default class ChannelCreator extends React.PureComponent {
style={channelCreatorStyle.bidAmountInput}
value={String(newChannelBid)}
onChangeText={this.handleNewChannelBidChange}
onFocus={() => this.setState({ creditsInputFocused: true })}
onBlur={() => this.setState({ creditsInputFocused: false })}
placeholder={'0.00'}
keyboardType={'number-pad'}
underlineColorAndroid={Colors.NextLbryGreen}
/>
<Text style={channelCreatorStyle.currency}>LBC</Text>
<Text style={channelCreatorStyle.balance}>
{this.state.creditsInputFocused
? __('Bal: %balance%', { balance: formatCredits(parseFloat(balance), 1, true) })
: ''}
</Text>
</View>
<Text style={channelCreatorStyle.helpText}>
{__('This LBC remains yours. It is a deposit to reserve the name and can be undone at any time.')}

View file

@ -1,5 +1,5 @@
import React from 'react';
import { Lbry, normalizeURI, parseURI } from 'lbry-redux';
import { Lbry, formatCredits, normalizeURI, parseURI } from 'lbry-redux';
import { Lbryio } from 'lbryinc';
import {
ActivityIndicator,
@ -66,6 +66,7 @@ class FilePage extends React.PureComponent {
autoOpened: false,
autoDownloadStarted: false,
autoPlayMedia: false,
creditsInputFocused: false,
downloadButtonShown: false,
downloadPressed: false,
fileViewLogged: false,
@ -1163,6 +1164,8 @@ class FilePage extends React.PureComponent {
editable={!this.state.sendTipStarted}
ref={ref => (this.tipAmountInput = ref)}
onChangeText={value => this.setState({ tipAmount: value })}
onFocus={() => this.setState({ creditsInputFocused: true })}
onBlur={() => this.setState({ creditsInputFocused: false })}
underlineColorAndroid={Colors.NextLbryGreen}
keyboardType={'numeric'}
placeholder={'0'}
@ -1171,6 +1174,11 @@ class FilePage extends React.PureComponent {
style={[filePageStyle.input, filePageStyle.tipAmountInput]}
/>
<Text style={[filePageStyle.text, filePageStyle.currency]}>LBC</Text>
<Text style={filePageStyle.balance}>
{this.state.creditsInputFocused
? __('Bal: %balance%', { balance: formatCredits(parseFloat(balance), 1, true) })
: ''}
</Text>
</View>
{this.state.sendTipStarted && <ActivityIndicator size={'small'} color={Colors.NextLbryGreen} />}
<Link
@ -1220,9 +1228,10 @@ class FilePage extends React.PureComponent {
</ScrollView>
</View>
)}
{!this.state.fullscreenMode && !this.state.showImageViewer && !this.state.showWebView && (
<FloatingWalletBalance navigation={navigation} />
)}
{!this.state.creditsInputFocused &&
!this.state.fullscreenMode &&
!this.state.showImageViewer &&
!this.state.showWebView && <FloatingWalletBalance navigation={navigation} />}
</View>
);
}

View file

@ -19,6 +19,7 @@ import {
isNameValid,
batchActions,
buildURI,
formatCredits,
normalizeURI,
parseURI,
regexInvalidURI,
@ -83,6 +84,7 @@ class PublishPage extends React.PureComponent {
state = {
canPublish: true,
canUseCamera: false,
creditsInputFocused: false,
documentPickerOpen: false,
editMode: false,
titleFocused: false,
@ -1133,8 +1135,15 @@ class PublishPage extends React.PureComponent {
keyboardType={'numeric'}
value={String(this.state.bid)}
onChangeText={this.handleBidChange}
onFocus={() => this.setState({ creditsInputFocused: true })}
onBlur={() => this.setState({ creditsInputFocused: false })}
/>
<Text style={publishStyle.currency}>LBC</Text>
<Text style={publishStyle.balance}>
{this.state.creditsInputFocused
? __('Bal: %balance%', { balance: formatCredits(parseFloat(balance), 1, true) })
: ''}
</Text>
</View>
<Text style={publishStyle.helpText}>
{__('This LBC remains yours and the deposit can be undone at any time.')}

View file

@ -30,6 +30,11 @@ const channelCreatorStyle = StyleSheet.create({
fontFamily: 'Inter-UI-Regular',
fontSize: 16,
},
balance: {
fontFamily: 'Inter-UI-SemiBold',
fontSize: 14,
marginLeft: 24,
},
channelNameInput: {
fontFamily: 'Inter-UI-Regular',
fontSize: 16,

View file

@ -24,6 +24,11 @@ const channelSelectorStyle = StyleSheet.create({
fontFamily: 'Inter-UI-Regular',
fontSize: 16,
},
balance: {
fontFamily: 'Inter-UI-SemiBold',
fontSize: 14,
marginLeft: 24,
},
channelNameInput: {
fontFamily: 'Inter-UI-Regular',
fontSize: 16,

View file

@ -277,6 +277,7 @@ const filePageStyle = StyleSheet.create({
amountRow: {
flexDirection: 'row',
flex: 0.75,
alignItems: 'center',
},
button: {
backgroundColor: Colors.LbryGreen,
@ -299,9 +300,7 @@ const filePageStyle = StyleSheet.create({
letterSpacing: 1,
},
currency: {
alignSelf: 'flex-start',
fontSize: 12,
marginTop: 15,
marginLeft: 4,
},
descriptionToggle: {
@ -447,6 +446,11 @@ const filePageStyle = StyleSheet.create({
relatedLoading: {
marginTop: 16,
},
balance: {
fontFamily: 'Inter-UI-SemiBold',
fontSize: 14,
marginLeft: 24,
},
});
export default filePageStyle;

View file

@ -466,6 +466,11 @@ const publishStyle = StyleSheet.create({
fontFamily: 'Inter-UI-SemiBold',
fontSize: 12,
},
balance: {
fontFamily: 'Inter-UI-SemiBold',
fontSize: 14,
marginLeft: 24,
},
});
export default publishStyle;

View file

@ -126,6 +126,11 @@ const walletStyle = StyleSheet.create({
marginLeft: 16,
marginBottom: 16,
},
balanceFocus: {
fontFamily: 'Inter-UI-SemiBold',
fontSize: 14,
marginLeft: 24,
},
infoText: {
color: '#aaaaaa',
fontFamily: 'Inter-UI-Regular',