diff --git a/src/ONYXKEYS.js b/src/ONYXKEYS.js index 71b26929071..c2a35cc89f2 100755 --- a/src/ONYXKEYS.js +++ b/src/ONYXKEYS.js @@ -119,4 +119,7 @@ export default { // Stores information about the active reimbursement account being set up REIMBURSEMENT_ACCOUNT: 'reimbursementAccount', + + // Stores Workspace ID that will be tied to reimbursement account during setup + REIMBURSEMENT_ACCOUNT_WORKSPACE_ID: 'reimbursementAccountWorkspaceID', }; diff --git a/src/libs/actions/BankAccounts.js b/src/libs/actions/BankAccounts.js index 4779cbbfbe0..ef1acaf27d6 100644 --- a/src/libs/actions/BankAccounts.js +++ b/src/libs/actions/BankAccounts.js @@ -30,6 +30,14 @@ Onyx.connect({ }, }); +let reimbursementAccountWorkspaceID = null; +Onyx.connect({ + key: ONYXKEYS.REIMBURSEMENT_ACCOUNT_WORKSPACE_ID, + callback: (val) => { + reimbursementAccountWorkspaceID = val; + }, +}); + /** * Gets the Plaid Link token used to initialize the Plaid SDK */ @@ -409,7 +417,7 @@ function fetchFreePlanVerifiedBankAccount(stepToOpen) { let currentStep = reimbursementAccountInSetup.currentStep; const achData = bankAccount ? bankAccount.toACHData() : {}; achData.useOnfido = true; - achData.policyID = ''; + achData.policyID = reimbursementAccountWorkspaceID || ''; achData.isInSetup = !bankAccount || bankAccount.isInSetup(); achData.bankAccountInReview = bankAccount && bankAccount.isVerifying(); achData.domainLimit = 0; @@ -803,6 +811,10 @@ function hideBankAccountErrors() { Onyx.merge(ONYXKEYS.REIMBURSEMENT_ACCOUNT, {error: '', existingOwnersList: ''}); } +function setWorkspaceIDForReimbursementAccount(workspaceID) { + Onyx.merge(ONYXKEYS.REIMBURSEMENT_ACCOUNT_WORKSPACE_ID, workspaceID); +} + export { activateWallet, addPersonalBankAccount, @@ -817,4 +829,5 @@ export { validateBankAccount, hideBankAccountErrors, showBankAccountFormValidationError, + setWorkspaceIDForReimbursementAccount, }; diff --git a/src/pages/workspace/WorkspaceCardPage.js b/src/pages/workspace/WorkspaceCardPage.js index e840e39ee0e..bbbd7094412 100644 --- a/src/pages/workspace/WorkspaceCardPage.js +++ b/src/pages/workspace/WorkspaceCardPage.js @@ -24,6 +24,7 @@ import HeroCardWebImage from '../../../assets/images/cascading-cards-web.svg'; import HeroCardMobileImage from '../../../assets/images/cascading-cards-mobile.svg'; import BankAccount from '../../libs/models/BankAccount'; import {openSignedInLink} from '../../libs/actions/App'; +import {setWorkspaceIDForReimbursementAccount} from '../../libs/actions/BankAccounts'; const propTypes = { /* Onyx Props */ @@ -40,6 +41,15 @@ const propTypes = { isUsingExpensifyCard: PropTypes.bool, }), + /** URL Route params */ + route: PropTypes.shape({ + /** Params from the URL path */ + params: PropTypes.shape({ + /** policyID passed via route: /workspace/:policyID/people */ + policyID: PropTypes.string, + }), + }).isRequired, + /** Bank account currently in setup */ reimbursementAccount: PropTypes.shape({ /** Additional data */ @@ -70,6 +80,7 @@ const WorkspaceCardPage = ({ betas, user, translate, + route, isSmallScreenWidth, isMediumScreenWidth, reimbursementAccount, @@ -95,6 +106,7 @@ const WorkspaceCardPage = ({ } else if (user.isUsingExpensifyCard) { openSignedInLink(CONST.MANAGE_CARDS_URL); } else { + setWorkspaceIDForReimbursementAccount(route.params.policyID); Navigation.navigate(ROUTES.getBankAccountRoute()); } };