-
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
Wildan/fix/21518/client pusher method #24407
Wildan/fix/21518/client pusher method #24407
Conversation
…x/21518/client-pusher-method
@allroundexperts 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] |
Reviewer Checklist
Screenshots/VideosWebScreen.Recording.2023-09-22.at.3.34.18.AM.movMobile Web - ChromeScreen.Recording.2023-09-22.at.3.43.20.AM.movMobile Web - SafariScreen.Recording.2023-09-22.at.3.46.25.AM.movDesktopScreen.Recording.2023-09-22.at.3.39.04.AM.moviOSScreen.Recording.2023-09-22.at.3.47.34.AM.movAndroidScreen.Recording.2023-09-22.at.3.45.26.AM.mov |
@wildan-m Can you please merge main and resolve conflicts? |
…x/21518/client-pusher-method
@allroundexperts sure. Done. |
…x/21518/client-pusher-method
@allroundexperts any feedback on the implementation? |
Sorry for the delay @wildan-m. I'll look into it later today / early tomorrow. |
@wildan-m Can you please merge main again? |
…x/21518/client-pusher-method
@allroundexperts sure. done. |
@allroundexperts not sure what causes some checks to fail. seems not related to this PR |
…x/21518/client-pusher-method
It's related to mapbox integration. |
…x/21518/client-pusher-method
resolved after this post. |
@wildan-m It looks like @allroundexperts let's try to get this reviewed before the merge conflict merry-go-round comes back around to haunt Wildan again? 😅 |
…x/21518/client-pusher-method
@deetergp, @allroundexperts done. |
…x/21518/client-pusher-method
I'll recheck this again tomorrow 🤞🤞🤞 |
@allroundexperts is this still on your list for today? |
Yep. Once I wake up tomorrow! |
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.
Testing well now!
Congrats, that’s your 5th PR merged! 🎉 Do you know about the ContributorPlus role? It’s an opportunity to earn more in the Expensify Open Source community. Keep up the great work - thanks! |
✋ 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/luacmartins in version: 1.3.73-0 🚀
|
🚀 Deployed to production by https://github.com/mountiny in version: 1.3.73-1 🚀
|
🚀 Deployed to staging by https://github.com/luacmartins in version: 1.3.74-0 🚀
|
🚀 Deployed to production by https://github.com/chiragsalian in version: 1.3.74-3 🚀
|
useEffect(() => { | ||
// Ensures subscription event succeeds when the report/workspace room is created optimistically. |
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.
We should have early returned if reportID
is null
to avoid the console error mentioned in #29116.
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.
@fedirjh Thanks for your feedback. We did it here and here, but we might also need to put it in useEffect
The issue also related to this function:
App/src/pages/home/ReportScreen.js
Lines 128 to 131 in 6cc9053
function getReportID(route) { | |
// // The reportID is used inside a collection key and should not be empty, as an empty reportID will result in the entire collection being returned. | |
return String(lodashGet(route, 'params.reportID', null)); | |
} |
it returned 'null' string instead of an actual null
.
I'd recommend to change it to:
function getReportID(route) {
const reportID = lodashGet(route, 'params.reportID', null);
return reportID !== null ? String(reportID) : null;
}
@luacmartins, @allroundexperts, considering that this has passed the regression period, and any change would require re-testing. What should we do in this situation? Will there be any adjustments?
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'd recommend to change it to:
We attempted this in PR #29590, but it resulted in a regression, so we reverted the changes in PR #29893. The issue arises from the fact that getReportID
is utilized within the withOnyx
HOC. When null
is passed as its value, Onyx will return the entire collection. Therefore, it was intentional for getReportID
to return a 'null'
string when the report is empty.
App/src/pages/home/ReportScreen.js
Line 470 in 6cc9053
key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${getReportID(route)}`, |
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.
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 we also need to check onyx report reportId
availability to avoid #38174
@johncschuster , @allroundexperts
Details
Fix leaving a room from multiple devices and fix regression when splitting the bill
Fixed Issues
$ #21518
$ #22964
PROPOSAL: #21518 (comment)
Tests
Leave Room Test
Leave Room
on one of the devices (e.g. web)Split bill test
Offline tests
Leave Room
on one of the devices (e.g. web)QA Steps
Leave Room
on one of the devices (e.g. web)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
Web
Recording.53.2.mp4
Mobile Web - Chrome
Recording.48.2.mp4
Mobile Web - Safari
Recording.49.2.mp4
Desktop
Recording.51.2.mp4
iOS
Recording.50.2.mp4
Android
Recording.47.mp4