-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[$250] Add a step that collects the magic code when adding a VBBA #51166
Comments
Triggered auto assignment to @abekkala ( |
Job added to Upwork: https://www.upwork.com/jobs/~021848301297798537201 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @Pujan92 ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.Add a step that collects the magic code when adding a VBBA What is the root cause of that problem?New feature What changes do you think we should make in order to solve the problem?Right here we need to remove the
And also we need to remove this code and the ValidateAccountMessage component since we do not want to show this even the user has not verified the account
And when clicking the Connect button we will check if the user has not verified the account we will redirect to the Validation component which we will create later <MenuItem
icon={Expensicons.Bank}
title={translate('bankAccount.connectOnlineWithPlaid')}
disabled={!!isPlaidDisabled}
onPress={() => {
if (!account?.validated) {
BankAccounts.goToWithdrawalAccountSetupStep(CONST.BANK_ACCOUNT.STEP.VALIDATE_USER)
} else if(!isPlaidDisabled) {
removeExistingBankAccountDetails();
BankAccounts.openPlaidView();
}
}}
shouldShowRightIcon
wrapperStyle={[styles.sectionMenuItemTopDescription]}
/>
<MenuItem
icon={Expensicons.Connect}
title={translate('bankAccount.connectManually')}
onPress={() => {
if(!account?.validated) {
BankAccounts.goToWithdrawalAccountSetupStep(CONST.BANK_ACCOUNT.STEP.VALIDATE_USER)
} else {
removeExistingBankAccountDetails();
BankAccounts.setBankAccountSubStep(CONST.BANK_ACCOUNT.SETUP_TYPE.MANUAL);
}
}}
shouldShowRightIcon
wrapperStyle={[styles.sectionMenuItemTopDescription]}
/> Add new property inside CONST.ts for Line 376 in 8ca4576
VALIDATE_USER: {
DESCRIPTION: "This feature requires you to validate your account",
},
STEP: {
VALIDATE_USER: 'ValidateUser', Also right here App/src/pages/ReimbursementAccount/ReimbursementAccountPage.tsx Lines 435 to 437 in da68c0b
We should handle for validate user Create new component for validating the user account similar to Validate account page What alternative solutions did you explore? (Optional) |
Edited by proposal-police: This proposal was edited at 2024-10-21 17:19:42 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.Add a step that collects the magic code when adding a VBBA What is the root cause of that problem?New feature What changes do you think we should make in order to solve the problem?In
onPress={() => {
if (!!isPlaidDisabled) {
return;
}
if (!account?.validated) {
Navigation.navigate(ROUTES.SETTINGS_WALLET_VERIFY_ACCOUNT.getRoute(Navigation.getActiveRoute()));
return;
}
removeExistingBankAccountDetails();
BankAccounts.openPlaidView();
}} POCScreen.Recording.2024-10-21.at.17.22.11.movWhat alternative solutions did you explore? (Optional)Regarding #51166 (comment) We have three options:
Update Line 156 in b176976
getRoute: (backTo?: string, setupType?: ValueOf<typeof CONST.BANK_ACCOUNT.SETUP_TYPE>) =>
getUrlWithBackToParam(`settings/wallet/verify${setupType ? `?setupType=${setupType}` : ''}`, backTo), handle if (setupType === CONST.BANK_ACCOUNT.SETUP_TYPE.PLAID) {
BankAccounts.openPlaidView();
} else if (setupType === CONST.BANK_ACCOUNT.SETUP_TYPE.MANUAL) {
BankAccounts.setBankAccountSubStep(CONST.BANK_ACCOUNT.SETUP_TYPE.MANUAL);
} Then update However, this approach will cause a bug similar to #50284, that user will be logged out immediately after verifying the account, and we will probably have to wait for #50835 to fix this bug.
Add a prop const setupType = route?.params?.setupType
/* ... */
<BankAccountStep
/* ... */
setupType={setupType}
/> Update onPress={() => {
if (!!isPlaidDisabled) {
return;
}
if (!account?.validated) {
Navigation.setParams({setupType: CONST.BANK_ACCOUNT.SETUP_TYPE.PLAID})
Navigation.navigate(ROUTES.SETTINGS_WALLET_VERIFY_ACCOUNT.getRoute(Navigation.getActiveRoute()));
return;
}
removeExistingBankAccountDetails();
BankAccounts.openPlaidView();
}} Add an useEffect(() => {
if (!account?.validated) {
return;
}
if (setupType === CONST.BANK_ACCOUNT.SETUP_TYPE.PLAID) {
BankAccounts.openPlaidView();
}
if (setupType === CONST.BANK_ACCOUNT.SETUP_TYPE.MANUAL) {
BankAccounts.setBankAccountSubStep(CONST.BANK_ACCOUNT.SETUP_TYPE.MANUAL);
}
}, [setupType, account?.validated]); This approach will not cause user to be logged out immediately, but the view will have a brief flash before entering the connect steps, video below. POC - Continue the flow right after navigate backScreen.Recording.2024-10-22.at.00.01.56.movAdd the following change to after here and here if (!isUserValidated) {
Navigation.navigate(
ROUTES.SETTINGS_WALLET_VERIFY_ACCOUNT.getRoute(
ROUTES.BANK_ACCOUNT_WITH_STEP_TO_OPEN.getRoute('', route.params.policyID, ROUTES.WORKSPACE_WORKFLOWS.getRoute(route.params.policyID)),
),
);
} POC - Requires validating before opening options pageScreen.Recording.2024-10-22.at.00.38.40.mov |
CC: @mountiny for eyes on this as I believe you've been involved in other flows that introduced it. Looking at the POC video, it overall looks good. My only question is whether we should continue them on in the flow rather than dropping them back on the same page where they have to click the button again. @shawnborton, whatcha' think? |
I would say continue them down the path rather than bring them back to the prior step. Thoughts? |
Edited by proposal-police: This proposal was edited at 2024-10-21 16:21:02 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.Add a step that collects the magic code when adding a VBBA What is the root cause of that problem?New feature. Currently we have another implementation What changes do you think we should make in order to solve the problem?I suggest below changes for continue in the flow rather than dropping back on the same page as mentioned in this comment.
What alternative solutions did you explore? (Optional) |
|
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Version Number: v9.0.51-1
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Applicable on all platforms
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @trjExpensify
Slack conversation: https://expensify.slack.com/archives/C07HPDRELLD/p1729255848407089?thread_ts=1729042472.964519&cid=C07HPDRELLD
Action Performed:
Expected Result:
This is a feature request.
Actual Result:
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
In-line above.
View all open jobs on GitHub
CC: @shawnborton @mountiny
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @Pujan92The text was updated successfully, but these errors were encountered: