Fix invited members does not reflect in offline mode#22410
Fix invited members does not reflect in offline mode#22410madmax330 merged 19 commits intoExpensify:mainfrom
Conversation
…/21891-invited-users-offline
…/21891-invited-users-offline
…/21891-invited-users-offline
|
@0xmiroslav Please 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] |
|
@rezkiy37 please pull main and fix lint. |
Reviewer Checklist
Screenshots/VideosWebweb.movMobile Web - ChromeMobile Web - SafariDesktopdesktop.moviOSAndroid |
…/21891-invited-users-offline
@0xmiroslav, thank you, done! |
|
It seems conflict came from #22904 |
|
@0xmiroslav can you fix the conflict? |
|
Oh, it's @rezkiy37's PR. I don't have write permission. |
|
@madmax330, I've fixed conflicts and applied your suggestions. Thank you! |
|
@madmax330, just a friendly reminder 🙂 |
|
I see they removed: const logins = _.map(_.keys(invitedEmailsToAccountIDs), (memberLogin) => OptionsListUtils.addSMSDomainIfPhoneNumber(memberLogin));However, I need this data and I have it. |
|
@0xmiroslav can you please re-review? |
…/21891-invited-users-offline
|
@0xmiroslav, ready for re-review 🙂 |
|
@0xmiroslav, just a friendly reminder 🙂 |
|
Bump @0xmiroslav |
|
I can review this. (saw this comment on slack) |
There was a problem hiding this comment.
Sorry I was reviewing this already based on https://expensify.slack.com/archives/C02NK2DQWUX/p1691056044424399?thread_ts=1691055547.528309&cid=C02NK2DQWUX.
It didn't get passed 1 day yet after I got suggested to review.
|
Console error: (this also happens on main so out of scope, seems regression from #23705)
|
Reviewer Checklist
Screenshots/VideosWebScreen.Recording.2023-08-04.at.5.18.56.AM.movMobile Web - Chromemchrome.movMobile Web - Safarimsafari.movDesktopdesktop.moviOSios1.movios2.movAndroidandroid.mov |
…/21891-invited-users-offline
|
✋ 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/madmax330 in version: 1.3.52-0 🚀
|
|
🚀 Deployed to staging by https://github.com/madmax330 in version: 1.3.52-0 🚀
|
|
🚀 Deployed to production by https://github.com/puneetlath in version: 1.3.52-5 🚀
|


Details
Actually, the changes improve how the app handles the inviting members to a workspace during the offline mode. The app previews new members like a pending state. It follows Optimistic With Feedback Pattern B.
Also, once our users back online, the app sends a request to add the new members. A response includes new members with own ids. It is important to clear local created members (local ids) and replace them with those members come from the backend.
Fixed Issues
$ #21891
PROPOSAL: #21891 (comment)
Tests
Offline tests
offlinemode.offlinemode.QA Steps
Same as "Tests" or "Offline tests".
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodWaiting for Copylabel for a copy review on the original GH to get the correct copy.STYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)/** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Web
MacOS.Chrome.Offline.mp4
MacOS.Chrome.Online.mp4
MacOS.Safari.Offline.mp4
MacOS.Safari.Online.mp4
Mobile Web - Chrome
IOS.Chrome.Offline.mp4
IOS.Chrome.Online.mp4
Mobile Web - Safari
IOS.Safari.Offline.mp4
IOS.Safari.Online.mp4
Desktop
Desktop.Offline.mp4
Desktop.Online.mp4
iOS
IOS.Online.mp4
Android
Android.Offline.mp4
Android.Online.mp4