Skip to content

Commit f0f539e

Browse files
authored
Merge pull request Expensify#77205 from Expensify/nat-removebeta
Remove BETA_PLAID_COMPANY_CARDS
2 parents d15fbd9 + 62b1d1b commit f0f539e

12 files changed

Lines changed: 18 additions & 114 deletions

File tree

src/CONST/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,6 @@ const CONST = {
726726
NEWDOT_MANAGER_MCTEST: 'newDotManagerMcTest',
727727
CUSTOM_RULES: 'customRules',
728728
IS_TRAVEL_VERIFIED: 'isTravelVerified',
729-
PLAID_COMPANY_CARDS: 'plaidCompanyCards',
730729
EXPENSIFY_CARD_EU_UK: 'expensifyCardEuUk',
731730
TIME_TRACKING: 'timeTracking',
732731
EUR_BILLING: 'eurBilling',

src/libs/CardUtils.ts

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -532,39 +532,6 @@ function getPlaidCountry(outputCurrency?: string, currencyList?: CurrencyList, c
532532
return country ?? '';
533533
}
534534

535-
// We will simplify the logic below once we have #50450 #50451 implemented
536-
const getCorrectStepForSelectedBank = (selectedBank: ValueOf<typeof CONST.COMPANY_CARDS.BANKS>) => {
537-
const banksWithFeedType = [
538-
CONST.COMPANY_CARDS.BANKS.BANK_OF_AMERICA,
539-
CONST.COMPANY_CARDS.BANKS.CAPITAL_ONE,
540-
CONST.COMPANY_CARDS.BANKS.CHASE,
541-
CONST.COMPANY_CARDS.BANKS.CITI_BANK,
542-
CONST.COMPANY_CARDS.BANKS.WELLS_FARGO,
543-
];
544-
545-
if (selectedBank === CONST.COMPANY_CARDS.BANKS.STRIPE) {
546-
return CONST.COMPANY_CARDS.STEP.CARD_INSTRUCTIONS;
547-
}
548-
549-
if (selectedBank === CONST.COMPANY_CARDS.BANKS.AMEX) {
550-
return CONST.COMPANY_CARDS.STEP.AMEX_CUSTOM_FEED;
551-
}
552-
553-
if (selectedBank === CONST.COMPANY_CARDS.BANKS.BREX) {
554-
return CONST.COMPANY_CARDS.STEP.BANK_CONNECTION;
555-
}
556-
557-
if (selectedBank === CONST.COMPANY_CARDS.BANKS.OTHER) {
558-
return CONST.COMPANY_CARDS.STEP.CARD_TYPE;
559-
}
560-
561-
if (banksWithFeedType.includes(selectedBank)) {
562-
return CONST.COMPANY_CARDS.STEP.SELECT_FEED_TYPE;
563-
}
564-
565-
return CONST.COMPANY_CARDS.STEP.CARD_TYPE;
566-
};
567-
568535
function getCorrectStepForPlaidSelectedBank(selectedBank: ValueOf<typeof CONST.COMPANY_CARDS.BANKS>) {
569536
if (selectedBank === CONST.COMPANY_CARDS.BANKS.STRIPE) {
570537
return CONST.COMPANY_CARDS.STEP.CARD_INSTRUCTIONS;
@@ -957,7 +924,6 @@ export {
957924
isCustomFeed,
958925
getBankCardDetailsImage,
959926
getSelectedFeed,
960-
getCorrectStepForSelectedBank,
961927
getPlaidCountry,
962928
getCustomOrFormattedFeedName,
963929
isCardClosed,

src/pages/workspace/companyCards/BankConnection/index.native.tsx

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import useImportPlaidAccounts from '@hooks/useImportPlaidAccounts';
1111
import useIsBlockedToAddFeed from '@hooks/useIsBlockedToAddFeed';
1212
import useLocalize from '@hooks/useLocalize';
1313
import useOnyx from '@hooks/useOnyx';
14-
import usePermissions from '@hooks/usePermissions';
1514
import usePrevious from '@hooks/usePrevious';
1615
import useThemeStyles from '@hooks/useThemeStyles';
1716
import useUpdateFeedBrokenConnection from '@hooks/useUpdateFeedBrokenConnection';
@@ -54,10 +53,8 @@ function BankConnection({policyID: policyIDFromProps, feed, route}: BankConnecti
5453
const {feed: bankNameFromRoute, backTo, policyID: policyIDFromRoute} = route?.params ?? {};
5554
const policyID = policyIDFromProps ?? policyIDFromRoute;
5655
const bankName = feed ? getBankName(getCompanyCardFeed(feed)) : (bankNameFromRoute ?? addNewCard?.data?.plaidConnectedFeed ?? selectedBank);
57-
const {isBetaEnabled} = usePermissions();
5856
const plaidToken = addNewCard?.data?.publicToken ?? assignCard?.cardToAssign?.plaidAccessToken;
59-
const isPlaid = isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS) && !!plaidToken;
60-
57+
const isPlaid = !!plaidToken;
6158
const url = getCompanyCardBankConnection(policyID, bankName);
6259
const [cardFeeds] = useCardFeeds(policyID);
6360
const [isConnectionCompleted, setConnectionCompleted] = useState(false);
@@ -97,15 +94,7 @@ function BankConnection({policyID: policyIDFromProps, feed, route}: BankConnecti
9794
Navigation.goBack(backTo);
9895
return;
9996
}
100-
if (bankName === CONST.COMPANY_CARDS.BANKS.BREX || isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS)) {
101-
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_BANK});
102-
return;
103-
}
104-
if (bankName === CONST.COMPANY_CARDS.BANKS.AMEX) {
105-
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.AMEX_CUSTOM_FEED});
106-
return;
107-
}
108-
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_FEED_TYPE});
97+
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_BANK});
10998
};
11099

