Skip to content

Commit 545f959

Browse files
committed
add statement close data step when adding new plaid feed
1 parent 10da838 commit 545f959

2 files changed

Lines changed: 23 additions & 9 deletions

File tree

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import HeaderWithBackButton from '@components/HeaderWithBackButton';
77
import PlaidLink from '@components/PlaidLink';
88
import ScreenWrapper from '@components/ScreenWrapper';
99
import Text from '@components/Text';
10+
import useEnvironment from '@hooks/useEnvironment';
1011
import useLocalize from '@hooks/useLocalize';
1112
import useNetwork from '@hooks/useNetwork';
1213
import useOnyx from '@hooks/useOnyx';
@@ -25,6 +26,7 @@ import type {CompanyCardFeed} from '@src/types/onyx';
2526
import {isEmptyObject} from '@src/types/utils/EmptyObject';
2627

2728
function PlaidConnectionStep({feed}: {feed?: CompanyCardFeed}) {
29+
const {isDevelopment} = useEnvironment();
2830
const {translate} = useLocalize();
2931
const styles = useThemeStyles();
3032
const theme = useTheme();
@@ -40,6 +42,9 @@ function PlaidConnectionStep({feed}: {feed?: CompanyCardFeed}) {
4042
const plaidDataErrorMessage = !isEmptyObject(plaidErrors) ? (Object.values(plaidErrors).at(0) as string) : '';
4143
const {isOffline} = useNetwork();
4244

45+
// s77rt remove DEV lock
46+
const shouldSelectStatementCloseDate = isDevelopment;
47+
4348
const isAuthenticatedWithPlaid = useCallback(() => !!plaidData?.bankAccounts?.length || !isEmptyObject(plaidData?.errors), [plaidData]);
4449

4550
/**
@@ -130,8 +135,9 @@ function PlaidConnectionStep({feed}: {feed?: CompanyCardFeed}) {
130135
});
131136
return;
132137
}
138+
133139
setAddNewCompanyCardStepAndData({
134-
step: CONST.COMPANY_CARDS.STEP.BANK_CONNECTION,
140+
step: shouldSelectStatementCloseDate ? CONST.COMPANY_CARDS.STEP.SELECT_STATEMENT_CLOSE_DATE : CONST.COMPANY_CARDS.STEP.BANK_CONNECTION,
135141
data: {
136142
publicToken,
137143
plaidConnectedFeed,

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

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, {useCallback} from 'react';
22
import useOnyx from 'react-native-onyx/dist/useOnyx';
33
import useCardFeeds from '@hooks/useCardFeeds';
44
import useLocalize from '@hooks/useLocalize';
5+
import usePermissions from '@hooks/usePermissions';
56
import {addNewCompanyCardsFeed, setAddNewCompanyCardStepAndData} from '@libs/actions/CompanyCards';
67
import Navigation from '@libs/Navigation/Navigation';
78
import WorkspaceCompanyCardStatementCloseDateSelectionList from '@pages/workspace/companyCards/WorkspaceCompanyCardStatementCloseDateSelectionList';
@@ -17,29 +18,36 @@ type StatementCloseDateStepProps = {
1718

1819
function StatementCloseDateStep({policyID}: StatementCloseDateStepProps) {
1920
const {translate} = useLocalize();
20-
21+
const {isBetaEnabled} = usePermissions();
2122
const [addNewCard] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD, {canBeMissing: false});
2223
const [lastSelectedFeed] = useOnyx(`${ONYXKEYS.COLLECTION.LAST_SELECTED_FEED}${policyID}`, {canBeMissing: true});
23-
2424
const [cardFeeds] = useCardFeeds(policyID);
2525

26+
const isPlaid = isBetaEnabled(CONST.BETAS.PLAID_COMPANY_CARDS) && !!addNewCard?.data?.publicToken;
27+
2628
const submit = useCallback(
2729
// s77rt make use of statementCloseDate / statementCustomCloseDate and remove disable lint rule
2830
// eslint-disable-next-line @typescript-eslint/no-unused-vars
2931
(statementCloseDate: CompanyCardStatementCloseDate, statementCustomCloseDate: number | undefined) => {
30-
if (!addNewCard?.data.feedDetails) {
32+
if (isPlaid) {
33+
setAddNewCompanyCardStepAndData({
34+
step: CONST.COMPANY_CARDS.STEP.BANK_CONNECTION,
35+
});
3136
return;
3237
}
3338

34-
addNewCompanyCardsFeed(policyID, addNewCard.data.feedType, addNewCard.data.feedDetails, cardFeeds, lastSelectedFeed);
35-
Navigation.goBack(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID));
39+
if (addNewCard?.data.feedDetails) {
40+
addNewCompanyCardsFeed(policyID, addNewCard.data.feedType, addNewCard.data.feedDetails, cardFeeds, lastSelectedFeed);
41+
Navigation.goBack(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID));
42+
return;
43+
}
3644
},
37-
[policyID, addNewCard, cardFeeds, lastSelectedFeed],
45+
[policyID, addNewCard, cardFeeds, lastSelectedFeed, isPlaid],
3846
);
3947

4048
const goBack = useCallback(() => {
41-
setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.CARD_DETAILS});
42-
}, []);
49+
setAddNewCompanyCardStepAndData({step: isPlaid ? CONST.COMPANY_CARDS.STEP.PLAID_CONNECTION : CONST.COMPANY_CARDS.STEP.CARD_DETAILS});
50+
}, [isPlaid]);
4351

4452
return (
4553
<WorkspaceCompanyCardStatementCloseDateSelectionList

0 commit comments

Comments
 (0)