Skip to content

Commit abe18b9

Browse files
committed
refactor resetNonUSDBankAccount to remove usage of Onyx.Connect
1 parent 48f2d4b commit abe18b9

2 files changed

Lines changed: 10 additions & 18 deletions

File tree

src/libs/actions/ReimbursementAccount/resetNonUSDBankAccount.ts

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,19 @@
11
import Onyx from 'react-native-onyx';
2-
import type {OnyxCollection} from 'react-native-onyx';
2+
import type {OnyxEntry} from 'react-native-onyx';
33
import * as API from '@libs/API';
44
import {WRITE_COMMANDS} from '@libs/API/types';
55
import CONST from '@src/CONST';
66
import ONYXKEYS from '@src/ONYXKEYS';
7-
import type * as OnyxTypes from '@src/types/onyx';
7+
import type {Policy} from '@src/types/onyx';
88

9-
let allPolicies: OnyxCollection<OnyxTypes.Policy>;
10-
Onyx.connect({
11-
key: ONYXKEYS.COLLECTION.POLICY,
12-
waitForCollectionCallback: true,
13-
callback: (value) => (allPolicies = value),
14-
});
15-
16-
function resetNonUSDBankAccount(policyID: string | undefined) {
17-
if (!policyID) {
18-
throw new Error('Missing Policy ID when attempting to reset');
9+
function resetNonUSDBankAccount(policy: OnyxEntry<Policy>) {
10+
if (!policy) {
11+
throw new Error('Missing policy when attempting to reset');
1912
}
2013

21-
const policy = allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`] ?? ({} as OnyxTypes.Policy);
22-
2314
API.write(
2415
WRITE_COMMANDS.RESET_BANK_ACCOUNT_SETUP,
25-
{policyID},
16+
{policyID: policy.id},
2617
{
2718
optimisticData: [
2819
{
@@ -37,7 +28,7 @@ function resetNonUSDBankAccount(policyID: string | undefined) {
3728
},
3829
{
3930
onyxMethod: Onyx.METHOD.MERGE,
40-
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
31+
key: `${ONYXKEYS.COLLECTION.POLICY}${policy.id}`,
4132
value: {
4233
achAccount: null,
4334
},
@@ -63,7 +54,7 @@ function resetNonUSDBankAccount(policyID: string | undefined) {
6354
},
6455
{
6556
onyxMethod: Onyx.METHOD.MERGE,
66-
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
57+
key: `${ONYXKEYS.COLLECTION.POLICY}${policy.id}`,
6758
value: {
6859
achAccount: policy?.achAccount,
6960
},

src/pages/workspace/WorkspaceResetBankAccountModal.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,15 @@ function WorkspaceResetBankAccountModal({
3838
const {translate} = useLocalize();
3939
const [session] = useOnyx(ONYXKEYS.SESSION);
4040
const policyID = reimbursementAccount?.achData?.policyID;
41+
const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {canBeMissing: true});
4142
const achData = reimbursementAccount?.achData;
4243
const isInOpenState = achData?.state === BankAccount.STATE.OPEN;
4344
const bankAccountID = achData?.bankAccountID;
4445
const bankShortName = `${achData?.addressName ?? ''} ${(achData?.accountNumber ?? '').slice(-4)}`;
4546

4647
const handleConfirm = () => {
4748
if (isNonUSDWorkspace) {
48-
resetNonUSDBankAccount(policyID);
49+
resetNonUSDBankAccount(policy);
4950

5051
if (setShouldShowConnectedVerifiedBankAccount) {
5152
setShouldShowConnectedVerifiedBankAccount(false);

0 commit comments

Comments
 (0)