-
Notifications
You must be signed in to change notification settings - Fork 3k
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-12] [$500] Chat - No skeleton loading when scrolling up the chat history offline until the chat is reopened #31367
Comments
Triggered auto assignment to @mallenexpensify ( |
Job added to Upwork: https://www.upwork.com/jobs/~01073572ec47fdb07b |
Bug0 Triage Checklist (Main S/O)
|
Triggered auto assignment to Contributor-plus team member for initial proposal review - @s77rt ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.The top report skeleton is not visible when offline. What is the root cause of that problem?This happens because we display the top skeleton based on this condition:
This value should get updated by calling the App/src/pages/home/report/ReportActionsView.js Lines 179 to 193 in 7727150
What changes do you think we should make in order to solve the problem?In First, Move (and slightly modify) this code outside of const oldestReportAction = _.last(props.reportActions);
const isLoadedTillBeginning = lodashGet(oldestReportAction, 'actionName', '') === CONST.REPORT.ACTIONS.TYPE.CREATED; Second, modify the logic for displaying the top skeleton: show it also when offline & the history is not loaded until the beginning. isLoadingOlderReportActions={props.isLoadingOlderReportActions || (props.network.isOffline && !isLoadedTillBeginning)}
What alternative solutions did you explore? (Optional) |
@paultsimura Thanks for the proposal. Your RCA makes sense but the solution does not look good to me. |
I see this is a regression from #30658 and it's still within the regression period. In this case this should be fixed by the Contributor/Contributor+ @paultsimura / @getusha |
I agree this looks like a regression from #30658 |
Yes, I'm on it. However, @s77rt could you please elaborate a little on why is this bad?
If we are offline and not at the beginning of the conversation yet – this means we will eventually load the newer actions when online, doesn't it? |
@paultsimura The logic makes sense but just the way we are modifying the A slight adjustment is to move the logic to |
Thanks @s77rt, this makes sense. I would like to clarify the expected UI in the offline case: should we show the long skeleton, similar to when loading the older events, or the shorter one – like when loading the initial report actions? Shortshort-.mp4Longlong.mp4Also, I suppose it should be not animated when offline, similar to the App/src/pages/home/report/ListBoundaryLoader/ListBoundaryLoader.js Lines 48 to 51 in 5d45f0f
@shawnborton could you please share your upinion here? |
Hmm shorter seems to make more sense to me, but cc @Expensify/design for thoughts in case they disagree. Also, it looks like we are missing the animation on the skeleton lines above the preview cards. Any idea why those skeleton lines are not using the pulse/fade/gradient animation? |
@shawnborton looks like it was made on purpose: we're disabling the animation when offline:
I believe this was made so that the user won't expect something new to be loaded while offline (the animation implies that something's happening). If that's not the expected behaviour, I can remove this condition and the result will look like this: Simulator.Screen.Recording.-.iPhone.15.-.2023-11-17.at.14.43.01.mp4 |
Oh that's interesting about the animation—it makes total sense after you explain it, but I'm not sure anyone will connect those dots on their own. I don't have strong feelings about it though so I'll leave it to @shawnborton. I'm also a fan of the short skeleton in this situation—it does it's job communicating the state so I don't think we need any more than that. |
Hmm yeah, I see the point too. I think I'd rather just always have the subtle animation though, otherwise we get into a weird situation where we try to determine if the loading state should be animated or not based on connectivity, which might not be truly offline but could be flakey and cause some weird start/stop of the animation? So I lean towards just always having it. |
Thanks y'all. The PR is ready: #31492 |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.7-4 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-12. 🎊 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:
|
Regression Test Proposal
|
@mallenexpensify Please assign @getusha and @paultsimura here since this is a part of #30503 |
❌ There was an error making the offer to @getusha for the Reviewer role. The BZ member will need to manually hire the contributor. |
📣 @getusha 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app! Offer link |
📣 @paultsimura 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app! Offer link |
@mallenexpensify we can close this as it was handled as a regression. |
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.99.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:
In Step 5, skeleton placeholder will appear.
Actual Result:
In Step 5, skeleton placeholder does not appear. It only appears when the chat is revisited in Step 7.
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
Bug6277522_1700054825958.Screen_Recording_20231115_162131_New_Expensify__1_.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: