Skip to content

Commit b16d549

Browse files
committed
Remove unsafe Plaid connection assertions
1 parent e69182c commit b16d549

4 files changed

Lines changed: 13 additions & 15 deletions

File tree

src/libs/actions/Plaid.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import getPlaidLinkTokenParameters from '@libs/getPlaidLinkTokenParameters';
77

88
import CONST from '@src/CONST';
99
import ONYXKEYS from '@src/ONYXKEYS';
10-
import type {CardFeedWithDomainID, CardFeedWithNumber, CompanyCardFeedWithDomainID} from '@src/types/onyx/CardFeeds';
10+
import type {CardFeedWithNumber, CompanyCardFeedWithDomainID} from '@src/types/onyx/CardFeeds';
1111

1212
import Onyx from 'react-native-onyx';
1313

@@ -144,17 +144,18 @@ function openPlaidBankAccountSelector(publicToken: string, bankName: string, all
144144

145145
function importPlaidAccounts(
146146
publicToken: string,
147-
feed: CardFeedWithNumber | CardFeedWithDomainID,
147+
feed: string,
148148
feedName: string,
149149
country: string,
150150
domainName: string,
151151
plaidAccounts: string,
152152
plaidAccessToken: string | undefined,
153153
domainAccountID?: number,
154154
) {
155+
const feedWithoutDomainID = feed.split(CONST.COMPANY_CARD.FEED_KEY_SEPARATOR).at(0) ?? feed;
155156
const parameters: ImportPlaidAccountsParams = {
156157
publicToken,
157-
feed: getCompanyCardFeed(feed),
158+
feed: feedWithoutDomainID,
158159
feedName,
159160
country,
160161
domainName,

src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,8 @@ import {importPlaidAccounts, openPlaidCompanyCardLogin} from '@userActions/Plaid
2626
import CONST from '@src/CONST';
2727
import ONYXKEYS from '@src/ONYXKEYS';
2828
import type {CompanyCardFeedWithDomainID} from '@src/types/onyx';
29-
import type {CardFeedWithNumber} from '@src/types/onyx/CardFeeds';
3029
import {isEmptyObject} from '@src/types/utils/EmptyObject';
3130

32-
import type {LinkSuccessMetadata} from 'react-native-plaid-link-sdk';
33-
import type {PlaidLinkOnSuccessMetadata} from 'react-plaid-link/src/types';
34-
3531
import React, {useCallback, useEffect, useRef} from 'react';
3632
import {View} from 'react-native';
3733

@@ -53,8 +49,7 @@ function PlaidConnectionStep({feed, policyID, onExit, title}: PlaidConnectionSte
5349
const plaidErrors = plaidData?.errors;
5450
const subscribedKeyboardShortcuts = useRef<Array<() => void>>([]);
5551
const previousNetworkState = useRef<boolean | undefined>(undefined);
56-
// eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style
57-
const plaidDataErrorMessage = !isEmptyObject(plaidErrors) ? (Object.values(plaidErrors).at(0) as string) : '';
52+
const plaidDataErrorMessage = !isEmptyObject(plaidErrors) ? (Object.values(plaidErrors).at(0) ?? '') : '';
5853
const {isOffline} = useNetwork();
5954
const domain = getDomainNameForPolicy(policyID);
6055

@@ -134,10 +129,12 @@ function PlaidConnectionStep({feed, policyID, onExit, title}: PlaidConnectionSte
134129
// on success we need to move to bank connection screen with token, bank name = plaid
135130
Log.info('[PlaidLink] Success!');
136131

137-
const plaidConnectedFeed = ((metadata?.institution as PlaidLinkOnSuccessMetadata['institution'])?.institution_id ??
138-
(metadata?.institution as LinkSuccessMetadata['institution'])?.id) as CardFeedWithNumber;
139-
const plaidConnectedFeedName =
140-
(metadata?.institution as PlaidLinkOnSuccessMetadata['institution'])?.name ?? (metadata?.institution as LinkSuccessMetadata['institution'])?.name;
132+
const institution = metadata.institution;
133+
let plaidConnectedFeed: string | undefined;
134+
if (institution) {
135+
plaidConnectedFeed = 'institution_id' in institution ? institution.institution_id : institution.id;
136+
}
137+
const plaidConnectedFeedName = institution?.name;
141138

142139
if (feed) {
143140
if (plaidConnectedFeed && addNewCard?.data?.selectedCountry && plaidConnectedFeedName) {

src/types/onyx/AssignCard.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ type AssignCardData = {
6060
dateOption: string;
6161

6262
/** Bank ID for Plaid */
63-
institutionId?: CardFeedWithNumber;
63+
institutionId?: string;
6464

6565
/** Access token for Plaid bank */
6666
plaidAccessToken?: string;

src/types/onyx/CardFeeds.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ type AddNewCardFeedData = {
307307
publicToken?: string;
308308

309309
/** Feed from Plaid connection */
310-
plaidConnectedFeed?: CardFeedWithNumber;
310+
plaidConnectedFeed?: string;
311311

312312
/** Feed name from Plaid connection */
313313
plaidConnectedFeedName?: string;

0 commit comments

Comments
 (0)