-
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
Mobile emoji picker now has search input #18221
Mobile emoji picker now has search input #18221
Conversation
@stitesExpensify @mollfpr 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] |
…earch-mobile-emoji-picker
@perunt @stitesExpensify Is this ready to be review? |
@mollfpr yes, it should be good to go |
…earch-mobile-emoji-picker
Reviewer Checklist
Screenshots/VideosWeb18221.Web.movMobile Web - Chrome18221.mWeb.Chrome.webmMobile Web - Safari18221.mWeb.Safari.mp4Desktop18221.Desktop.moviOS18221.iOS.mp4Android18221.Android.webm |
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.
Sorry for the delay @perunt 🙏
Mostly the changes look good to me 👍; Just leave some thoughts and suggestions for cleanup.
@@ -176,6 +186,8 @@ class EmojiPicker extends React.Component { | |||
}} | |||
anchorOrigin={this.state.emojiPopoverAnchorOrigin} | |||
measureContent={this.measureContent} | |||
outerStyle={Browser.isMobile() && {maxHeight: this.props.windowHeight, marginTop: this.props.viewportOffsetTop}} |
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 only apply this style to mobile browsers?
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.
On the web, we handle keyboards differently, in this case, this style is used to adjust content dimensions when the keyboard is opened.
…earch-mobile-emoji-picker
…earch-mobile-emoji-picker
@mollfpr, I updated keyExtractor. Is everything okay on your end or do you have any issues? |
@perunt I cannot see the search input mWeb/Chrome with Emulator Pixel 2. Do you think we should worry about this now? Screen.Recording.2023-05-11.at.09.51.33.mov |
…m/margelo/expensify-app-fork into perunt/search-mobile-emoji-picker
…earch-mobile-emoji-picker
To be honest, it's challenging to fit everything into such a small screen, especially with the Navigation and Address Bars (on the web). I know that currently, we have a few UI issues for Pixel 2, and regarding this conversation (https://expensify.slack.com/archives/C01GTK53T8Q/p1676879900179529) I understood that it's not our target device. But we should ask @shawnborton if we need to support such devices. Additionally, I'll add screenshots from the smallest iPhones (12/13 Mini and SE) to show how it appears now. |
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 👍
Just some comments to finalize this.
This comment was marked as duplicate.
This comment was marked as duplicate.
@mollfpr, I've updated it. Should be good now |
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.
@perunt Sorry for the back and forth, just a minor concern.
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 @perunt for this PR 👍
All yours @stitesExpensify
@mollfpr it looks like the checklist changed between when you filled it out and now, so the action is failing. Can you re-check the boxes off with the new format? |
Updated the checklist 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.
Trigger the check.
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 is looking good! Just one question, and I'm going to do some testing
✋ 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/stitesExpensify in version: 1.3.26-0 🚀
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.26-4 🚀
|
This minor issue was missed in the PR. Issue: #22504 |
This issue is a regression from this PR. Issue: mWeb - Chat - emoji picker presents glitches while scrolling with the keyboard open
|
It looks like this issue is a regression from this PR. Emoji - When scrolling with the down arrows, the emoji selection disappears
|
Details
Fixed Issues
$ #14098
PROPOSAL: GH_LINK_ISSUE(COMMENT)
This is a reimplementation of #14652, as it was causing regression issues. In this pull request, I have only used KeyboardAvoidingView in cases involving the Emoji Suggestion picker. I have also tested the cases that led to regressions and everything seems to be working fine. As I mentioned earlier, we are currently waiting for the merging of the Reanimated KeyboardAvoidingView fix. Once that is done, it should be possible to make the movements of the Emoji Suggestion modal smoother.
Tests
All Platforms:
Also need to test another modal in chat screen as:
open image in chat on all platforms
drag and drop files on the web
Verify that no errors appear in the JS console
Offline tests
QA Steps
PR Author Checklist
### Fixed Issues
section aboveTests
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
have been tested & I retested again)/** 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
May-02-2023.16-34-15.mp4
Mobile Web - Chrome
telegram-cloud-document-2-5461104041314496258.mp4
ANDROID_PIXEL_WEB.mp4
Mobile Web - Safari
IOS_14_WEB_2.mp4
IOS_SE_WEB.mp4
Desktop
May-02-2023.16-41-55.mp4
iOS
IOS_14_Native.mp4
Android
telegram-cloud-document-2-5461104041314496229.mp4
Android_native.mp4