-
Notifications
You must be signed in to change notification settings - Fork 3.2k
fix/14490: No data displayed in options list if component using report data is rendered too early #17349
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
Conversation
@amyevans @aimane-chnaif One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
I have read the CLA Document and I hereby sign the CLA |
recheck |
@jczekalski no worries. as bot says, you signed already. |
PR is ready for review @aimane-chnaif @amyevans |
@jczekalski don't use rebase merge. too many commits and irrelevant code changes. can you repair PR? |
@aimane-chnaif Yes, sorry, I tried to update my branch with main since some conflicts showed up and I messed it up. |
14557e2
to
e2aec0b
Compare
@aimane-chnaif Fixed |
@jczekalski please pull from main |
@aimane-chnaif done |
@aimane-chnaif will you be able to review/test today? |
yes |
@jczekalski Did you push all the changes? I don't think PR fixes main bugs happening on search, money request pages. bug1.movbug2.movbug3.mov |
Also please pull from main and fix conflicts |
@aimane-chnaif You're right, it's not working for me either. Something must have changed since I originally opened the PR, I'll try to figure out what's going on. |
@aimane-chnaif I pulled in the changes from the latest version of |
Thanks guys, I agree there's been some scope creep here and sympathize that that can be frustrating. Can you quickly summarize how you'd like any out-of-scope work split up into new GH(s) and I can get those created? I can prioritize a final PR review by the end of my day as well so that we can hopefully get this merged. |
@aimane-chnaif @amyevans
|
There are still issues on some screens but as agreed we can fix them as separate issues. Follow-up issues:
split.confirm.crash.mov
split.confirm.list.mov
invite.movmembers.mov |
Reviewer Checklist
Screenshots/VideosWebweb.movMobile Web - Chromemchrome.movMobile Web - Safarimsafari.movDesktopdesktop.moviOSios.movAndroidandroid.mov |
@aimane-chnaif Do you think we should create separate issues for these problems or perhaps one catch-all issue/PR to handle all of them? Should I create the issue(s) or should it be someone internal from Expensify? |
@amyevans will handle them |
@amyevans what's remaining before merge? @jczekalski please fix conflict came from prettier |
@amyevans Conflicts resolved :) |
Okay that took a lot of re-running CI jobs due to errors: Going to merge! 🎉 I'll create the follow up issues after I get through a few other things on my plate |
🚀 Deployed to staging by https://github.com/amyevans in version: 1.3.13-0 🚀
|
🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.13-5 🚀
|
@@ -16,7 +16,7 @@ const defaultTypes = { | |||
shouldAnimate: true, | |||
}; | |||
|
|||
class LHNSkeletonView extends React.Component { | |||
class OptionsListSkeletonView extends React.Component { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi everyone! dropping a gentle note here. When we generalised this component for OptionsList
, we forgot to hide the overflow of extra skeletons when there is a button at the bottom.
Causing this bug -

There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch! Thanks for the fix
Details
The issue affects components that rely on report and personal details data to display a list of options. If the component is rendered too early, the data will not be displayed even when it has fully loaded or, if personal details is not ready, the app will crash. This issue was originally identified on
SearchPage
, where, if the page is opened too early, the data would only be displayed after closing and re-opening the page or typing in the input field.Pages/components affected by this problem:
The purpose of this PR is to:
Fixed Issues
$ #14490
$ #17293
$ #16739
$ #18389
PROPOSAL: #14490 (comment)
Tests
Offline tests
Web
To make it easier to reproduce this issue, set network throttling to

Slow 3G
or add an even slower profile, e.g.Mac
Simulate a bad network using Network Link Conditioner

QA Steps
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)src/languages/*
files and using the translation methodWaiting for Copy
label for a copy review on the original GH to get the correct copy.STYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)/** comment above it */
this
properly so there are no scoping issues (i.e. foronClick={this.submit}
the methodthis.submit
should be bound tothis
in the constructor)this
are necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);
ifthis.submit
is never passed to a component event handler likeonClick
)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Web
Skeleton loader - Search Page (no search term)demo_search_page.mov
Skeleton loader - New Chat (with search term entered while loading)
demo_new_chat_search_term.mov
Skeleton loader - Send Money
demo_send_money.mov
Report and personal details data updating
chat_personal_details_udodates.mov
Mobile Web - Chrome
android_chrome.mov
Mobile Web - Safari
ios_safari.mov
Desktop
desktop.mov
iOS
ios.mov
Android
android.mov