111100
useEffect(() => {

src/pages/workspace/companyCards/BankConnection/index.tsx

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import {useMemoizedLazyIllustrations} from '@hooks/useLazyAsset';
1313
import useLocalize from '@hooks/useLocalize';
1414
import useNetwork from '@hooks/useNetwork';
1515
import useOnyx from '@hooks/useOnyx';
16-
import usePermissions from '@hooks/usePermissions';
1716
import usePrevious from '@hooks/usePrevious';
1817
import useThemeStyles from '@hooks/useThemeStyles';
1918
import useUpdateFeedBrokenConnection from '@hooks/useUpdateFeedBrokenConnection';
@@ -66,8 +65,7 @@ function BankConnection({policyID: policyIDFromProps, feed, route}: BankConnecti
6665
const {isOffline} = useNetwork();
6766
const plaidToken = addNewCard?.data?.publicToken ?? assignCard?.cardToAssign?.plaidAccessToken;
6867
const {updateBrokenConnection, isFeedConnectionBroken} = useUpdateFeedBrokenConnection({policyID, feed});
69-
const {isBetaEnabled} = usePermissions();
70-
const isPlaid = isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS) && !!plaidToken;
68+
const isPlaid = !!plaidToken;
7169

7270
const url = getCompanyCardBankConnection(policyID, bankName);
7371
const isFeedExpired = feed ? isSelectedFeedExpired(cardFeeds?.[feed]) : false;
@@ -108,15 +106,7 @@ function BankConnection({policyID: policyIDFromProps, feed, route}: BankConnecti
108106
Navigation.goBack(backTo);
109107
return;
110108
}
111-
if (bankName === CONST.COMPANY_CARDS.BANKS.BREX || isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS)) {
112-
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_BANK});
113-
return;
114-
}
115-
if (bankName === CONST.COMPANY_CARDS.BANKS.AMEX) {
116-
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.AMEX_CUSTOM_FEED});
117-
return;
118-
}
119-
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_FEED_TYPE});
109+
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_BANK});
120110
};
121111

