Skip to content

Commit

Permalink
Merge pull request #6318 from Expensify/OSBotify-cherry-pick-staging-…
Browse files Browse the repository at this point in the history
…6313
  • Loading branch information
OSBotify authored Nov 16, 2021
2 parents dc02b31 + 58c0804 commit a714fd9
Show file tree
Hide file tree
Showing 11 changed files with 51 additions and 99 deletions.
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
2 changes: 1 addition & 1 deletion ios/NewExpensify/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>1.1.15.0</string>
<string>1.1.15.1</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>
Expand Down
2 changes: 1 addition & 1 deletion ios/NewExpensifyTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.1.15.0</string>
<string>1.1.15.1</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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.",
Expand Down
8 changes: 4 additions & 4 deletions src/languages/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down Expand Up @@ -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',
Expand Down
8 changes: 4 additions & 4 deletions src/languages/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down Expand Up @@ -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',
Expand Down
1 change: 0 additions & 1 deletion src/libs/Pusher/EventType.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@ export default {
REPORT_COMMENT_EDIT: 'reportCommentEdit',
REPORT_TOGGLE_PINNED: 'reportTogglePinned',
PREFERRED_LOCALE: 'preferredLocale',
EXPENSIFY_CARD_UPDATE: 'expensifyCardUpdate',
};
25 changes: 0 additions & 25 deletions src/libs/actions/User.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -342,5 +318,4 @@ export {
setPreferredSkinTone,
setShouldUseSecureStaging,
clearUserErrorMessage,
subscribeToExpensifyCardUpdates,
};
17 changes: 5 additions & 12 deletions src/pages/ReimbursementAccount/EnableStep.js
Original file line number Diff line number Diff line change
Expand Up @@ -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? */
Expand Down Expand Up @@ -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,
});
Expand Down Expand Up @@ -113,11 +111,6 @@ class EnableStep extends React.Component {
: this.props.translate('workspace.bankAccount.accountDescriptionWithCards')}
</Text>
</WorkspaceSection>
{this.props.user.isCheckingDomain && (
<Text style={[styles.formError, styles.m5]}>
{this.props.translate('workspace.card.checkingDomain')}
</Text>
)}
</View>
</View>
);
Expand Down
79 changes: 32 additions & 47 deletions src/pages/workspace/card/WorkspaceCardVBANoECardView.js
Original file line number Diff line number Diff line change
@@ -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 => (
<>
<WorkspaceSection
title={props.translate('workspace.card.header')}
icon={JewelBoxBlue}
menuItems={[
{
title: props.translate('workspace.card.addWorkEmail'),
onPress: () => {
Navigation.dismissModal();
openOldDotLink('settings?param={"section":"account","openModal":"secondaryLogin"}');
subscribeToExpensifyCardUpdates();
},
icon: Mail,
shouldShowRightIcon: true,
<WorkspaceSection
title={props.translate('workspace.card.header')}
icon={JewelBoxBlue}
menuItems={[
{
title: props.translate('workspace.card.chatWithConcierge'),
onPress: () => {
Navigation.dismissModal();
navigateToConciergeChat();
},
icon: Concierge,
shouldShowRightIcon: true,
},
]}
>
<View style={[styles.mv4]}>
<Text>{props.translate('workspace.card.VBANoECardCopy')}</Text>
</View>

<UnorderedList
items={[
props.translate('workspace.card.benefit1'),
props.translate('workspace.card.benefit2'),
props.translate('workspace.card.benefit3'),
props.translate('workspace.card.benefit4'),
]}
>
<View style={[styles.mv4]}>
<Text>{props.translate('workspace.card.VBANoECardCopy')}</Text>
</View>
/>

<UnorderedList
items={[
props.translate('workspace.card.benefit1'),
props.translate('workspace.card.benefit2'),
props.translate('workspace.card.benefit3'),
props.translate('workspace.card.benefit4'),
]}
/>
</WorkspaceSection>
{props.user.isCheckingDomain && (
<Text style={[styles.m5, styles.formError]}>
{props.translate('workspace.card.checkingDomain')}
</Text>
)}
</>
<View style={[styles.mv4]}>
<Text>{props.translate('workspace.card.conciergeCanHelp')}</Text>
</View>
</WorkspaceSection>
);

WorkspaceCardVBANoECardView.propTypes = propTypes;
WorkspaceCardVBANoECardView.displayName = 'WorkspaceCardVBANoECardView';

export default compose(
withLocalize,
withOnyx({
user: {
key: ONYXKEYS.USER,
},
}),
)(WorkspaceCardVBANoECardView);
export default withLocalize(WorkspaceCardVBANoECardView);

0 comments on commit a714fd9

Please sign in to comment.