diff --git a/src/libs/actions/Plaid.ts b/src/libs/actions/Plaid.ts index 71a8cc08623d..4e5a791d6bbe 100644 --- a/src/libs/actions/Plaid.ts +++ b/src/libs/actions/Plaid.ts @@ -7,7 +7,7 @@ import getPlaidLinkTokenParameters from '@libs/getPlaidLinkTokenParameters'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; -import type {CardFeedWithDomainID, CardFeedWithNumber, CompanyCardFeedWithDomainID} from '@src/types/onyx/CardFeeds'; +import type {CardFeedWithNumber, CompanyCardFeedWithDomainID} from '@src/types/onyx/CardFeeds'; import Onyx from 'react-native-onyx'; @@ -144,7 +144,7 @@ function openPlaidBankAccountSelector(publicToken: string, bankName: string, all function importPlaidAccounts( publicToken: string, - feed: CardFeedWithNumber | CardFeedWithDomainID, + feed: string, feedName: string, country: string, domainName: string, @@ -152,9 +152,10 @@ function importPlaidAccounts( plaidAccessToken: string | undefined, domainAccountID?: number, ) { + const feedWithoutDomainID = feed.split(CONST.COMPANY_CARD.FEED_KEY_SEPARATOR).at(0) ?? feed; const parameters: ImportPlaidAccountsParams = { publicToken, - feed: getCompanyCardFeed(feed), + feed: feedWithoutDomainID, feedName, country, domainName, diff --git a/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx b/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx index e3e2e1f58fbe..dd9eaa5bd864 100644 --- a/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx +++ b/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx @@ -26,12 +26,8 @@ import {importPlaidAccounts, openPlaidCompanyCardLogin} from '@userActions/Plaid import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type {CompanyCardFeedWithDomainID} from '@src/types/onyx'; -import type {CardFeedWithNumber} from '@src/types/onyx/CardFeeds'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -import type {LinkSuccessMetadata} from 'react-native-plaid-link-sdk'; -import type {PlaidLinkOnSuccessMetadata} from 'react-plaid-link/src/types'; - import React, {useCallback, useEffect, useRef} from 'react'; import {View} from 'react-native'; @@ -53,8 +49,7 @@ function PlaidConnectionStep({feed, policyID, onExit, title}: PlaidConnectionSte const plaidErrors = plaidData?.errors; const subscribedKeyboardShortcuts = useRef void>>([]); const previousNetworkState = useRef(undefined); - // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style - const plaidDataErrorMessage = !isEmptyObject(plaidErrors) ? (Object.values(plaidErrors).at(0) as string) : ''; + const plaidDataErrorMessage = !isEmptyObject(plaidErrors) ? (Object.values(plaidErrors).at(0) ?? '') : ''; const {isOffline} = useNetwork(); const domain = getDomainNameForPolicy(policyID); @@ -134,10 +129,12 @@ function PlaidConnectionStep({feed, policyID, onExit, title}: PlaidConnectionSte // on success we need to move to bank connection screen with token, bank name = plaid Log.info('[PlaidLink] Success!'); - const plaidConnectedFeed = ((metadata?.institution as PlaidLinkOnSuccessMetadata['institution'])?.institution_id ?? - (metadata?.institution as LinkSuccessMetadata['institution'])?.id) as CardFeedWithNumber; - const plaidConnectedFeedName = - (metadata?.institution as PlaidLinkOnSuccessMetadata['institution'])?.name ?? (metadata?.institution as LinkSuccessMetadata['institution'])?.name; + const institution = metadata.institution; + let plaidConnectedFeed: string | undefined; + if (institution) { + plaidConnectedFeed = 'institution_id' in institution ? institution.institution_id : institution.id; + } + const plaidConnectedFeedName = institution?.name; if (feed) { if (plaidConnectedFeed && addNewCard?.data?.selectedCountry && plaidConnectedFeedName) { diff --git a/src/types/onyx/AssignCard.ts b/src/types/onyx/AssignCard.ts index 65a134a905ea..485165fa3a65 100644 --- a/src/types/onyx/AssignCard.ts +++ b/src/types/onyx/AssignCard.ts @@ -60,7 +60,7 @@ type AssignCardData = { dateOption: string; /** Bank ID for Plaid */ - institutionId?: CardFeedWithNumber; + institutionId?: string; /** Access token for Plaid bank */ plaidAccessToken?: string; diff --git a/src/types/onyx/CardFeeds.ts b/src/types/onyx/CardFeeds.ts index 03ab9bed2b0d..f353fe9aa076 100644 --- a/src/types/onyx/CardFeeds.ts +++ b/src/types/onyx/CardFeeds.ts @@ -307,7 +307,7 @@ type AddNewCardFeedData = { publicToken?: string; /** Feed from Plaid connection */ - plaidConnectedFeed?: CardFeedWithNumber; + plaidConnectedFeed?: string; /** Feed name from Plaid connection */ plaidConnectedFeedName?: string;