Skip to content

Commit 79e0ecf

Browse files
authored
Merge pull request Expensify#55278 from callstack-internal/fix/53996-wallet-its-not-here-error
Add report fraud confirmation page when getting new virtual card
2 parents 3fb0633 + 2cecae4 commit 79e0ecf

File tree

13 files changed

+274
-8
lines changed

13 files changed

+274
-8
lines changed

assets/images/magnifying-glass-spy-mouth-closed.svg

Lines changed: 156 additions & 0 deletions
Loading

src/ROUTES.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,10 @@ const ROUTES = {
186186
route: 'settings/wallet/card/:cardID/report-virtual-fraud',
187187
getRoute: (cardID: string) => `settings/wallet/card/${cardID}/report-virtual-fraud` as const,
188188
},
189+
SETTINGS_REPORT_FRAUD_CONFIRMATION: {
190+
route: 'settings/wallet/card/:cardID/report-virtual-fraud-confirm',
191+
getRoute: (cardID: string) => `settings/wallet/card/${cardID}/report-virtual-fraud-confirm` as const,
192+
},
189193
SETTINGS_DOMAINCARD_REPORT_FRAUD: {
190194
route: 'settings/card/:cardID/report-virtual-fraud',
191195
getRoute: (cardID: string) => `settings/card/${cardID}/report-virtual-fraud` as const,

src/SCREENS.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ const SCREENS = {
123123
ENABLE_PAYMENTS: 'Settings_Wallet_EnablePayments',
124124
CARD_ACTIVATE: 'Settings_Wallet_Card_Activate',
125125
REPORT_VIRTUAL_CARD_FRAUD: 'Settings_Wallet_ReportVirtualCardFraud',
126+
REPORT_VIRTUAL_CARD_FRAUD_CONFIRMATION: 'Settings_Wallet_ReportVirtualCardFraudConfirmation',
126127
CARDS_DIGITAL_DETAILS_UPDATE_ADDRESS: 'Settings_Wallet_Cards_Digital_Details_Update_Address',
127128
VERIFY_ACCOUNT: 'Settings_Wallet_Verify_Account',
128129
},

src/components/Icon/Expensicons.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ import Link from '@assets/images/link.svg';
128128
import Location from '@assets/images/location.svg';
129129
import Lock from '@assets/images/lock.svg';
130130
import Luggage from '@assets/images/luggage.svg';
131+
import MagnifyingGlassSpyMouthClosed from '@assets/images/magnifying-glass-spy-mouth-closed.svg';
131132
import MagnifyingGlass from '@assets/images/magnifying-glass.svg';
132133
import Mail from '@assets/images/mail.svg';
133134
import MakeAdmin from '@assets/images/make-admin.svg';
@@ -422,4 +423,5 @@ export {
422423
GalleryNotFound,
423424
Train,
424425
boltSlash,
426+
MagnifyingGlassSpyMouthClosed,
425427
};

src/languages/en.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1616,6 +1616,11 @@ const translations = {
16161616
deactivateCard: 'Deactivate card',
16171617
reportVirtualCardFraud: 'Report virtual card fraud',
16181618
},
1619+
reportFraudConfirmationPage: {
1620+
title: 'Card fraud reported',
1621+
description: 'We’ve permanently deactivated your existing card. When you go back to view your card details, you’ll have a new virtual card available.',
1622+
buttonText: 'Got it, thanks!',
1623+
},
16191624
activateCardPage: {
16201625
activateCard: 'Activate card',
16211626
pleaseEnterLastFour: 'Please enter the last four digits of your card.',

src/languages/es.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1618,6 +1618,11 @@ const translations = {
16181618
deactivateCard: 'Desactivar tarjeta',
16191619
reportVirtualCardFraud: 'Reportar fraude con la tarjeta virtual',
16201620
},
1621+
reportFraudConfirmationPage: {
1622+
title: 'Fraude con tarjeta reportado',
1623+
description: 'Hemos desactivado permanentemente tu tarjeta existente. Cuando vuelvas a ver los detalles de tu tarjeta, tendrás una nueva tarjeta virtual disponible.',
1624+
buttonText: 'Entendido, ¡gracias!',
1625+
},
16211626
activateCardPage: {
16221627
activateCard: 'Activar tarjeta',
16231628
pleaseEnterLastFour: 'Introduce los cuatro últimos dígitos de la tarjeta.',

src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
251251
[SCREENS.SETTINGS.WALLET.CARDS_DIGITAL_DETAILS_UPDATE_ADDRESS]: () => require<ReactComponentModule>('../../../../pages/settings/Profile/PersonalDetails/PersonalAddressPage').default,
252252
[SCREENS.SETTINGS.WALLET.DOMAIN_CARD]: () => require<ReactComponentModule>('../../../../pages/settings/Wallet/ExpensifyCardPage').default,
253253
[SCREENS.SETTINGS.WALLET.REPORT_VIRTUAL_CARD_FRAUD]: () => require<ReactComponentModule>('../../../../pages/settings/Wallet/ReportVirtualCardFraudPage').default,
254+
[SCREENS.SETTINGS.WALLET.REPORT_VIRTUAL_CARD_FRAUD_CONFIRMATION]: () => require<ReactComponentModule>('../../../../pages/settings/Wallet/ReportVirtualCardFraudConfirmationPage').default,
254255
[SCREENS.SETTINGS.WALLET.CARD_ACTIVATE]: () => require<ReactComponentModule>('../../../../pages/settings/Wallet/ActivatePhysicalCardPage').default,
255256
[SCREENS.SETTINGS.WALLET.CARD_GET_PHYSICAL.NAME]: () => require<ReactComponentModule>('../../../../pages/settings/Wallet/Card/GetPhysicalCardName').default,
256257
[SCREENS.SETTINGS.WALLET.CARD_GET_PHYSICAL.PHONE]: () => require<ReactComponentModule>('../../../../pages/settings/Wallet/Card/GetPhysicalCardPhone').default,

src/libs/Navigation/linkingConfig/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,10 @@ const config: LinkingOptions<RootStackParamList>['config'] = {
196196
path: ROUTES.SETTINGS_REPORT_FRAUD.route,
197197
exact: true,
198198
},
199+
[SCREENS.SETTINGS.WALLET.REPORT_VIRTUAL_CARD_FRAUD_CONFIRMATION]: {
200+
path: ROUTES.SETTINGS_REPORT_FRAUD_CONFIRMATION.route,
201+
exact: true,
202+
},
199203
[SCREENS.SETTINGS.WALLET.CARD_GET_PHYSICAL.NAME]: {
200204
path: ROUTES.SETTINGS_WALLET_CARD_GET_PHYSICAL_NAME.route,
201205
exact: true,

src/libs/Navigation/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@ type SettingsNavigatorParamList = {
141141
/** cardID of selected card */
142142
cardID: string;
143143
};
144+
[SCREENS.SETTINGS.WALLET.REPORT_VIRTUAL_CARD_FRAUD_CONFIRMATION]: {
145+
/** cardID of selected card */
146+
cardID: string;
147+
};
144148
[SCREENS.SETTINGS.WALLET.CARD_ACTIVATE]: {
145149
/** cardID of selected card */
146150
cardID: string;

src/libs/actions/Card.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ function reportVirtualExpensifyCardFraud(card: Card, validateCode: string) {
4747
onyxMethod: Onyx.METHOD.MERGE,
4848
key: ONYXKEYS.FORMS.REPORT_VIRTUAL_CARD_FRAUD,
4949
value: {
50+
cardID,
5051
isLoading: true,
5152
errors: null,
5253
},
@@ -225,6 +226,10 @@ function clearCardListErrors(cardID: number) {
225226
Onyx.merge(ONYXKEYS.CARD_LIST, {[cardID]: {errors: null, isLoading: false}});
226227
}
227228

229+
function clearReportVirtualCardFraudForm() {
230+
Onyx.merge(ONYXKEYS.FORMS.REPORT_VIRTUAL_CARD_FRAUD, {cardID: null, isLoading: false, errors: null});
231+
}
232+
228233
/**
229234
* Makes an API call to get virtual card details (pan, cvv, expiration date, address)
230235
* This function purposefully uses `makeRequestWithSideEffects` method. For security reason
@@ -896,6 +901,7 @@ export {
896901
requestReplacementExpensifyCard,
897902
activatePhysicalExpensifyCard,
898903
clearCardListErrors,
904+
clearReportVirtualCardFraudForm,
899905
clearIssueNewCardError,
900906
reportVirtualExpensifyCardFraud,
901907
revealVirtualCardDetails,

0 commit comments

Comments
 (0)