diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index f4c984a99b85..3174777cc159 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -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_', @@ -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; diff --git a/src/libs/actions/Card.ts b/src/libs/actions/Card.ts index 9c56e5c2021b..4cb585bf6fa0 100644 --- a/src/libs/actions/Card.ts +++ b/src/libs/actions/Card.ts @@ -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, @@ -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, @@ -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, }, }, diff --git a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts.tsx b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts.tsx index 42417c4779b5..84378a672416 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts.tsx @@ -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; } diff --git a/src/types/onyx/ExpensifyCardBankAccountMetadata.ts b/src/types/onyx/ExpensifyCardBankAccountMetadata.ts new file mode 100644 index 000000000000..65ea88300311 --- /dev/null +++ b/src/types/onyx/ExpensifyCardBankAccountMetadata.ts @@ -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; diff --git a/src/types/onyx/ExpensifyCardSettings.ts b/src/types/onyx/ExpensifyCardSettings.ts index 2b91ddcfa525..7fcebd5c09fb 100644 --- a/src/types/onyx/ExpensifyCardSettings.ts +++ b/src/types/onyx/ExpensifyCardSettings.ts @@ -25,9 +25,6 @@ type ExpensifyCardSettings = OnyxCommon.OnyxValueWithOfflineFeedback<{ /** Error message */ errors?: OnyxCommon.Errors; - - /** Whether the request was successful */ - isSuccess?: boolean; }>; export default ExpensifyCardSettings; diff --git a/src/types/onyx/index.ts b/src/types/onyx/index.ts index b9b3d25ddb8a..b4a829c054fd 100644 --- a/src/types/onyx/index.ts +++ b/src/types/onyx/index.ts @@ -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'; @@ -139,6 +140,7 @@ export type { Download, WorkspaceCardsList, ExpensifyCardSettings, + ExpensifyCardBankAccountMetadata, FrequentlyUsedEmoji, Fund, FundList,