-
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
Selected workspace members unselect on switch from offline to online #29587
Selected workspace members unselect on switch from offline to online #29587
Conversation
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.
Left a comment for clarification and @ZhenjaHorbach could you resolve the lint error? Thanks!
_.intersection( | ||
prevSelected, | ||
setSelectedEmployees((prevSelected) => { | ||
const currentPersonalDetails = filterPersonalDetails(props.policyMembers, props.personalDetails); |
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.
@ZhenjaHorbach Why do we need to filter the personal details 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.
For optimization )
Instead of using all known PersonalDetails items
We will use only those that are needed only by the current workspace
Oh, sorry |
@mollfpr |
Thanks @ZhenjaHorbach for the ping! I'll get it done in a minutes. |
Reviewer Checklist
Screenshots/VideosWeb29587.Web.mp4Mobile Web - Chrome29587.mWeb-Chrome.mp4Mobile Web - Safari29587.mWeb-Safari.mp4Desktop29587.Desktop.mp4iOS29587.iOS.mp4Android29587.Android.mp4 |
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.
The test looks good, just final thing to clean up the function.
@@ -80,6 +80,24 @@ function WorkspaceMembersPage(props) { | |||
const prevAccountIDs = usePrevious(accountIDs); | |||
const textInputRef = useRef(null); | |||
const isOfflineAndNoMemberDataAvailable = _.isEmpty(props.policyMembers) && props.network.isOffline; | |||
const prevPersonalDetails = usePrevious(props.personalDetails); | |||
|
|||
function filterPersonalDetails(policyMembers, personalDetails) { |
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.
This should be an arrow function, and also please add JSDoc 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.
Done )
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 👍
Manually bump @Li357 for the final review. |
setSelectedEmployees((prevSelected) => { | ||
// Filter all personal details in order to use the elements needed for the current workspace | ||
const currentPersonalDetails = filterPersonalDetails(props.policyMembers, props.personalDetails); | ||
// Checking selected elements. Necessary in cases where there is a transition from offline to online mode, since after this the id changes for new members |
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.
I think this comment could be better: "We need to filter the previous selected employees by the new personal details, since unknown/new user id's change when transitioning from offline to online" or, note this change also covers others cases where we just need to use the most up to date personal details we know.
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.
It makes sense )
Done )
@ZhenjaHorbach Could you fix the conflict? Thanks! |
Done ) |
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 and tests well on the latest commit 👍
All yours @Li357
✋ 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 staging by https://github.com/Li357 in version: 1.3.86-0 🚀
|
🚀 Deployed to production by https://github.com/francoisl in version: 1.3.86-5 🚀
|
Details
Selected workspace members unselect on switch from offline to online
Fixed Issues
$ #28551
PROPOSAL: #28551 (comment)
Tests
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 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
Android: Native
android.mp4
Android: mWeb Chrome
web-android.mp4
iOS: Native
ios.mov
iOS: mWeb Safari
web-ios.mov
MacOS: Chrome / Safari
web.mp4
MacOS: Desktop
desktop.mov