122112
const CustomSubtitle = (

src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ type WorkspaceCompanyCardsPageProps = PlatformStackScreenProps<WorkspaceSplitNav
2525

2626
function WorkspaceCompanyCardsPage({route}: WorkspaceCompanyCardsPageProps) {
2727
const policyID = route.params.policyID;
28-
2928
const {translate} = useLocalize();
3029
const memoizedIllustrations = useMemoizedLazyIllustrations(['CompanyCard']);
3130
const {shouldUseNarrowLayout} = useResponsiveLayout();

src/pages/workspace/companyCards/WorkspaceCompanyCardsTable/index.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import useCompanyCards from '@hooks/useCompanyCards';
1010
import useLocalize from '@hooks/useLocalize';
1111
import useNetwork from '@hooks/useNetwork';
1212
import useOnyx from '@hooks/useOnyx';
13-
import usePermissions from '@hooks/usePermissions';
1413
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1514
import useThemeStyles from '@hooks/useThemeStyles';
1615
import {getDomainOrWorkspaceAccountID, isMaskedCardNumberEqual} from '@libs/CardUtils';
@@ -45,7 +44,6 @@ function WorkspaceCompanyCardsTable({policy, onAssignCard, isAssigningCardDisabl
4544
const {isOffline} = useNetwork();
4645
const {translate, localeCompare} = useLocalize();
4746
const {shouldUseNarrowLayout, isMediumScreenWidth} = useResponsiveLayout();
48-
const {isBetaEnabled} = usePermissions();
4947

5048
const {
5149
feedName,
@@ -79,7 +77,7 @@ function WorkspaceCompanyCardsTable({policy, onAssignCard, isAssigningCardDisabl
7977
const showTableControls = showCards && !!selectedFeed && !isLoadingCards;
8078

8179
const isGB = countryByIp === CONST.COUNTRY.GB;
82-
const shouldShowGBDisclaimer = isGB && isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS) && (isNoFeed || hasNoAssignedCard);
80+
const shouldShowGBDisclaimer = isGB && (isNoFeed || hasNoAssignedCard);
8381

8482
// When we reach the medium screen width or the narrow layout is active,
8583
// we want to hide the table header and the middle column of the card rows, so that the content is not overlapping.

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import ScreenWrapper from '@components/ScreenWrapper';
88
import useIsBlockedToAddFeed from '@hooks/useIsBlockedToAddFeed';
99
import useLocalize from '@hooks/useLocalize';
1010
import useOnyx from '@hooks/useOnyx';
11-
import usePermissions from '@hooks/usePermissions';
1211
import useThemeStyles from '@hooks/useThemeStyles';
1312
import useWorkspaceAccountID from '@hooks/useWorkspaceAccountID';
1413
import {navigateToConciergeChat} from '@libs/actions/Report';
@@ -39,7 +38,6 @@ function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) {
3938
const workspaceAccountID = useWorkspaceAccountID(policyID);
4039
const [addNewCardFeed, addNewCardFeedMetadata] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD, {canBeMissing: false});
4140
const {currentStep} = addNewCardFeed ?? {};
42-
const {isBetaEnabled} = usePermissions();
4341
const {isBlockedToAddNewFeeds, isAllFeedsResultLoading} = useIsBlockedToAddFeed(policyID);
4442
const [isModalVisible, setIsModalVisible] = useState(false);
4543
const {translate} = useLocalize();
@@ -130,7 +128,7 @@ function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) {
130128
CurrentStep = <DirectStatementCloseDateStep policyID={policyID} />;
131129
break;
132130
default:
133-
CurrentStep = isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS) ? <SelectCountryStep policyID={policyID} /> : <SelectBankStep />;
131+
CurrentStep = <SelectCountryStep policyID={policyID} />;
134132
break;
135133
}
136134

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

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import Text from '@components/Text';
99
import useLocalize from '@hooks/useLocalize';
1010
import useNetwork from '@hooks/useNetwork';
1111
import useOnyx from '@hooks/useOnyx';
12-
import usePermissions from '@hooks/usePermissions';
1312
import useThemeStyles from '@hooks/useThemeStyles';
1413
import useWorkspaceAccountID from '@hooks/useWorkspaceAccountID';
1514
import {updateSelectedFeed} from '@libs/actions/Card';
@@ -47,10 +46,8 @@ function CardInstructionsStep({policyID}: CardInstructionsStepProps) {
4746
const feedProvider = data?.feedType ?? CONST.COMPANY_CARD.FEED_BANK_NAME.VISA;
4847
const bank = data?.selectedBank;
4948
const isStripeFeedProvider = feedProvider === CONST.COMPANY_CARD.FEED_BANK_NAME.STRIPE;
50-
const isAmexFeedProvider = feedProvider === CONST.COMPANY_CARD.FEED_BANK_NAME.AMEX;
5149
const isOtherBankSelected = bank === CONST.COMPANY_CARDS.BANKS.OTHER;
5250
const translationKey = getCardInstructionHeader(feedProvider);
53-
const {isBetaEnabled} = usePermissions();
5451
const workspaceAccountID = useWorkspaceAccountID(policyID);
5552

5653
const buttonTranslation = isStripeFeedProvider ? translate('common.submit') : translate('common.next');
@@ -73,12 +70,6 @@ function CardInstructionsStep({policyID}: CardInstructionsStepProps) {
7370
};
7471

7572
const handleBackButtonPress = () => {
76-
if (isAmexFeedProvider && !isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS)) {
77-
setAddNewCompanyCardStepAndData({
78-
step: CONST.COMPANY_CARDS.STEP.AMEX_CUSTOM_FEED,
79-
});
80-
return;
81-
}
8273
if (isStripeFeedProvider) {
8374
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_BANK});
8475
return;

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

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import Text from '@components/Text';
1212
import {useCompanyCardBankIcons} from '@hooks/useCompanyCardIcons';
1313
import useLocalize from '@hooks/useLocalize';
1414
import useOnyx from '@hooks/useOnyx';
15-
import usePermissions from '@hooks/usePermissions';
1615
import useThemeStyles from '@hooks/useThemeStyles';
1716
import {isPlaidSupportedCountry} from '@libs/CardUtils';
1817
import variables from '@styles/variables';
@@ -25,11 +24,10 @@ type AvailableCompanyCardTypes = {
2524
translate: LocaleContextProps['translate'];
2625
typeSelected?: CardFeedProvider;
2726
styles: StyleProp<ViewStyle>;
28-
canUsePlaidCompanyCards?: boolean;
2927
companyCardBankIcons: ReturnType<typeof useCompanyCardBankIcons>;
3028
};
3129

32-
function getAvailableCompanyCardTypes({translate, typeSelected, styles, canUsePlaidCompanyCards, companyCardBankIcons}: AvailableCompanyCardTypes) {
30+
function getAvailableCompanyCardTypes({translate, typeSelected, styles, companyCardBankIcons}: AvailableCompanyCardTypes) {
3331
const defaultCards = [
3432
{
3533
value: CONST.COMPANY_CARD.FEED_BANK_NAME.MASTER_CARD,
@@ -61,10 +59,6 @@ function getAvailableCompanyCardTypes({translate, typeSelected, styles, canUsePl
6159
},
6260
];
6361

64-
if (!canUsePlaidCompanyCards) {
65-
return defaultCards;
66-
}
67-
6862
return [
6963
{
7064
value: CONST.COMPANY_CARD.FEED_BANK_NAME.AMEX,
@@ -91,12 +85,10 @@ function CardTypeStep() {
9185
const [addNewCard] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD, {canBeMissing: true});
9286
const [typeSelected, setTypeSelected] = useState<CardFeedProvider>();
9387
const [isError, setIsError] = useState(false);
94-
const {isBetaEnabled} = usePermissions();
9588
const data = getAvailableCompanyCardTypes({
9689
translate,
9790
typeSelected,
9891
styles: styles.mr3,
99-
canUsePlaidCompanyCards: isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS),
10092
companyCardBankIcons,
10193
});
10294
const {bankName, selectedBank, feedType} = addNewCard?.data ?? {};
@@ -128,7 +120,7 @@ function CardTypeStep() {
128120
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_BANK});
129121
return;
130122
}
131-
if (isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS) && !doesCountrySupportPlaid) {
123+
if (!doesCountrySupportPlaid) {
132124
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_COUNTRY});
133125
return;
134126
}

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

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@ import {useCompanyCardBankIcons} from '@hooks/useCompanyCardIcons';
1313
import useLocalize from '@hooks/useLocalize';
1414
import useNetwork from '@hooks/useNetwork';
1515
import useOnyx from '@hooks/useOnyx';
16-
import usePermissions from '@hooks/usePermissions';
1716
import useThemeIllustrations from '@hooks/useThemeIllustrations';
1817
import useThemeStyles from '@hooks/useThemeStyles';
19-
import {getBankCardDetailsImage, getCorrectStepForPlaidSelectedBank, getCorrectStepForSelectedBank} from '@libs/CardUtils';
18+
import {getBankCardDetailsImage, getCorrectStepForPlaidSelectedBank} from '@libs/CardUtils';
2019
import Navigation from '@navigation/Navigation';
2120
import type {PlatformStackRouteProp} from '@navigation/PlatformStackNavigation/types';
2221
import type {WorkspaceSplitNavigatorParamList} from '@navigation/types';
2322
import variables from '@styles/variables';
24-
import {clearAddNewCardFlow, setAddNewCompanyCardStepAndData} from '@userActions/CompanyCards';
23+
import {setAddNewCompanyCardStepAndData} from '@userActions/CompanyCards';
2524
import CONST from '@src/CONST';
2625
import ONYXKEYS from '@src/ONYXKEYS';
2726
import type SCREENS from '@src/SCREENS';
@@ -32,7 +31,6 @@ function SelectBankStep() {
3231
const styles = useThemeStyles();
3332
const illustrations = useThemeIllustrations();
3433
const companyCardBankIcons = useCompanyCardBankIcons();
35-
const {isBetaEnabled} = usePermissions();
3634
const {isOffline} = useNetwork();
3735

3836
const [addNewCard] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD, {canBeMissing: true});
@@ -44,11 +42,8 @@ function SelectBankStep() {
4442
if (!bankSelected) {
4543
setHasError(true);
4644
} else {
47-
if (addNewCard?.data.selectedBank !== bankSelected && !isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS)) {
48-
clearAddNewCardFlow();
49-
}
5045
setAddNewCompanyCardStepAndData({
51-
step: isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS) ? getCorrectStepForPlaidSelectedBank(bankSelected) : getCorrectStepForSelectedBank(bankSelected),
46+
step: getCorrectStepForPlaidSelectedBank(bankSelected),
5247
data: {
5348
selectedBank: bankSelected,
5449
cardTitle: !isOtherBankSelected ? bankSelected : undefined,
@@ -57,7 +52,7 @@ function SelectBankStep() {
5752
isEditing: false,
5853
});
5954
}
60-
}, [addNewCard?.data.selectedBank, bankSelected, isBetaEnabled, isOtherBankSelected]);
55+
}, [bankSelected, isOtherBankSelected]);
6156

6257
useEffect(() => {
6358
setBankSelected(addNewCard?.data.selectedBank);
@@ -68,11 +63,7 @@ function SelectBankStep() {
6863
Navigation.navigate(route.params.backTo);
6964
return;
7065
}
71-
if (isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS)) {
72-
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_FEED_TYPE, data: {selectedBank: null}});
73-
} else {
74-
Navigation.goBack();
75-
}
66+
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_FEED_TYPE, data: {selectedBank: null}});
7667
};
7768

7869
const data = Object.values(CONST.COMPANY_CARDS.BANKS).map((bank) => ({

0 commit comments

Comments
 (0)