-
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
[HOLD for payment 2023-12-20] [$500] iOS - LHN - Conversation disappears from LHN when creating an IOU with a new user in offline mode #31822
Comments
Job added to Upwork: https://www.upwork.com/jobs/~019835c6161c3d6b2f |
Triggered auto assignment to @miljakljajic ( |
Bug0 Triage Checklist (Main S/O)
|
Triggered auto assignment to Contributor-plus team member for initial proposal review - @narefyev91 ( |
@narefyev91, @miljakljajic Whoops! This issue is 2 days overdue. Let's get this updated quick! |
Waiting for proposals |
Tried multiple times and cannot see/reproduce the described problem. |
📣 @keisyrzk! 📣
|
ProposalPlease re-state the problem that we are trying to solve in this issue.When in offline mode, new IOU's do not appear in the LHN area until the network connectivity is restored. What is the root cause of that problem?The problem lies in this section of SidebarLinksData: As a resolution in in PR #24596, the optionListItems are restricted to update only once the report data is completely loaded. However, if the user goes offline at any point when the report data is loading, isLoadingReportData never gets a chance to resolve to "false". It remains stuck as "true". This means that in this line below, isLoading always resolves to true (save when the user's auth session expires) until the WiFi is connected again:
Which means that based on the lines below, the new optionsListItems are blocked from populating:
This is the source of the problem. What changes do you think we should make in order to solve the problem?The simplest solution is to have SidebarLinksData have the network.isOffline prop like some other components do. And update the code area referenced above to something like:
This will ensure that the new optionsListItems are shown even when isLoading is stuck as "true". Additionally, it won't have the risk of the lots-of-reRendering issue from PR #24596 since isLoading should technically remain stuck while network.isOffline. What alternative solutions did you explore? (Optional)Another solution is to update isLoadingReportData appropriately but handling its state based on a wifi connection is significantly more complex than the solution above. |
Proposal from @talhajavedmukhtar looks good to me #31822 (comment) |
Triggered auto assignment to @arosiclair, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
📣 @talhajavedmukhtar You have been assigned to this job! |
I will create the PR latest by 11:59 PM PST on 6th December. @narefyev91 Just to confirm, you mean that we should instantly update the optionsListItems as soon as the user goes offline, instead of waiting for the next call of the current version of the useMemo hook, right? (Can simply be handled by adding the isOffline variable to useMemo’s dependency array) |
Yup - we need to use isOffline prop in useMemo |
Contract extended to @talhajavedmukhtar ! @narefyev91 could you apply to the upwork job? |
Hey @miljakljajic i'm from expert agency - Callstack - no needs anything from upwork 👍 |
Hey @talhajavedmukhtar any updates on the PR? |
@narefyev91 I have been stuck trying to build the native android version of the app… Bug is resolved on the other platforms; just need to test it on Android too before creating the PR. It will be at max 17 more hours (11:59 PM PST 6th December) till I create the PR. |
Cool - appreciated ! |
@narefyev91 finally managed to build and test the native android version. Compiling all the recordings now for the PR. Will create the PR any minute now. |
[Bug resolution] for [#31822: Conversation disappears from LHN when creating an IOU with a new user in offline mode]
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.11-25 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2023-12-20. 🎊 After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.
For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
Payment summary for @talhajavedmukhtar: 500 USD for C+ role in reviewing prosposal. |
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.4.3.0
Reproducible in staging?: y
Reproducible in production?: y
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 conversation should not disappear from the LHN when creating an IOU with a new user offline
Actual Result:
Conversation disappears from LHN when creating an IOU with a new user in offline mode
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
Bug6289490_1700829488860.Prod.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: