-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[$500] Bank account - Ongoing BA setup shows Connect online instead of Continue setup in offline mode #31030
Comments
Triggered auto assignment to @adelekennedy ( |
Job added to Upwork: https://www.upwork.com/jobs/~018f1012ebf2275e7d |
Bug0 Triage Checklist (Main S/O)
|
Triggered auto assignment to Contributor-plus team member for initial proposal review - @abdulrahuman5196 ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.In offline mode, bank account page show connect online with plaid and connect manually What is the root cause of that problem?We clear App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 188 to 190 in c2e4042
When online, the page will get What changes do you think we should make in order to solve the problem?We cleared App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 188 to 190 in c2e4042
What alternative solutions did you explore? (Optional)If we want to display this page in offline mode, we should not clear App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 188 to 190 in c2e4042
|
Dupe of #26631 |
Closing this |
ProposalPlease re-state the problem that we are trying to solve in this issue.(Offline) The bank account page shows the connect option page instead of the continue setup page even though we have an ongoing bank account setup. What is the root cause of that problem?It's a regression from #29260 where we always clear the bank account data when we close the bank account page. App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 188 to 190 in b33ac36
So, when we reopen the bank account page, the page doesn't know we have an ongoing setup and shows the connect option page. The purpose of that PR is to solve #27901 (blinking issue). The issue is that when we open the BA page, it will first show the connect option page, a full-screen loader, and then the connect option page. However, the PR itself is full of flaws. First, we lost our ongoing BA setup whenever we closed the page. App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 189 to 191 in f168423
Second, the second condition below always returns false. App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 113 to 114 in f168423
Why? Undercore What changes do you think we should make in order to solve the problem?Undo the changes from #29260 and then we should have a new fix for the blinking issue #27901. To fix the blinking issue, we should understand the root cause first which is explained on the blinking issue proposal. To put it short, we set the loading state of the BA onyx on mount, App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 121 to 123 in f168423
App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 311 to 313 in f168423
but it takes time, so we initially see the connect option page. After the onyx sends us the new data, a full-screen loading is shown, and after the loading is done, we see the connect option again. App/src/pages/ReimbursementAccount/ReimbursementAccountPage.js Lines 401 to 402 in f168423
From what I understand, we want to immediately show the loading indicator on the component mount. To achieve this, we should have a loading state/props that has an initial value of The first one is to have a new reimbursement account onyx connection with an undefined initial value and only takes the isReimbursementAccountLoading: {
key: ONYXKEYS.REIMBURSEMENT_ACCOUNT,
initWithStoredValues: false,
selector: (reimbursementAccount) => lodashGet(reimbursementAccount, 'isLoading'),
}, We set However, What alternative solutions did you explore? (Optional)The second one is to have a new local state called We will update componentDidUpdate(prevProps) {
if (prevProps.reimbursementAccount.isLoading !== this.props.reimbursementAccount.isLoading) {
this.setState({isLoading: this.props.reimbursementAccount.isLoading})
} Another alternative: Below is the solution if((!this.state.hasACHDataBeenLoaded && isLoading) Currently, we show the loading indicator if it's loading OR we don't have the data yet.
Onyx fixThe root cause of the broken To fix it, we should initialize the onyx key only if -if (
+if (mapping.initWithStoredValues &&
((value !== undefined
&& !Onyx.hasPendingMergeForKey(key))
|| mapping.allowStaleData)
) { |
@adelekennedy @abdulrahuman5196 after discussion in #26631 let's reopen this and keep these as two separate issues |
📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸 |
issue reopened - @abdulrahuman5196 do you mind checking these proposals again (including the one added after the issue was closed)? |
Got it. Will check the proposals in my morning. |
@abdulrahuman5196 @adelekennedy this issue is now 4 weeks old and preventing us from maintaining WAQ, can you:
Thanks! |
Current assignee @abdulrahuman5196 is eligible for the Internal assigner, not assigning anyone new. |
Reviewing now |
I gone through the proposals at a glance and the linked issue. I would need more time to analyse. Will update here once done. |
@abdulrahuman5196 thans for the update - do you have an eta on when you'll be able to review? |
I will provide an update by tomorrow. |
@abdulrahuman5196 Should we close this? This isn't directly linked to any of our wave or vip projects at the moment and this is an annoying but ultimately small issue imo |
@adelekennedy I am not sure about priority, might be small issue with little complex fix as per current proposals. Could you kindly check internal if we should proceed on this? |
closing this one |
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results. If a regression has occurred and you are the assigned CM follow the instructions here. If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future. |
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: 1.3.96-5
Reproducible in staging?: Y
Reproducible in production?: N/A, cannot check bank account on production
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: Applause - Internal Team
Slack conversation:
Action Performed:
Expected Result:
The Bank account page shows Continue with setup and Start over options
Actual Result:
The Bank account page shows Connect online with Plaid and Connect manually
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
Bug6267925_1699388183173.20231108_012714.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: