From 2bbd7bf03466e2151bf5822699a5252db4501b84 Mon Sep 17 00:00:00 2001 From: OSBotify <76178356+OSBotify@users.noreply.github.com> Date: Mon, 27 Sep 2021 16:40:52 -0700 Subject: [PATCH 1/2] Merge pull request #5546 from Expensify/version-BUILD-5ddc191d562a2853db7625e7b095b1fdb7ef9b28 (cherry picked from commit ee98b489b8421fa031d27e595519f3cd79baf93f) --- android/app/build.gradle | 4 ++-- ios/NewExpensify/Info.plist | 2 +- ios/NewExpensifyTests/Info.plist | 2 +- package-lock.json | 2 +- package.json | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 2f0a06914834..e2730df66932 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -150,8 +150,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001010206 - versionName "1.1.2-6" + versionCode 1001010207 + versionName "1.1.2-7" } splits { abi { diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index 2dece4813d3c..91ffde0a2c1b 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -31,7 +31,7 @@ CFBundleVersion - 1.1.2.6 + 1.1.2.7 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index 538ef4d80789..12dde7cdf3b5 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.1.2.6 + 1.1.2.7 diff --git a/package-lock.json b/package-lock.json index 84fed12ca91b..12a8967f2da4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.1.2-6", + "version": "1.1.2-7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 95de0a347b1e..0ec54bb83410 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.1.2-6", + "version": "1.1.2-7", "author": "Expensify, Inc.", "homepage": "https://new.expensify.com", "description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.", From 8b9a9e9f40b79ea10c0e27f2b5cfa74a830ac4eb Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 27 Sep 2021 17:38:37 -0600 Subject: [PATCH 2/2] Merge pull request #5524 from Expensify/robert-vbaUnvalidatedError Store account validated state and display error early on VBA flow (cherry picked from commit 5ddc191d562a2853db7625e7b095b1fdb7ef9b28) --- src/components/MenuItem.js | 1 + src/languages/en.js | 1 + src/languages/es.js | 1 + src/libs/actions/User.js | 3 ++- .../ReimbursementAccount/BankAccountStep.js | 18 ++++++++++++++++-- 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/components/MenuItem.js b/src/components/MenuItem.js index b7ffacc1e14d..03b3f4847e48 100644 --- a/src/components/MenuItem.js +++ b/src/components/MenuItem.js @@ -116,6 +116,7 @@ const MenuItem = ({ getButtonBackgroundColorStyle(getButtonState(focused || hovered, pressed, success, disabled)), wrapperStyle, ])} + disabled={disabled} > {({hovered, pressed}) => ( <> diff --git a/src/languages/en.js b/src/languages/en.js index fb85686d62b5..06a211e07a5c 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -384,6 +384,7 @@ export default { toGetStarted: 'To get started with the Expensify Card, you first need to add a bank account.', plaidBodyCopy: 'Give your employees an easier way to pay - and get paid back - for company expenses.', checkHelpLine: 'Your routing number and account number can be found on a check for the account.', + validateAccountError: 'In order to finish setting up your bank account, you must validate your account. Please check your email to validate your account, and return here to finish up!', hasPhoneLoginError: 'To add a verified bank account please ensure your primary login is a valid email and try again. You can add your phone number as a secondary login.', hasBeenThrottledError: ({fromNow}) => `For security reasons, we're taking a break from bank account setup so you can double-check your company information. Please try again ${fromNow}. Sorry!`, buttonConfirm: 'Got it', diff --git a/src/languages/es.js b/src/languages/es.js index 99b3b7ceb785..8386f878938f 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -384,6 +384,7 @@ export default { toGetStarted: 'Para comenzar con la tarjeta Expensify, primero debe agregar una cuenta bancaria.', plaidBodyCopy: 'Ofrezca a sus empleados una forma más sencilla de pagar - y recuperar - los gastos de la empresa.', checkHelpLine: 'Su número de ruta y número de cuenta se pueden encontrar en un cheque de la cuenta bancaria.', + validateAccountError: 'Para terminar de configurar tu cuenta bancaria, debes validar tu cuenta de Expensify. Por favor revisa tu correo electrónico para validar tu cuenta y regresa aquí para continuar.', hasPhoneLoginError: 'Para agregar una cuenta bancaria verificada, asegúrate de que tu nombre de usuario principal sea un correo electrónico válido y vuelve a intentarlo. Puedes agregar tu número de teléfono como nombre de usuario secundario.', hasBeenThrottledError: ({fromNow}) => `Por razones de seguridad, nos tomamos un descanso en la configuración de la cuenta bancaria para que pueda verificar la información de su empresa. Inténtalo de nuevo ${fromNow}. ¡Lo siento!`, buttonConfirm: 'OK', diff --git a/src/libs/actions/User.js b/src/libs/actions/User.js index 799510b06228..faaafe5d1b5b 100644 --- a/src/libs/actions/User.js +++ b/src/libs/actions/User.js @@ -80,7 +80,8 @@ function getUserDetails() { // Update the User onyx key const loginList = _.where(response.loginList, {partnerName: 'expensify.com'}); const expensifyNewsStatus = lodashGet(response, 'account.subscribed', true); - Onyx.merge(ONYXKEYS.USER, {loginList, expensifyNewsStatus: !!expensifyNewsStatus}); + const validatedStatus = lodashGet(response, 'account.validated', false); + Onyx.merge(ONYXKEYS.USER, {loginList, expensifyNewsStatus: !!expensifyNewsStatus, validated: !!validatedStatus}); // Update the nvp_payPalMeAddress NVP const payPalMeAddress = lodashGet(response, `nameValuePairs.${CONST.NVP.PAYPAL_ME_ADDRESS}`, ''); diff --git a/src/pages/ReimbursementAccount/BankAccountStep.js b/src/pages/ReimbursementAccount/BankAccountStep.js index 70e2896bb8c4..e0b446623d74 100644 --- a/src/pages/ReimbursementAccount/BankAccountStep.js +++ b/src/pages/ReimbursementAccount/BankAccountStep.js @@ -5,7 +5,7 @@ import {withOnyx} from 'react-native-onyx'; import HeaderWithCloseButton from '../../components/HeaderWithCloseButton'; import MenuItem from '../../components/MenuItem'; import { - Paycheck, Bank, Lock, + Paycheck, Bank, Lock, Exclamation, } from '../../components/Icon/Expensicons'; import styles from '../../styles/styles'; import TextLink from '../../components/TextLink'; @@ -182,7 +182,7 @@ class BankAccountStep extends React.Component { icon={Bank} title={this.props.translate('bankAccount.logIntoYourBank')} onPress={() => setBankAccountSubStep(CONST.BANK_ACCOUNT.SETUP_TYPE.PLAID)} - disabled={this.props.isPlaidDisabled} + disabled={this.props.isPlaidDisabled || !this.props.user.validated} shouldShowRightIcon /> {this.props.isPlaidDisabled && ( @@ -193,9 +193,20 @@ class BankAccountStep extends React.Component { setBankAccountSubStep(CONST.BANK_ACCOUNT.SETUP_TYPE.MANUAL)} shouldShowRightIcon /> + {!this.props.user.validated && ( + + + + + + {this.props.translate('bankAccount.validateAccountError')} + + + )} {this.props.translate('common.privacy')} @@ -285,5 +296,8 @@ export default compose( reimbursementAccountDraft: { key: ONYXKEYS.REIMBURSEMENT_ACCOUNT_DRAFT, }, + user: { + key: ONYXKEYS.USER, + }, }), )(BankAccountStep);