diff --git a/android/app/build.gradle b/android/app/build.gradle index d41648ec4508..decb50efb8fb 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -149,8 +149,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001011500 - versionName "1.1.15-0" + versionCode 1001011501 + versionName "1.1.15-1" } splits { abi { diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index 099879f4f8cf..b7ed93d7b245 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -31,7 +31,7 @@ CFBundleVersion - 1.1.15.0 + 1.1.15.1 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index 38f2e0e43ef9..00ce6d9e60a2 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.1.15.0 + 1.1.15.1 diff --git a/package-lock.json b/package-lock.json index a2d8f2353a65..73bb16aa0a29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.1.15-0", + "version": "1.1.15-1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 74b98915db22..90cf260f1501 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.1.15-0", + "version": "1.1.15-1", "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.", diff --git a/src/languages/en.js b/src/languages/en.js index bde8d96d6b5d..deb4bba810b4 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -675,13 +675,13 @@ export default { headerWithEcard: 'Cards are ready!', noVBACopy: 'Connect a bank account to issue unlimited Expensify Cards for your workspace members and access all of these incredible benefits:', VBANoECardCopy: 'Add a work email address to issue unlimited Expensify Cards for your workspace members, as well as all of these incredible benefits:', + conciergeCanHelp: 'Concierge can help you add a work email address to enable the Expensify Card.', VBAWithECardCopy: 'Enjoy all these incredible benefits:', benefit1: 'Up to 2% cash back', benefit2: 'Digital and physical cards', benefit3: 'No personal liability', benefit4: 'Customizable limits', - addWorkEmail: 'Add work email address', - checkingDomain: 'Hang tight! We are still working on enabling your Expensify Cards. Check back here in a few minutes.', + chatWithConcierge: 'Chat with Concierge', }, reimburse: { captureReceipts: 'Capture receipts', @@ -745,9 +745,9 @@ export default { streamlinePayments: 'Streamline payments', oneMoreThing: 'One more thing!', allSet: 'You\'re all set!', - accountDescriptionNoCards: 'This bank account will be used to reimburse expenses, collect invoices, and pay bills all from the same account.\n\nPlease add a work email address as a secondary login to enable the Expensify Card.', + accountDescriptionNoCards: 'This bank account will be used to reimburse expenses, collect invoices, and pay bills all from the same account.\n\nConcierge can help you add a work email address to enable the Expensify Card.', accountDescriptionWithCards: 'This bank account will be used to issue corporate cards, reimburse expenses, collect invoices, and pay bills all from the same account.', - addWorkEmail: 'Add work email address', + chatWithConcierge: 'Chat with Concierge', letsFinishInChat: 'Let\'s finish in chat!', almostDone: 'Almost done!', disconnectBankAccount: 'Disconnect bank account', diff --git a/src/languages/es.js b/src/languages/es.js index 2e66e634201e..b40c910075b1 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -677,13 +677,13 @@ export default { headerWithEcard: '¡Tus tarjetas están listas!', noVBACopy: 'Conecta una cuenta bancaria para emitir Tarjetas Expensify ilimitadas para los miembros de tu espacio de trabajo y acceder a todas estas increíbles ventajas:', VBANoECardCopy: 'Agrega tu correo electrónico de trabajo para emitir Tarjetas Expensify ilimitadas para los miembros de tu espacio de trabajo y acceder a todas estas increíbles ventajas:', + conciergeCanHelp: 'Concierge te puede ayudar a añadir un correo electrónico de trabajo para activar la Tarjeta Expensify.', VBAWithECardCopy: 'Disfruta de todas estas increíbles ventajas:', benefit1: 'Hasta un 2% de devolución en tus gastos', benefit2: 'Tarjetas digitales y físicas', benefit3: 'Sin responsabilidad personal', benefit4: 'Límites personalizables', - addWorkEmail: 'Añadir correo electrónico de trabajo', - checkingDomain: '¡Un momento! Estamos todavía trabajando para habilitar tu Tarjeta Expensify. Vuelve aquí en unos minutos.', + chatWithConcierge: 'Chatea con Concierge', }, reimburse: { captureReceipts: 'Captura recibos', @@ -747,9 +747,9 @@ export default { streamlinePayments: 'Optimiza pagos', oneMoreThing: '¡Una cosa más!', allSet: '¡Todo listo!', - accountDescriptionNoCards: 'Esta cuenta bancaria se utilizará para reembolsar gastos y cobrar y pagar facturas, todo desde la misma cuenta.\n\nPor favor añade un correo electrónico de trabajo como tu nombre de usuario secundario para activar la Tarjeta Expensify.', + accountDescriptionNoCards: 'Esta cuenta bancaria se utilizará para reembolsar gastos y cobrar y pagar facturas, todo desde la misma cuenta. Concierge puede ayudarte a añadir tu correo de trabajo para activar la Tarjeta Expensify.', accountDescriptionWithCards: 'Esta cuenta bancaria se utilizará para emitir tarjetas corporativas, reembolsar gastos y cobrar y pagar facturas, todo desde la misma cuenta.', - addWorkEmail: 'Añadir correo electrónico de trabajo', + chatWithConcierge: 'Chat con Concierge', letsFinishInChat: '¡Continuemos en el chat!', almostDone: '¡Casi listo!', disconnectBankAccount: 'Desconectar cuenta bancaria', diff --git a/src/libs/Pusher/EventType.js b/src/libs/Pusher/EventType.js index 76cb1b354c1d..8eb739869fd2 100644 --- a/src/libs/Pusher/EventType.js +++ b/src/libs/Pusher/EventType.js @@ -7,5 +7,4 @@ export default { REPORT_COMMENT_EDIT: 'reportCommentEdit', REPORT_TOGGLE_PINNED: 'reportTogglePinned', PREFERRED_LOCALE: 'preferredLocale', - EXPENSIFY_CARD_UPDATE: 'expensifyCardUpdate', }; diff --git a/src/libs/actions/User.js b/src/libs/actions/User.js index 4c77b7fdb2cf..4a5d60e4badd 100644 --- a/src/libs/actions/User.js +++ b/src/libs/actions/User.js @@ -284,30 +284,6 @@ function subscribeToUserEvents() { }); } -function subscribeToExpensifyCardUpdates() { - const pusherChannelName = `private-user-accountID-${currentUserAccountID}`; - - // Handle Expensify Card approval flow updates - Pusher.subscribe(pusherChannelName, Pusher.TYPE.EXPENSIFY_CARD_UPDATE, (pushJSON) => { - if (pushJSON.isUsingExpensifyCard) { - Onyx.merge(ONYXKEYS.USER, {isUsingExpensifyCard: pushJSON.isUsingExpensifyCard, isCheckingDomain: null}); - Pusher.unsubscribe(pusherChannelName, Pusher.TYPE.EXPENSIFY_CARD_UPDATE); - } else { - Onyx.merge(ONYXKEYS.USER, {isCheckingDomain: pushJSON.isCheckingDomain}); - } - }, false, - () => { - NetworkConnection.triggerReconnectionCallbacks('pusher re-subscribed to private user channel'); - }) - .catch((error) => { - Log.info( - '[User] Failed to subscribe to Pusher channel', - false, - {error, pusherChannelName, eventName: Pusher.TYPE.EXPENSIFY_CARD_UPDATE}, - ); - }); -} - /** * Sync preferredSkinTone with Onyx and Server * @param {String} skinTone @@ -342,5 +318,4 @@ export { setPreferredSkinTone, setShouldUseSecureStaging, clearUserErrorMessage, - subscribeToExpensifyCardUpdates, }; diff --git a/src/pages/ReimbursementAccount/EnableStep.js b/src/pages/ReimbursementAccount/EnableStep.js index a2dbefbae0df..d3e1366b7b2c 100644 --- a/src/pages/ReimbursementAccount/EnableStep.js +++ b/src/pages/ReimbursementAccount/EnableStep.js @@ -10,19 +10,18 @@ import Navigation from '../../libs/Navigation/Navigation'; import Text from '../../components/Text'; import compose from '../../libs/compose'; import ONYXKEYS from '../../ONYXKEYS'; -import {Mail, Close} from '../../components/Icon/Expensicons'; +import {ChatBubble, Close} from '../../components/Icon/Expensicons'; import MenuItem from '../../components/MenuItem'; import getBankIcon from '../../components/Icon/BankIcons'; import {getPaymentMethods} from '../../libs/actions/PaymentMethods'; import FullScreenLoadingIndicator from '../../components/FullscreenLoadingIndicator'; import bankAccountPropTypes from '../../components/bankAccountPropTypes'; +import {navigateToConciergeChat} from '../../libs/actions/Report'; import confettiPop from '../../../assets/images/confetti-pop.gif'; import Icon from '../../components/Icon'; import WorkspaceSection from '../workspace/WorkspaceSection'; import {ConciergeBlue} from '../../components/Icon/Illustrations'; import {requestResetFreePlanBankAccount} from '../../libs/actions/BankAccounts'; -import {openOldDotLink} from '../../libs/actions/Link'; -import {subscribeToExpensifyCardUpdates} from '../../libs/actions/User'; const propTypes = { /** Are we loading payment methods? */ @@ -73,11 +72,10 @@ class EnableStep extends React.Component { }]; if (!isUsingExpensifyCard) { menuItems.unshift({ - title: this.props.translate('workspace.bankAccount.addWorkEmail'), - icon: Mail, + title: this.props.translate('workspace.bankAccount.chatWithConcierge'), + icon: ChatBubble, onPress: () => { - openOldDotLink('settings?param={"section":"account","openModal":"secondaryLogin"}'); - subscribeToExpensifyCardUpdates(); + navigateToConciergeChat(); }, shouldShowRightIcon: true, }); @@ -113,11 +111,6 @@ class EnableStep extends React.Component { : this.props.translate('workspace.bankAccount.accountDescriptionWithCards')} - {this.props.user.isCheckingDomain && ( - - {this.props.translate('workspace.card.checkingDomain')} - - )} ); diff --git a/src/pages/workspace/card/WorkspaceCardVBANoECardView.js b/src/pages/workspace/card/WorkspaceCardVBANoECardView.js index b0a143519c0e..a0b158532edb 100644 --- a/src/pages/workspace/card/WorkspaceCardVBANoECardView.js +++ b/src/pages/workspace/card/WorkspaceCardVBANoECardView.js @@ -1,70 +1,55 @@ import React from 'react'; import {View} from 'react-native'; -import {withOnyx} from 'react-native-onyx'; import Text from '../../../components/Text'; import styles from '../../../styles/styles'; import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; -import {Mail} from '../../../components/Icon/Expensicons'; +import {Concierge} from '../../../components/Icon/Expensicons'; import {JewelBoxBlue} from '../../../components/Icon/Illustrations'; import UnorderedList from '../../../components/UnorderedList'; import WorkspaceSection from '../WorkspaceSection'; +import {navigateToConciergeChat} from '../../../libs/actions/Report'; import Navigation from '../../../libs/Navigation/Navigation'; -import {openOldDotLink} from '../../../libs/actions/Link'; -import {subscribeToExpensifyCardUpdates} from '../../../libs/actions/User'; -import ONYXKEYS from '../../../ONYXKEYS'; -import compose from '../../../libs/compose'; const propTypes = { ...withLocalizePropTypes, }; const WorkspaceCardVBANoECardView = props => ( - <> - { - Navigation.dismissModal(); - openOldDotLink('settings?param={"section":"account","openModal":"secondaryLogin"}'); - subscribeToExpensifyCardUpdates(); - }, - icon: Mail, - shouldShowRightIcon: true, + { + Navigation.dismissModal(); + navigateToConciergeChat(); }, + icon: Concierge, + shouldShowRightIcon: true, + }, + ]} + > + + {props.translate('workspace.card.VBANoECardCopy')} + + + - - {props.translate('workspace.card.VBANoECardCopy')} - + /> - - - {props.user.isCheckingDomain && ( - - {props.translate('workspace.card.checkingDomain')} - - )} - + + {props.translate('workspace.card.conciergeCanHelp')} + + ); WorkspaceCardVBANoECardView.propTypes = propTypes; WorkspaceCardVBANoECardView.displayName = 'WorkspaceCardVBANoECardView'; -export default compose( - withLocalize, - withOnyx({ - user: { - key: ONYXKEYS.USER, - }, - }), -)(WorkspaceCardVBANoECardView); +export default withLocalize(WorkspaceCardVBANoECardView);