From 51d67ae1b3e8424830fade6d06220c32c068577f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Rodriguez=20V=C3=A9lez?= Date: Thu, 24 Jun 2021 08:50:57 -0400 Subject: [PATCH] ADD: Accessibility button trait to TouchableOpacity --- BlueComponents.js | 31 ++++++++++++++++++------ UnlockWith.js | 6 ++--- components/AddressInput.js | 9 +++++-- components/AmountInput.js | 7 +++++- components/CoinsSelected.js | 4 +-- components/DynamicQRCode.js | 4 +++ components/FloatButtons.js | 2 +- components/MultipleStepsListItem.js | 9 ++++++- components/SquareButton.js | 1 + components/SquareEnumeratedWords.js | 6 ++++- components/WalletsCarousel.js | 6 ++--- components/navigationStyle.js | 3 ++- loc/en.json | 1 + package.json | 2 +- screen/lnd/browser.js | 2 ++ screen/lnd/lndCreateInvoice.js | 13 +++++++--- screen/lnd/lndViewInvoice.js | 2 +- screen/lnd/lnurlPay.js | 2 ++ screen/lnd/scanLndInvoice.js | 4 +-- screen/receive/aztecoRedeem.js | 2 ++ screen/send/confirm.js | 1 + screen/send/create.js | 10 +++++--- screen/send/details.js | 6 +++++ screen/send/psbtMultisig.js | 2 ++ screen/send/psbtWithHardwareWallet.js | 4 +-- screen/settings/about.js | 3 ++- screen/settings/electrumSettings.js | 6 ++--- screen/transactions/CPFP.js | 8 ++++-- screen/transactions/details.js | 3 ++- screen/transactions/transactionStatus.js | 4 +-- screen/wallets/addMultisig.js | 8 +++--- screen/wallets/addMultisigStep2.js | 2 +- screen/wallets/details.js | 4 +-- screen/wallets/hodlHodl.js | 3 ++- screen/wallets/hodlHodlMyContracts.js | 1 + screen/wallets/list.js | 7 +++--- screen/wallets/provideEntropy.js | 8 +++--- screen/wallets/selectWallet.js | 1 + screen/wallets/transactions.js | 20 ++++++++++++--- 39 files changed, 154 insertions(+), 63 deletions(-) diff --git a/BlueComponents.js b/BlueComponents.js index c1de1fc09..d52efa1ec 100644 --- a/BlueComponents.js +++ b/BlueComponents.js @@ -80,6 +80,7 @@ export const BlueButton = props => { alignItems: 'center', paddingHorizontal: 16, }} + accessibilityRole="button" {...props} > @@ -101,6 +102,7 @@ export const SecondButton = forwardRef((props, ref) => { return ( { export const BitcoinButton = props => { const { colors } = useTheme(); return ( - + { export const VaultButton = props => { const { colors } = useTheme(); return ( - + { export const LightningButton = props => { const { colors } = useTheme(); return ( - + {this.state.wallet.type === LightningCustodianWallet.type && this.state.allowOnchainAddress && ( - + )} {this.state.wallet.type === MultisigHDWallet.type && ( - + { const { colors } = useTheme(); return ( { export const BlueCopyToClipboardButton = ({ stringToCopy, displayText = false }) => { return ( - Clipboard.setString(stringToCopy)}> + Clipboard.setString(stringToCopy)}> {displayText || loc.transactions.details_copy} ); @@ -599,7 +603,12 @@ export class BlueCopyTextToClipboard extends Component { render() { return ( - + {this.state.address} @@ -1193,7 +1202,7 @@ export const BlueReceiveButtonIcon = props => { const { colors } = useTheme(); return ( - + ( this.onFeeSelected(type)} style={[ @@ -1654,6 +1664,7 @@ export class BlueReplaceFeeSuggestions extends Component { ))} this.customTextInput.focus()} style={[ { paddingHorizontal: 16, paddingVertical: 8, marginBottom: 10 }, @@ -1752,6 +1763,7 @@ export const BlueTabs = ({ active, onSwitch, tabs }) => ( {tabs.map((Tab, i) => ( onSwitch(i)} style={[ tabsStyles.tabRoot, @@ -1859,18 +1871,21 @@ export class DynamicQRCode extends Component { {loc.send.dynamic_prev} {this.state.intervalHandler ? loc.send.dynamic_stop : loc.send.dynamic_start} diff --git a/UnlockWith.js b/UnlockWith.js index adf93c014..8b1d3de4c 100644 --- a/UnlockWith.js +++ b/UnlockWith.js @@ -97,13 +97,13 @@ const UnlockWith = () => { const color = colorScheme === 'dark' ? '#FFFFFF' : '#000000'; if ((biometricType === Biometric.TouchID || biometricType === Biometric.Biometrics) && !isStorageEncryptedEnabled) { return ( - + ); } else if (biometricType === Biometric.FaceID && !isStorageEncryptedEnabled) { return ( - + { ); } else if (isStorageEncryptedEnabled) { return ( - + ); diff --git a/components/AddressInput.js b/components/AddressInput.js index 005743a08..b64fe2bfc 100644 --- a/components/AddressInput.js +++ b/components/AddressInput.js @@ -66,10 +66,15 @@ const AddressInput = ({ }); } }} + accessibilityRole="button" style={[styles.scan, stylesHook.scan]} + accessibilityLabel={loc.send.details_scan} + accessibilityHint={loc.send.details_scan_hint} > - - {loc.send.details_scan} + + + {loc.send.details_scan} + ); diff --git a/components/AmountInput.js b/components/AmountInput.js index f49bab7db..3ecc1735a 100644 --- a/components/AmountInput.js +++ b/components/AmountInput.js @@ -240,7 +240,12 @@ class AmountInput extends Component { {!disabled && amount !== BitcoinUnit.MAX && ( - + )} diff --git a/components/CoinsSelected.js b/components/CoinsSelected.js index 58c383ff9..2c7c12550 100644 --- a/components/CoinsSelected.js +++ b/components/CoinsSelected.js @@ -35,11 +35,11 @@ const styles = StyleSheet.create({ }); const CoinsSelected = ({ number, onContainerPress, onClose }) => ( - + {loc.formatString(loc.cc.coins_selected, { number })} - + diff --git a/components/DynamicQRCode.js b/components/DynamicQRCode.js index 10dd7fdad..8e277b3e1 100644 --- a/components/DynamicQRCode.js +++ b/components/DynamicQRCode.js @@ -105,6 +105,7 @@ export class DynamicQRCode extends Component { return ( { @@ -136,18 +137,21 @@ export class DynamicQRCode extends Component { {loc.send.dynamic_prev} {this.state.intervalHandler ? loc.send.dynamic_stop : loc.send.dynamic_start} diff --git a/components/FloatButtons.js b/components/FloatButtons.js index 8aaf0d03a..433e55c38 100644 --- a/components/FloatButtons.js +++ b/components/FloatButtons.js @@ -119,7 +119,7 @@ export const FButton = ({ text, icon, width, first, last, ...props }) => { } return ( - + {icon} {text} diff --git a/components/MultipleStepsListItem.js b/components/MultipleStepsListItem.js index 6a091d6a3..bcb7b25d6 100644 --- a/components/MultipleStepsListItem.js +++ b/components/MultipleStepsListItem.js @@ -139,6 +139,7 @@ const MultipleStepsListItem = props => { {props.button.buttonType === undefined || (props.button.buttonType === MultipleStepsListItemButtohType.full && ( { {props.button.leftText} { )} {!showActivityIndicator && props.rightButton && checked && ( - + {props.rightButton.text} diff --git a/components/SquareButton.js b/components/SquareButton.js index 3003be53b..4bbaf0395 100644 --- a/components/SquareButton.js +++ b/components/SquareButton.js @@ -29,6 +29,7 @@ export const SquareButton = forwardRef((props, ref) => { }} {...props} ref={ref} + accessibilityRole="button" > {props.icon && } diff --git a/components/SquareEnumeratedWords.js b/components/SquareEnumeratedWords.js index 986076b78..680ab840e 100644 --- a/components/SquareEnumeratedWords.js +++ b/components/SquareEnumeratedWords.js @@ -35,7 +35,11 @@ const SquareEnumeratedWords = props => { ); } else { component.push( - + {secret} diff --git a/components/WalletsCarousel.js b/components/WalletsCarousel.js index 14f7b1eb3..c3f696b05 100644 --- a/components/WalletsCarousel.js +++ b/components/WalletsCarousel.js @@ -60,7 +60,7 @@ const nStyles = StyleSheet.create({ const NewWalletPanel = ({ onPress }) => { const { colors } = useTheme(); return ( - + {loc.wallets.list_create_a_wallet} {loc.wallets.list_create_a_wallet_text} @@ -290,8 +290,7 @@ const cStyles = StyleSheet.create({ content: { left: 16, flexDirection: I18nManager.isRTL && Platform.OS === 'android' ? 'row-reverse' : 'row', - -} + }, }); const WalletsCarousel = forwardRef((props, ref) => { @@ -348,7 +347,6 @@ const WalletsCarousel = forwardRef((props, ref) => { inactiveSlideOpacity={I18nManager.isRTL && Platform.OS === 'android' ? 1.0 : 0.7} activeSlideAlignment="start" contentContainerCustomStyle={cStyles.content} - initialNumToRender={10} onLayout={onLayout} {...props} diff --git a/components/navigationStyle.js b/components/navigationStyle.js index 4f3d66aa0..fc4ce1d51 100644 --- a/components/navigationStyle.js +++ b/components/navigationStyle.js @@ -21,7 +21,7 @@ const navigationStyle = ({ closeButton = false, closeButtonFunc, ...opts }, form navigation.goBack(null); }; headerRight = () => ( - + ); @@ -71,6 +71,7 @@ export const navigationStyleTx = (opts, formatter) => { headerTintColor: theme.colors.foregroundColor, headerLeft: () => ( { Keyboard.dismiss(); diff --git a/loc/en.json b/loc/en.json index 431b48359..4cafc498f 100644 --- a/loc/en.json +++ b/loc/en.json @@ -186,6 +186,7 @@ "details_no_signed_tx": "The selected file doesn’t contain a transaction that can be imported.", "details_note_placeholder": "Note to Self", "details_scan": "Scan", + "details_scan_hint": "Double tap to scan or import a destination", "details_total_exceeds_balance": "The sending amount exceeds the available balance.", "details_unrecognized_file_format": "Unrecognized file format", "details_wallet_before_tx": "Before creating a transaction, you must first add a Bitcoin wallet.", diff --git a/package.json b/package.json index a1435070b..b9b18fb9e 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "e2e:debug": "(test -f android/app/build/outputs/apk/debug/app-debug.apk && test -f android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk) || npm run e2e:debug-build; npm run e2e:debug-test", "e2e:release-build": "detox build -c android.emu.release", "e2e:release-test": "detox test -c android.emu.release --record-videos all --take-screenshots all --headless --loglevel trace", - "lint": "eslint *.js screen/**/*.js blue_modules/*.js class/**/*.js models/ loc/ tests/**/*.js components/**/*.js", + "lint": "eslint *.js screen/**/*.js blue_modules/*.js class/**/*.js models/ loc/ tests/**/*.js components/**/*.js components/*.js", "lint:fix": "npm run lint -- --fix", "lint:quickfix": "git status --porcelain | grep -v '\\.json' | grep '\\.js' --color=never | awk '{print $2}' | xargs eslint --fix; exit 0", "unit": "jest tests/unit/*" diff --git a/screen/lnd/browser.js b/screen/lnd/browser.js index f7e4e2972..6991f0c3a 100644 --- a/screen/lnd/browser.js +++ b/screen/lnd/browser.js @@ -482,6 +482,7 @@ export default class Browser extends Component { {Platform.OS !== 'ios' && ( // on iOS lappbrowser opens blank page, thus, no HOME button { processedInvoices = {}; this.setState({ url: 'https://bluewallet.io/marketplace/' }); @@ -496,6 +497,7 @@ export default class Browser extends Component { )} { this.webView.current?.reload(); }} diff --git a/screen/lnd/lndCreateInvoice.js b/screen/lnd/lndCreateInvoice.js index f26e91603..bbe865038 100644 --- a/screen/lnd/lndCreateInvoice.js +++ b/screen/lnd/lndCreateInvoice.js @@ -304,7 +304,14 @@ const LNDCreateInvoice = () => { const renderScanClickable = () => { return ( - + {loc.send.details_scan} @@ -320,13 +327,13 @@ const LNDCreateInvoice = () => { return ( {!isLoading && ( - + {loc.wallets.select_wallet.toLowerCase()} )} - + {wallet.current.getLabel()} {formatBalanceWithoutSuffix(wallet.current.getBalance(), BitcoinUnit.SATS, false)} diff --git a/screen/lnd/lndViewInvoice.js b/screen/lnd/lndViewInvoice.js index 8421af5e7..c187f93bc 100644 --- a/screen/lnd/lndViewInvoice.js +++ b/screen/lnd/lndViewInvoice.js @@ -214,7 +214,7 @@ const LNDViewInvoice = () => { /> {invoice.payment_preimage && typeof invoice.payment_preimage === 'string' ? ( - + {loc.send.create_details} {!this.state.isLoading && ( this.props.navigation.navigate('SelectWallet', { onWalletSelect: this.onWalletSelect, chainType: Chain.OFFCHAIN }) @@ -139,6 +140,7 @@ export default class LnurlPay extends Component { )} this.props.navigation.navigate('SelectWallet', { onWalletSelect: this.onWalletSelect, chainType: Chain.OFFCHAIN }) diff --git a/screen/lnd/scanLndInvoice.js b/screen/lnd/scanLndInvoice.js index 05354d633..7505458f0 100644 --- a/screen/lnd/scanLndInvoice.js +++ b/screen/lnd/scanLndInvoice.js @@ -247,13 +247,13 @@ const ScanLndInvoice = () => { return ( {!isLoading && ( - + {loc.wallets.select_wallet.toLowerCase()} )} - + {walletLabel} {formatBalanceWithoutSuffix(wallet.getBalance(), BitcoinUnit.SATS, false)} diff --git a/screen/receive/aztecoRedeem.js b/screen/receive/aztecoRedeem.js index 3ad705514..e6265a7fb 100644 --- a/screen/receive/aztecoRedeem.js +++ b/screen/receive/aztecoRedeem.js @@ -112,6 +112,7 @@ export default class AztecoRedeem extends Component { {!this.state.isLoading && ( this.props.navigation.navigate('SelectWallet', { @@ -126,6 +127,7 @@ export default class AztecoRedeem extends Component { )} this.props.navigation.navigate('SelectWallet', { diff --git a/screen/send/confirm.js b/screen/send/confirm.js index 1b01dc86e..408ce1406 100644 --- a/screen/send/confirm.js +++ b/screen/send/confirm.js @@ -221,6 +221,7 @@ export default class Confirm extends Component { {this.state.isLoading ? : this.send()} title={loc.send.confirm_sendNow} />} { diff --git a/screen/send/create.js b/screen/send/create.js index 84304b138..20f219d70 100644 --- a/screen/send/create.js +++ b/screen/send/create.js @@ -144,10 +144,14 @@ export default class SendCreate extends Component { {loc.send.create_this_is_hex} - Clipboard.setString(this.state.tx)}> + Clipboard.setString(this.state.tx)}> {loc.send.create_copy} - Linking.openURL('https://coinb.in/?verify=' + this.state.tx)}> + Linking.openURL('https://coinb.in/?verify=' + this.state.tx)} + > {loc.send.create_verify} @@ -258,7 +262,7 @@ SendCreate.navigationOptions = navigationStyle({}, (options, { theme, navigation let headerRight; if (route.params.exportTXN) { headerRight = () => ( - + ); diff --git a/screen/send/details.js b/screen/send/details.js index a8a8565f0..1b7bf5716 100644 --- a/screen/send/details.js +++ b/screen/send/details.js @@ -930,6 +930,7 @@ const SendDetails = () => { {options.map(({ label, time, fee, rate, active }, index) => ( { setFeePrecalc(fp => ({ ...fp, current: fee })); @@ -954,6 +955,7 @@ const SendDetails = () => { ))} { let error = loc.send.fee_satbyte; @@ -1102,6 +1104,7 @@ const SendDetails = () => { {!isLoading && ( navigation.navigate('SelectWallet', { onWalletSelect, chainType: Chain.ONCHAIN })} > @@ -1111,6 +1114,7 @@ const SendDetails = () => { )} navigation.navigate('SelectWallet', { onWalletSelect, chainType: Chain.ONCHAIN })} > @@ -1251,6 +1255,7 @@ const SendDetails = () => { setIsFeeSelectionModalVisible(true)} disabled={isLoading} style={styles.fee} @@ -1428,6 +1433,7 @@ SendDetails.navigationOptions = navigationStyleTx({}, (options, { theme, navigat ...options, headerRight: () => ( { {renderProvideSignature && ( { {isConfirmEnabled() && ( { {loc.send.create_this_is_hex} - + {loc.send.create_copy} - + {loc.send.create_verify} diff --git a/screen/settings/about.js b/screen/settings/about.js index f3c9adf5f..c5b07a3df 100644 --- a/screen/settings/about.js +++ b/screen/settings/about.js @@ -161,7 +161,7 @@ const About = () => { Electrum server - + {loc.settings.about_sm_github} @@ -211,6 +211,7 @@ const About = () => { Unique ID: {getUniqueId()} { const stringToCopy = 'user.id:' + getUniqueId(); Sentry.captureMessage('copied unique id'); diff --git a/screen/settings/electrumSettings.js b/screen/settings/electrumSettings.js index 6e900f80b..b28a92c61 100644 --- a/screen/settings/electrumSettings.js +++ b/screen/settings/electrumSettings.js @@ -236,7 +236,7 @@ export default class ElectrumSettings extends Component { {`${server.host}:${server.port || server.sslPort}`} - this.selectServer(server)}> + this.selectServer(server)}> {loc.settings.electrum_select} @@ -328,7 +328,7 @@ export default class ElectrumSettings extends Component { {loc.settings.electrum_settings_explain} - this.resetToDefault()}> + this.resetToDefault()}> {loc.settings.electrum_reset} @@ -371,7 +371,7 @@ export default class ElectrumSettings extends Component { {loc.settings.electrum_history} - this.clearHistoryAlert()}> + this.clearHistoryAlert()}> {loc.settings.electrum_clear} diff --git a/screen/transactions/CPFP.js b/screen/transactions/CPFP.js index 283cd9321..b6deee93e 100644 --- a/screen/transactions/CPFP.js +++ b/screen/transactions/CPFP.js @@ -198,10 +198,14 @@ export default class CPFP extends Component { {loc.send.create_this_is_hex} - Clipboard.setString(this.state.txhex)}> + Clipboard.setString(this.state.txhex)}> {loc.send.create_copy} - Linking.openURL('https://coinb.in/?verify=' + this.state.txhex)}> + Linking.openURL('https://coinb.in/?verify=' + this.state.txhex)} + > {loc.send.create_verify} this.broadcast()} title={loc.send.confirm_sendNow} /> diff --git a/screen/transactions/details.js b/screen/transactions/details.js index ef59866b8..4c9822b20 100644 --- a/screen/transactions/details.js +++ b/screen/transactions/details.js @@ -66,7 +66,7 @@ const TransactionsDetails = () => { useEffect(() => { setOptions({ headerRight: () => ( - + {loc.wallets.details_save} ), @@ -242,6 +242,7 @@ const TransactionsDetails = () => { ]} /> { } else if (isRBFCancelPossible === buttonStatus.possible) { return ( <> - + {loc.transactions.status_cancel} @@ -348,7 +348,7 @@ const TransactionsStatus = () => { {renderCPFP()} {renderRBFBumpFee()} {renderRBFCancel()} - + {loc.send.create_details.toLowerCase()} diff --git a/screen/wallets/addMultisig.js b/screen/wallets/addMultisig.js index 985893bb3..df969e590 100644 --- a/screen/wallets/addMultisig.js +++ b/screen/wallets/addMultisig.js @@ -108,7 +108,7 @@ const WalletsAddMultisig = () => { {loc.multisig.required_keys_out_of_total} - + { /> {m} - + @@ -127,11 +127,11 @@ const WalletsAddMultisig = () => { - + {n} - + diff --git a/screen/wallets/addMultisigStep2.js b/screen/wallets/addMultisigStep2.js index 3af1d840f..cdd86ad5d 100644 --- a/screen/wallets/addMultisigStep2.js +++ b/screen/wallets/addMultisigStep2.js @@ -643,7 +643,7 @@ const WalletsAddMultisigStep2 = () => { const renderHelp = () => { return ( - + {loc.multisig.ms_help} diff --git a/screen/wallets/details.js b/screen/wallets/details.js index ba5d46917..87e3beff6 100644 --- a/screen/wallets/details.js +++ b/screen/wallets/details.js @@ -179,7 +179,7 @@ const WalletDetails = () => { // eslint-disable-next-line react-hooks/exhaustive-deps setOptions({ headerRight: () => ( - + {loc.wallets.details_save} ), @@ -599,7 +599,7 @@ const WalletDetails = () => { )} - + {`${loc.wallets.details_delete}${' '}`} diff --git a/screen/wallets/hodlHodl.js b/screen/wallets/hodlHodl.js index a2f2933df..e0be72dde 100644 --- a/screen/wallets/hodlHodl.js +++ b/screen/wallets/hodlHodl.js @@ -714,11 +714,12 @@ export default class HodlHodl extends Component { {this.state.isLoading ? ( ) : ( - this.setState({ isChooseCountryModalVisible: true })}> + this.setState({ isChooseCountryModalVisible: true })}> {this.getNativeCountryName()} )} { this.setState({ isFiltersModalVisible: true }); diff --git a/screen/wallets/hodlHodlMyContracts.js b/screen/wallets/hodlHodlMyContracts.js index abbdf3dec..a36e7ebc0 100644 --- a/screen/wallets/hodlHodlMyContracts.js +++ b/screen/wallets/hodlHodlMyContracts.js @@ -443,6 +443,7 @@ HodlHodlMyContracts.navigationOptions = navigationStyle( }, headerRight: () => ( { Alert.alert( diff --git a/screen/wallets/list.js b/screen/wallets/list.js index d38298ebc..6ee94274b 100644 --- a/screen/wallets/list.js +++ b/screen/wallets/list.js @@ -129,13 +129,13 @@ const WalletsList = () => { }, headerRight: () => I18nManager.isRTL ? null : ( - + ), headerLeft: () => I18nManager.isRTL ? ( - + ) : null, @@ -218,7 +218,7 @@ const WalletsList = () => { {`${loc.transactions.list_title}${' '}`} {isDesktop && ( - refreshTransactions(true)} disabled={isLoading}> + refreshTransactions(true)} disabled={isLoading}> )} @@ -247,6 +247,7 @@ const WalletsList = () => { if (carouselData.length > 0 && !carouselData.some(wallet => wallet.type === PlaceholderWallet.type)) { const button = ( { navigate('HodlHodl', { screen: 'HodlHodl' }); }} diff --git a/screen/wallets/provideEntropy.js b/screen/wallets/provideEntropy.js index 617f0bbf2..34e85b816 100644 --- a/screen/wallets/provideEntropy.js +++ b/screen/wallets/provideEntropy.js @@ -103,10 +103,10 @@ export const convertToBuffer = ({ entropy, bits }) => { const Coin = ({ push }) => ( - push(getEntropy(0, 2))} style={styles.coinBody}> + push(getEntropy(0, 2))} style={styles.coinBody}> - push(getEntropy(1, 2))} style={styles.coinBody}> + push(getEntropy(1, 2))} style={styles.coinBody}> @@ -151,7 +151,7 @@ const Dice = ({ push, sides }) => { return ( {[...Array(sides)].map((_, i) => ( - push(getEntropy(i, sides))}> + push(getEntropy(i, sides))}> {sides === 6 ? ( @@ -240,7 +240,7 @@ const Entropy = () => { return ( - setShow(!show)}> + setShow(!show)}> {show ? hex : `${bits} of 256 bits`} diff --git a/screen/wallets/selectWallet.js b/screen/wallets/selectWallet.js index d62b43fad..f4c284d21 100644 --- a/screen/wallets/selectWallet.js +++ b/screen/wallets/selectWallet.js @@ -105,6 +105,7 @@ const SelectWallet = () => { ReactNativeHapticFeedback.trigger('selection', { ignoreAndroidSystemSettings: false }); onWalletSelect(item); }} + accessibilityRole="button" > diff --git a/screen/wallets/transactions.js b/screen/wallets/transactions.js index c5cc54254..821479695 100644 --- a/screen/wallets/transactions.js +++ b/screen/wallets/transactions.js @@ -259,7 +259,13 @@ const WalletTransactions = () => { {loc.transactions.list_title} - + @@ -340,6 +346,7 @@ const WalletTransactions = () => { return Platform.select({ android: ( { if (wallet.type === LightningCustodianWallet.type) { navigate('LappBrowserRoot', { @@ -358,6 +365,7 @@ const WalletTransactions = () => { ios: wallet.getBalance() > 0 ? ( { Linking.openURL('https://bluewallet.io/marketplace/'); }} @@ -373,6 +381,7 @@ const WalletTransactions = () => { const renderLappBrowserButton = () => { return ( { navigate('LappBrowserRoot', { screen: 'LappBrowser', @@ -392,7 +401,11 @@ const WalletTransactions = () => { const renderSellFiat = () => { return ( - + {loc.wallets.list_tap_here_to_buy} ); @@ -655,7 +668,7 @@ const WalletTransactions = () => { {isLightning() && {loc.wallets.list_empty_txs2_lightning}} {!isLightning() && ( - + {loc.wallets.list_tap_here_to_buy} @@ -717,6 +730,7 @@ WalletTransactions.navigationOptions = navigationStyle({}, (options, { theme, na return { headerRight: () => (