Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/ONYXKEYS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -563,6 +563,9 @@ const ONYXKEYS = {
/** Expensify cards settings */
PRIVATE_EXPENSIFY_CARD_SETTINGS: 'private_expensifyCardSettings_',

/** Expensify cards bank account for a given workspace */
EXPENSIFY_CARD_BANK_ACCOUNT_METADATA: 'expensifyCardBankAccountMetadata_',

/** Expensify cards manual billing setting */
PRIVATE_EXPENSIFY_CARD_MANUAL_BILLING: 'private_expensifyCardManualBilling_',

Expand Down Expand Up @@ -922,6 +925,7 @@ type OnyxCollectionValuesMapping = {
[ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_USER_BILLING_GRACE_PERIOD_END]: OnyxTypes.BillingGraceEndPeriod;
[ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_DOMAIN_MEMBER]: OnyxTypes.CardFeeds;
[ONYXKEYS.COLLECTION.PRIVATE_EXPENSIFY_CARD_SETTINGS]: OnyxTypes.ExpensifyCardSettings;
[ONYXKEYS.COLLECTION.EXPENSIFY_CARD_BANK_ACCOUNT_METADATA]: OnyxTypes.ExpensifyCardBankAccountMetadata;
[ONYXKEYS.COLLECTION.PRIVATE_EXPENSIFY_CARD_MANUAL_BILLING]: boolean;
[ONYXKEYS.COLLECTION.WORKSPACE_CARDS_LIST]: OnyxTypes.WorkspaceCardsList;
[ONYXKEYS.COLLECTION.EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION]: OnyxTypes.PolicyConnectionName;
Expand Down
21 changes: 21 additions & 0 deletions src/libs/actions/Card.ts
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,13 @@ function configureExpensifyCardsForPolicy(policyID: string, bankAccountID?: numb
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.PRIVATE_EXPENSIFY_CARD_SETTINGS}${workspaceAccountID}`,
value: {
isLoading: true,
},
},
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_BANK_ACCOUNT_METADATA}${workspaceAccountID}`,
value: {
isLoading: true,
isSuccess: false,
Expand All @@ -702,6 +709,13 @@ function configureExpensifyCardsForPolicy(policyID: string, bankAccountID?: numb
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.PRIVATE_EXPENSIFY_CARD_SETTINGS}${workspaceAccountID}`,
value: {
isLoading: false,
},
},
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_BANK_ACCOUNT_METADATA}${workspaceAccountID}`,
value: {
isLoading: false,
isSuccess: true,
Expand All @@ -716,6 +730,13 @@ function configureExpensifyCardsForPolicy(policyID: string, bankAccountID?: numb
value: {
isLoading: false,
errors: ErrorUtils.getMicroSecondOnyxErrorWithTranslationKey('common.genericErrorMessage'),
},
},
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_BANK_ACCOUNT_METADATA}${workspaceAccountID}`,
value: {
isLoading: false,
isSuccess: false,
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,18 @@ function WorkspaceExpensifyCardBankAccounts({route}: WorkspaceExpensifyCardBankA

const workspaceAccountID = useWorkspaceAccountID(policyID);

const [cardSettings] = useOnyx(`${ONYXKEYS.COLLECTION.PRIVATE_EXPENSIFY_CARD_SETTINGS}${workspaceAccountID}`);
const [cardBankAccountMetadata] = useOnyx(`${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_BANK_ACCOUNT_METADATA}${workspaceAccountID}`);
const [cardOnWaitlist] = useOnyx(`${ONYXKEYS.COLLECTION.NVP_EXPENSIFY_ON_CARD_WAITLIST}${policyID}`);

const getVerificationState = () => {
if (cardOnWaitlist) {
return CONST.EXPENSIFY_CARD.VERIFICATION_STATE.ON_WAITLIST;
}
if (cardSettings?.isSuccess) {
if (cardBankAccountMetadata?.isSuccess) {
return CONST.EXPENSIFY_CARD.VERIFICATION_STATE.VERIFIED;
}

if (cardSettings?.isLoading) {
if (cardBankAccountMetadata?.isLoading) {
return CONST.EXPENSIFY_CARD.VERIFICATION_STATE.LOADING;
}

Expand Down
10 changes: 10 additions & 0 deletions src/types/onyx/ExpensifyCardBankAccountMetadata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/** Model of Expensify card bank account metadata for a workspace */
type ExpensifyCardBankAccountMetadata = {
/** Whether we are loading the data via the API */
isLoading?: boolean;

/** Whether the request was successful */
isSuccess?: boolean;
};

export default ExpensifyCardBankAccountMetadata;
3 changes: 0 additions & 3 deletions src/types/onyx/ExpensifyCardSettings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ type ExpensifyCardSettings = OnyxCommon.OnyxValueWithOfflineFeedback<{

/** Error message */
errors?: OnyxCommon.Errors;

/** Whether the request was successful */
isSuccess?: boolean;
}>;

export default ExpensifyCardSettings;
2 changes: 2 additions & 0 deletions src/types/onyx/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import type CustomStatusDraft from './CustomStatusDraft';
import type DismissedProductTraining from './DismissedProductTraining';
import type DismissedReferralBanners from './DismissedReferralBanners';
import type Download from './Download';
import type ExpensifyCardBankAccountMetadata from './ExpensifyCardBankAccountMetadata';
import type ExpensifyCardSettings from './ExpensifyCardSettings';
import type FrequentlyUsedEmoji from './FrequentlyUsedEmoji';
import type {FundList} from './Fund';
Expand Down Expand Up @@ -139,6 +140,7 @@ export type {
Download,
WorkspaceCardsList,
ExpensifyCardSettings,
ExpensifyCardBankAccountMetadata,
FrequentlyUsedEmoji,
Fund,
FundList,
Expand Down