Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 15 additions & 14 deletions src/libs/actions/BankAccounts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import {READ_COMMANDS, WRITE_COMMANDS} from '@libs/API/types';
import {getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils';
import Navigation from '@libs/Navigation/Navigation';
import type {MemberForList} from '@libs/OptionsListUtils';
import {getPersonalPolicy} from '@libs/PolicyUtils';
import CONST from '@src/CONST';
import type {Country} from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -266,7 +265,13 @@ function connectBankAccountWithPlaid(bankAccountID: number, selectedPlaidBankAcc
*
* TODO: offline pattern for this command will have to be added later once the pattern B design doc is complete
*/
function addPersonalBankAccount(account: PlaidBankAccount, policyID?: string, source?: string, lastPaymentMethod?: LastPaymentMethodType | string | undefined) {
function addPersonalBankAccount(
account: PlaidBankAccount,
personalPolicyID: string | undefined,
policyID?: string,
source?: string,
lastPaymentMethod?: LastPaymentMethodType | string | undefined,
) {
const parameters: AddPersonalBankAccountParams = {
addressName: account.addressName ?? '',
routingNumber: account.routingNumber,
Expand All @@ -284,8 +289,6 @@ function addPersonalBankAccount(account: PlaidBankAccount, policyID?: string, so
parameters.source = source;
}

const personalPolicy = getPersonalPolicy();

const onyxData: OnyxData = {
optimisticData: [
{
Expand Down Expand Up @@ -328,12 +331,12 @@ function addPersonalBankAccount(account: PlaidBankAccount, policyID?: string, so
],
};

if (personalPolicy?.id && !lastPaymentMethod) {
if (personalPolicyID && !lastPaymentMethod) {
onyxData.optimisticData?.push({
onyxMethod: Onyx.METHOD.MERGE,
key: ONYXKEYS.NVP_LAST_PAYMENT_METHOD,
value: {
[personalPolicy?.id]: {
[personalPolicyID]: {
iou: {
name: CONST.IOU.PAYMENT_TYPE.EXPENSIFY,
},
Expand All @@ -347,7 +350,7 @@ function addPersonalBankAccount(account: PlaidBankAccount, policyID?: string, so
onyxMethod: Onyx.METHOD.MERGE,
key: ONYXKEYS.NVP_LAST_PAYMENT_METHOD,
value: {
[personalPolicy?.id]: {
[personalPolicyID]: {
iou: {
name: CONST.IOU.PAYMENT_TYPE.EXPENSIFY,
},
Expand All @@ -361,15 +364,15 @@ function addPersonalBankAccount(account: PlaidBankAccount, policyID?: string, so
onyxMethod: Onyx.METHOD.MERGE,
key: ONYXKEYS.NVP_LAST_PAYMENT_METHOD,
value: {
[personalPolicy?.id]: null,
[personalPolicyID]: null,
},
});
}

API.write(WRITE_COMMANDS.ADD_PERSONAL_BANK_ACCOUNT, parameters, onyxData);
}

function deletePaymentBankAccount(bankAccountID: number, lastUsedPaymentMethods?: LastPaymentMethod, bankAccount?: OnyxEntry<PersonalBankAccount>) {
function deletePaymentBankAccount(bankAccountID: number, personalPolicyID: string | undefined, lastUsedPaymentMethods?: LastPaymentMethod, bankAccount?: OnyxEntry<PersonalBankAccount>) {
const parameters: DeletePaymentBankAccountParams = {bankAccountID};

const bankAccountFailureData = {
Expand All @@ -378,8 +381,6 @@ function deletePaymentBankAccount(bankAccountID: number, lastUsedPaymentMethods?
pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE,
};

const personalPolicy = getPersonalPolicy();

const onyxData: OnyxData = {
optimisticData: [
{
Expand Down Expand Up @@ -417,14 +418,14 @@ function deletePaymentBankAccount(bankAccountID: number, lastUsedPaymentMethods?
continue;
}

if (personalPolicy?.id === paymentMethodID && lastUsedPaymentMethod.iou?.name === CONST.IOU.PAYMENT_TYPE.EXPENSIFY) {
if (personalPolicyID === paymentMethodID && lastUsedPaymentMethod.iou?.name === CONST.IOU.PAYMENT_TYPE.EXPENSIFY) {
const revertedLastUsedPaymentMethod = lastUsedPaymentMethod.lastUsed?.name !== CONST.IOU.PAYMENT_TYPE.EXPENSIFY ? lastUsedPaymentMethod.lastUsed?.name : null;

onyxData.successData?.push({
onyxMethod: Onyx.METHOD.MERGE,
key: ONYXKEYS.NVP_LAST_PAYMENT_METHOD,
value: {
[personalPolicy?.id]: {
[personalPolicyID]: {
iou: {
name: revertedLastUsedPaymentMethod,
bankAccountID: null,
Expand All @@ -438,7 +439,7 @@ function deletePaymentBankAccount(bankAccountID: number, lastUsedPaymentMethods?
onyxMethod: Onyx.METHOD.MERGE,
key: ONYXKEYS.NVP_LAST_PAYMENT_METHOD,
value: {
[personalPolicy?.id]: {
[personalPolicyID]: {
expense: {
name: lastUsedPaymentMethod.iou?.name,
bankAccountID: lastUsedPaymentMethod.iou?.bankAccountID,
Expand Down
5 changes: 3 additions & 2 deletions src/pages/AddPersonalBankAccountPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ function AddPersonalBankAccountPage() {
const {translate} = useLocalize();
const [selectedPlaidAccountId, setSelectedPlaidAccountId] = useState('');
const [personalBankAccount] = useOnyx(ONYXKEYS.PERSONAL_BANK_ACCOUNT, {canBeMissing: true});
const [personalPolicyID] = useOnyx(ONYXKEYS.PERSONAL_POLICY_ID, {canBeMissing: true});
const [plaidData] = useOnyx(ONYXKEYS.PLAID_DATA, {canBeMissing: true});
const shouldShowSuccess = personalBankAccount?.shouldShowSuccess ?? false;
const topmostFullScreenRoute = navigationRef.current?.getRootState()?.routes.findLast((route) => isFullScreenName(route.name));
Expand Down Expand Up @@ -59,9 +60,9 @@ function AddPersonalBankAccountPage() {
...selectedPlaidBankAccount,
plaidAccessToken: plaidData?.plaidAccessToken ?? '',
};
addPersonalBankAccount(bankAccountWithToken, policyID, source);
addPersonalBankAccount(bankAccountWithToken, personalPolicyID, policyID, source);
}
}, [plaidData?.bankAccounts, plaidData?.plaidAccessToken, selectedPlaidAccountId, personalBankAccount?.policyID, personalBankAccount?.source]);
}, [plaidData?.bankAccounts, plaidData?.plaidAccessToken, selectedPlaidAccountId, personalPolicyID, personalBankAccount?.policyID, personalBankAccount?.source]);

const exitFlow = useCallback(
(shouldContinue = false) => {
Expand Down
5 changes: 3 additions & 2 deletions src/pages/EnablePayments/AddBankAccount/AddBankAccount.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ function AddBankAccount() {
const [plaidData] = useOnyx(ONYXKEYS.PLAID_DATA, {canBeMissing: true});
const [personalBankAccount] = useOnyx(ONYXKEYS.PERSONAL_BANK_ACCOUNT, {canBeMissing: true});
const [personalBankAccountDraft] = useOnyx(ONYXKEYS.FORMS.PERSONAL_BANK_ACCOUNT_FORM_DRAFT, {canBeMissing: true});
const [personalPolicyID] = useOnyx(ONYXKEYS.PERSONAL_POLICY_ID, {canBeMissing: true});
const {translate} = useLocalize();
const styles = useThemeStyles();
const kycWallRef = useContext(KYCWallContext);
Expand All @@ -40,9 +41,9 @@ function AddBankAccount() {
...selectedPlaidBankAccount,
plaidAccessToken: plaidData?.plaidAccessToken ?? '',
};
addPersonalBankAccount(bankAccountWithToken);
addPersonalBankAccount(bankAccountWithToken, personalPolicyID);
}
}, [personalBankAccountDraft?.plaidAccountID, plaidData?.bankAccounts, plaidData?.plaidAccessToken]);
}, [personalBankAccountDraft?.plaidAccountID, plaidData?.bankAccounts, plaidData?.plaidAccessToken, personalPolicyID]);

const isSetupTypeChosen = personalBankAccountDraft?.setupType === CONST.BANK_ACCOUNT.SETUP_TYPE.PLAID;

Expand Down
4 changes: 3 additions & 1 deletion src/pages/settings/Wallet/WalletPage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ function WalletPage() {
const [isLoadingApp] = useOnyx(ONYXKEYS.IS_LOADING_APP, {canBeMissing: false});
const [userAccount] = useOnyx(ONYXKEYS.ACCOUNT, {canBeMissing: true});
const [lastUsedPaymentMethods] = useOnyx(ONYXKEYS.NVP_LAST_PAYMENT_METHOD, {canBeMissing: true});
const [personalPolicyID] = useOnyx(ONYXKEYS.PERSONAL_POLICY_ID, {canBeMissing: true});
const isUserValidated = userAccount?.validated ?? false;
const {isAccountLocked, showLockedAccountModal} = useContext(LockedAccountContext);
const {login: currentUserLogin} = useCurrentUserPersonalDetails();
Expand Down Expand Up @@ -206,7 +207,7 @@ function WalletPage() {
const fundID = paymentMethod.selectedPaymentMethod.fundID;
if (paymentMethod.selectedPaymentMethodType === CONST.PAYMENT_METHODS.PERSONAL_BANK_ACCOUNT && bankAccountID) {
const bankAccount = bankAccountList?.[paymentMethod.methodID] ?? {};
deletePaymentBankAccount(bankAccountID, lastUsedPaymentMethods, bankAccount);
deletePaymentBankAccount(bankAccountID, personalPolicyID, lastUsedPaymentMethods, bankAccount);
} else if (paymentMethod.selectedPaymentMethodType === CONST.PAYMENT_METHODS.DEBIT_CARD && fundID) {
deletePaymentCard(fundID);
}
Expand All @@ -220,6 +221,7 @@ function WalletPage() {
resetSelectedPaymentMethodData,
bankAccountList,
lastUsedPaymentMethods,
personalPolicyID,
]);

/**
Expand Down
5 changes: 3 additions & 2 deletions src/pages/workspace/invoices/WorkspaceInvoiceVBASection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
const {translate} = useLocalize();
const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {canBeMissing: true});
const [bankAccountList] = useOnyx(ONYXKEYS.BANK_ACCOUNT_LIST, {canBeMissing: true});
const [personalPolicyID] = useOnyx(ONYXKEYS.PERSONAL_POLICY_ID, {canBeMissing: true});
const {paymentMethod, setPaymentMethod, resetSelectedPaymentMethodData} = usePaymentMethodState();
const paymentMethodButtonRef = useRef<HTMLDivElement | null>(null);
const [showConfirmDeleteModal, setShowConfirmDeleteModal] = useState(false);
Expand Down Expand Up @@ -90,7 +91,7 @@

setIsForcedToChangeCurrency(true);
Navigation.navigate(ROUTES.WORKSPACE_OVERVIEW_CURRENCY.getRoute(policy.id));
}, [bankAccountList, isBetaEnabled, policy]);

Check warning on line 94 in src/pages/workspace/invoices/WorkspaceInvoiceVBASection.tsx

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

React Hook useCallback has unnecessary dependencies: 'bankAccountList' and 'isBetaEnabled'. Either exclude them or remove the dependency array

/**
* Set position of the payment menu
Expand Down Expand Up @@ -157,9 +158,9 @@
const deletePaymentMethod = useCallback(() => {
const bankAccountID = paymentMethod.selectedPaymentMethod.bankAccountID;
if (paymentMethod.selectedPaymentMethodType === CONST.PAYMENT_METHODS.PERSONAL_BANK_ACCOUNT && bankAccountID) {
deletePaymentBankAccount(bankAccountID);
deletePaymentBankAccount(bankAccountID, personalPolicyID);
}
}, [paymentMethod.selectedPaymentMethod.bankAccountID, paymentMethod.selectedPaymentMethodType]);
}, [paymentMethod.selectedPaymentMethod.bankAccountID, paymentMethod.selectedPaymentMethodType, personalPolicyID]);

const makeDefaultPaymentMethod = useCallback(() => {
// Find the previous default payment method so we can revert if the MakeDefaultPaymentMethod command errors
Expand Down
Loading