Skip to content

Commit cf4bbd4

Browse files
authored
Merge pull request #82812 from callstack-internal/bypass-giact
GIACT Personal Bank Account checks differ on New Dot and Old Dot
2 parents 8737238 + 095dc9e commit cf4bbd4

4 files changed

Lines changed: 30 additions & 2 deletions

File tree

src/libs/API/parameters/AddPersonalBankAccountParams.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ type AddPersonalBankAccountParams = {
1717
addressState?: string;
1818
addressZip?: string;
1919
addressCountry?: string;
20+
confirmedOwnershipDetails?: boolean;
2021
};
2122

2223
export default AddPersonalBankAccountParams;

src/libs/actions/BankAccounts.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ function addPersonalBankAccount(
317317
addressState: account?.addressState,
318318
addressZip: account?.addressZipCode,
319319
addressCountry: account?.country,
320+
confirmedOwnershipDetails: account?.confirmedOwnershipDetails,
320321
};
321322
if (policyID) {
322323
parameters.policyID = policyID;

src/pages/settings/Wallet/InternationalDepositAccount/PersonalInfo/PersonalInfo.tsx

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
import React from 'react';
1+
import React, {useEffect, useRef} from 'react';
22
import InteractiveStepWrapper from '@components/InteractiveStepWrapper';
33
import useLocalize from '@hooks/useLocalize';
44
import useOnyx from '@hooks/useOnyx';
55
import useSubStep from '@hooks/useSubStep';
66
import type {SubStepProps} from '@hooks/useSubStep/types';
7+
import {getLatestErrorMessage} from '@libs/ErrorUtils';
78
import {formatE164PhoneNumber} from '@libs/LoginUtils';
89
import Navigation from '@navigation/Navigation';
910
import {addPersonalBankAccount} from '@userActions/BankAccounts';
@@ -21,12 +22,18 @@ const bodyContentInfoSet: Array<React.ComponentType<SubStepProps>> = [LegalName,
2122
const bodyContentWithPlaid: Array<React.ComponentType<SubStepProps>> = [PlaidBankAccount, ...bodyContentInfoSet];
2223
const bodyContentWithManualSetup: Array<React.ComponentType<SubStepProps>> = [ManualBankAccountDetails, ...bodyContentInfoSet];
2324

25+
const DEFAULT_OBJECT = {};
26+
const ACCOUNT_OWNERSHIP_ERROR_SUBSTRING = 'account ownership';
27+
2428
function PersonalInfoPage() {
2529
const {translate} = useLocalize();
2630

2731
const [privatePersonalDetails] = useOnyx(ONYXKEYS.PRIVATE_PERSONAL_DETAILS);
2832
const [personalBankAccount] = useOnyx(ONYXKEYS.FORMS.PERSONAL_BANK_ACCOUNT_FORM_DRAFT);
33+
const [fullPersonalBankAccount] = useOnyx(ONYXKEYS.PERSONAL_BANK_ACCOUNT);
2934
const isManual = personalBankAccount?.setupType === CONST.BANK_ACCOUNT.SETUP_TYPE.MANUAL;
35+
const error = getLatestErrorMessage(fullPersonalBankAccount ?? DEFAULT_OBJECT);
36+
const confirmedOwnershipDetails = useRef(false);
3037
const [countryCode = CONST.DEFAULT_COUNTRY_CODE] = useOnyx(ONYXKEYS.COUNTRY_CODE);
3138
const [personalPolicyID] = useOnyx(ONYXKEYS.PERSONAL_POLICY_ID);
3239

@@ -49,6 +56,9 @@ function PersonalInfoPage() {
4956
...bankAccountWithToken,
5057
phoneNumber: formatE164PhoneNumber(finalPhoneNumber, countryCode),
5158
};
59+
if (confirmedOwnershipDetails.current) {
60+
accountData.confirmedOwnershipDetails = true;
61+
}
5262
addPersonalBankAccount(accountData, personalPolicyID);
5363
};
5464

@@ -62,6 +72,7 @@ function PersonalInfoPage() {
6272
moveTo,
6373
screenIndex,
6474
goToTheLastStep,
75+
// eslint-disable-next-line @typescript-eslint/no-deprecated
6576
} = useSubStep({
6677
bodyContent: isManual ? bodyContentWithManualSetup : bodyContentWithPlaid,
6778
skipSteps,
@@ -80,6 +91,18 @@ function PersonalInfoPage() {
8091
prevScreen();
8192
};
8293

94+
useEffect(() => {
95+
if (!error) {
96+
return;
97+
}
98+
if (error.includes(ACCOUNT_OWNERSHIP_ERROR_SUBSTRING)) {
99+
confirmedOwnershipDetails.current = true;
100+
}
101+
return () => {
102+
confirmedOwnershipDetails.current = false;
103+
};
104+
}, [error]);
105+
83106
return (
84107
<InteractiveStepWrapper
85108
wrapperID={PersonalInfoPage.displayName}

src/types/form/PersonalBankAccountForm.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ type PlaidAccountProps = {
5353
type OnfidoStepProps = {
5454
isOnfidoSetupComplete: boolean;
5555
};
56-
type PersonalBankAccountForm = Form<InputID, BankAccountStepProps & PlaidAccountProps> & OnfidoStepProps;
56+
type ConfirmedOwnershipDetailsProps = {
57+
confirmedOwnershipDetails?: boolean;
58+
};
59+
type PersonalBankAccountForm = Form<InputID, BankAccountStepProps & PlaidAccountProps> & OnfidoStepProps & ConfirmedOwnershipDetailsProps;
5760

5861
export type {PersonalBankAccountForm};
5962

0 commit comments

Comments
 (0)