-
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
Fix App does not navigate to last opened public room in small screen devices after Sign in from a public room link #20654
Conversation
…devices after sign in
tagging @WoLewicki and @adamgrzybowski for a review. |
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 looks fine @hoangzinh does it test well?
src/libs/actions/Report.js
Outdated
* | ||
* @param {String} lastOpenedPublicRoomID | ||
*/ | ||
function navigateToLastOpenedPublicRoom(lastOpenedPublicRoomID) { |
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.
Maybe we could name it this way since it lives in the Report actions file.
function navigateToLastOpenedPublicRoom(lastOpenedPublicRoomID) { | |
function openLastOpenedPublicRoom(lastOpenedPublicRoomID) { |
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.
Thanks for suggestion @mountiny . I updated the PR according to suggestion above.
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 main difference is that ReportScreenWrapper
is mounted for each report, so my question is why was this logic in that component in the first place? Should those check be run each time the user opens a report? I would also strongly recommend testing it on both wide and small screens. Another thing to test would be starting on small screen and then making it wide and the other way round (easiest to do on web).
@mountiny I'm recording the video for all platforms. So far so good, except desktop, I couldn't open public room in Desktop app when not signed in. |
I believe this is fine |
@WoLewicki good question btw. I'm not really too. But when it's mounted in the 1st time, if there is a |
Pretty sure, the PR checklist need to recording/screenshot for all platforms including Web/mWeb/native app so it will cover wide and small screens cases |
Hey, @hoangzinh This looks quite good! Have you tried to switch between a wide and narrow layout? I am wondering if the way how we handle resizing could break something here |
@allroundexperts would you be bale to jump in on testing and checklist of this one sooner than later? thanks! |
Sure @mountiny! |
@aptgrzybowski I'm appreciated if you can give me test steps with above scenarios so we're in same page. Otherwise, do you agree with test steps below?
|
Reviewer Checklist
Screenshots/VideosWebscreen-recording-2023-06-13-at-41023-pm_93WNpOwo.mp4Mobile Web - Chromescreen-recording-2023-06-13-at-41813-pm_pRZ9gVDs.mp4Mobile Web - Safariscreen-recording-2023-06-13-at-41556-pm_hfGzA5FK.mp4Desktopscreen-recording-2023-06-13-at-41249-pm_mCeH4wnf.1.mp4iOSscreen-recording-2023-06-13-at-43129-pm_Bf7eFhjT.mp4Android |
*/ | ||
function openLastOpenedPublicRoom(lastOpenedPublicRoomID) { | ||
Navigation.isNavigationReady().then(() => { | ||
setLastOpenedPublicRoom(''); |
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.
Why is this needed? Shouldn't the value remain the same?
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 copied from the old logic. But I think it makes sense if we want it trigger only 1 time. That means if we already visit the public room after sign in, then we refresh the page, it won't trigger again.
@hoangzinh My main concern was the fact that EDIT: And I guess that's the part responsible for clearing this prop |
@hoangzinh Just open the console ( |
@adamgrzybowski here is the recording for you Screen.Recording.2023-06-13.at.17.54.07.mp4 |
@marcochavezf @allroundexperts 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] |
@hoangzinh thanks for checking that scenario as well! |
This comment was marked as resolved.
This comment was marked as resolved.
This does work for iOS but on Android, I did not have any luck. |
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 tests well. @mountiny I think we can merge it without the Android native screen recording because its very difficult to open the public room via deep link in Android. Probably we should also create a ticket to investigate why deep links aren't working the way they should on native platforms for public rooms.
@marcochavezf can you handle this one please? |
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.
Thanks @marcochavezf I think we should look into the problem with the native deeplink
there are other 2 console.log errors when visit public room link (reproduce in all platforms) as reported by @allroundexperts here #20654 (comment) Although it's reported but it's closed too #20388. So to summary, as far as I know, current we have 4 issues related to open public room link when user is not signed in:
|
|
Hi guys, catching up here. Regarding all the logic related to And I agree that the deep link problem would be fixed in the other GH issue. I will check off the Android testing so the GH actions can pass. |
Applying |
Btw, related to the |
Fix App does not navigate to last opened public room in small screen devices after Sign in from a public room link (cherry picked from commit 2950c92)
…-20654 🍒 Cherry pick PR #20654 to staging 🍒
🚀 Cherry-picked to staging by https://github.com/marcochavezf in version: 1.3.27-6 🚀
@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes. |
@marcochavezf It's very easy to reproduce actually. Here are the steps.
Screen.Recording.2023-06-14.at.4.48.53.AM.mov |
@hoangzinh @mountiny @allroundexperts We are facing few issues with this PR When we use deeplink on Native apps It does not work as expected. We don’t see the room on LHN RPReplay_Final1686709378.mp4 |
asked in slack |
A fix for this is being worked here. We should re-test when that PR is done. |
@mvtglobally coming from this convo, this shouldn't be a deploy blocker, since the deeplink issue will be fixed in the PR linked in my comment above. Also, the anonymous user can't sign-in on desktop (I will create an issue for that). |
🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.27-7 🚀
|
🚀 Cherry-picked to staging by https://github.com/AndrewGable in version: 1.3.28-2 🚀
@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes. |
🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.28-5 🚀
|
1 similar comment
🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.28-5 🚀
|
Details
Fixed Issues
$ #20586
PROPOSAL: #20586 (comment)
Tests
Go to any Expensify account -> Setup a public room -> Copy the url of public room.
Offline tests
Could not test when offline
QA Steps
Same as Tests
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
Screen.Recording.2023-06-13.at.16.05.13.-.web.mp4
Mobile Web - Chrome
Screen.Recording.2023-06-13.at.16.01.46.-.android.chrome.mov
Mobile Web - Safari
Screen.Recording.2023-06-13.at.17.33.14.-.ios.-.safari.mov
Desktop
Screen.Recording.2023-06-13.at.18.01.18.-.desktop.mp4
iOS
In order to open public room in IOS native app, you need to close app completely
https://github.com/Expensify/App/assets/9639873/c30594cb-576b-414b-b175-d9f2d0571934
Android
In order to open public room in Android native app, you need to close app completely
https://github.com/Expensify/App/assets/9639873/7c943e68-4426-4639-bb36-5f33c569e67a