-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Fix: Implement skeleton view in workspace member page #43893
Conversation
@shawnborton Do we have a ticket to handle a small screen? Currently with the change in PR, small screen looks like: Screen.Recording.2024-06-18.at.17.36.51.mov |
I don't think we need to show anything different for small screens - what you have looks good to me. |
This comment has been minimized.
This comment has been minimized.
Tested and this feels pretty good to me! |
@truph01 Please can you fix the lint errors? Thanks 🙏 |
@jjcoffee I fixed lint errors. |
@truph01 Thanks! I will test soon, once BE issues are resolved. |
Reviewer Checklist
Screenshots/VideosAndroid: Nativeandroid-app-2024-06-24_14.30.34.mp4Android: mWeb Chromeandroid-chrome-2024-06-24_14.35.32.mp4iOS: Nativeios-app-2024-06-24_14.16.40.mp4iOS: mWeb Safariios-safari-2024-06-24_14.18.20.mp4MacOS: Chrome / Safaridesktop-chrome-2024-06-24_14.20.11.mp4MacOS: Desktopdesktop-app-2024-06-24_14.26.45.mp4 |
@truph01 You've ticked off all items on the checklist but you haven't actually completed every item. You're missing test steps and there are no screenshots for iOS & Android. Please can you make sure you complete all checklist items before marking your PR ready for review in future. |
@@ -0,0 +1,41 @@ | |||
import React from 'react'; |
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.
Since this is extremely similar to OptionsListSkeletonView
, I'm wondering if it would be better to just pass a prop like isTableList
to OptionsListSkeletonView
, which would keep things more DRY. Any thoughts?
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.
@jjcoffee Sorry, you mean that we should remove the UserListSkeletonView component, then handle it in OptionListSkeletonView by passing prop isUserList
, right?
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.
Yeah I think that's tidier, unless you have any other thoughts! I think isTableList
as a prop name fits better here as we're only styling the list as a table, rather than changing the layout from the base layout to fit something specific for a user list.
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.
@jjcoffee In the main branch, we already have TableListItemSkeleton
, ItemListSkeletonView
, and OptionListSkeletonView
(which is based on ItemListSkeletonView
). In this PR, we just added a new skeleton component, UserListSkeletonView
. To maintain consistency with other skeleton components, we should keep UserListSkeletonView
as is. If we plan to let OptionListSkeletonView
handle UserListSkeletonView
by passing isUserList
, we should apply the same approach to the other skeleton components like TableListItemSkeleton
and ItemListSkeletonView
.
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.
My point is that UserListSkeletonView
is almost identical to OptionListSkeletonView
, so I'm not sure how useful it is to split it out into a new component since it doesn't apply any layout changes, just a few style tweaks (as far as I can tell). OptionListSkeletonView
and TableListItemSkeleton
both use ItemListSkeletonView
, so I'm not sure your point applies here. Unless I'm missing something!
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.
OptionListSkeletonView uses TableListItemSkeleton which uses ItemListSkeletonView
Sorry, why did you say that OptionListSkeletonView uses TableListItemSkeleton? Is there any mistake here?
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.
Haha oops sorry, I meant that they both use ItemListSkeletonView
. We are displaying an OptionList
here, so I don't know if it makes sense to add a new component as not all user lists should be displayed as tables. I think we are fundamentally saying "here's an option list, but we want it to look like a table". TableListItemSkeleton
uses a completely different layout (not just styling), that's why it needs to be split into a separate component.
@jjcoffee Oh, I noted that. I've updated all the test steps and videos. Initially, I didn't include the videos on mobile devices because I needed confirmation about this question. After receiving internal confirmation, I forgot to add them. It is my bad. |
@jjcoffee I updated PR to fix your comment. |
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.
LGTM! Thanks 🙏
Before we merge, let's get a quick @Expensify/design review (I'll look now) |
@truph01 can you confirm that the table rows have horizontal padding of 16px and vertical padding of 12px? Like so: |
It looks like the left edge might be using 20px padding so just wanna check that quickly. |
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
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.
Code LGTM, @shawnborton let me know if the style seems good to you.
@truph01 can you check my comment above? I can't seem to test this very well, the loading state goes away immediately. |
|
That feels better. Can you confirm that the two stacked lines are 12px away from the circle shape to their left? That's the last confirmation I think we need before we can merge this. Thanks! |
|
Wonderful, thanks! All good on my end, cc @Expensify/design in case you see anything, otherwise this is looking good to go @blimpich |
will give it till EOD for others to comment on the updated style, then I'll merge if nothing comes up |
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
🚀 Deployed to production by https://github.com/jasperhuangg in version: 9.0.3-7 🚀
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.0.5-13 🚀
|
Details
Fixed Issues
$ #43605
PROPOSAL: #43605 (comment)
Tests
Screen.Recording.2024-06-25.at.15.43.34.mov
Screen.Recording.2024-06-25.at.15.57.38.mov
Offline tests
QA Steps
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.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
Android: Native
Screen.Recording.2024-06-25.at.15.58.27.mov
Android: mWeb Chrome
Screen.Recording.2024-06-25.at.15.51.39.mov
iOS: Native
Screen.Recording.2024-06-25.at.15.57.38.mov
iOS: mWeb Safari
Screen.Recording.2024-06-25.at.15.50.24.mov
MacOS: Chrome / Safari
Screen.Recording.2024-06-18.at.17.34.33.mov
MacOS: Desktop
Screen.Recording.2024-06-18.at.17.34.33.mov