[UX Reliability] Use new modal in EmojiPicker#59539
Conversation
|
FYI @ZhenjaHorbach — there's a visible jump when the keyboard opens or closes. This affects both Android and iOS. It already happens on main as well. I tried to fix it today but it is not trival (height logic around emoji modal is complex). I think we should fix it ina follow up PR, thoughts? @mountiny edit: actually Margelo worked on this before, here is more context Before:ios16-before.mp4ios12mini-before.mp4android-before.webmAfter:ios12mini-after.mp4ios16-after.mp4android-after.webm |
|
@shawnborton @ZhenjaHorbach 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] |
Agree! And I will complete checklist today! |
|
🚧 @shawnborton has triggered a test app build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
Dang, mobile builds are failing for some reason... |
| isVisibleState && containerView | ||
| )} | ||
| <KeyboardAvoidingView | ||
| behavior="padding" |
There was a problem hiding this comment.
Maybe we should left old condition ?
behavior={getPlatform() === CONST.PLATFORM.IOS ? 'padding' : undefined}
Reviewer Checklist
Screenshots/VideosAndroid: NativeScreenrecorder-2025-04-07-10-09-55-637.mp4Android: mWeb ChromeScreenrecorder-2025-04-07-10-11-53-427.mp4iOS: Nativeios.moviOS: mWeb SafariIMG_9878.MP4MacOS: Chrome / Safari2025-04-02.23.49.32.movMacOS: Desktop2025-04-02.23.49.32.mov |
|
Don't say that this issue is only with me 😅 2025-04-02.23.47.28.mp4 |
Uff, I have the same problem 😂
Looking into this too! |
I'm working on it now 🫡 |
|
🚧 @mountiny has triggered a test app build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
|
@ZhenjaHorbach I’ve reverted the changes related to KeyboardAvoidingView, except I kept behavior="padding" for both iOS and Android. The warning should be gone now - feel free to continue testing 😄 Videos:ios.mp4ios-web.mp4web.movandroid.mp4and-web.webm |
|
@mountiny Could you trigger the ad-hoc builds once more? 🙏 |
|
Nice |
|
Triggering the builds for us now 👍 |
|
🚧 @shawnborton has triggered a test app build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
|
Noticed this Update: But this bug is reproduced in staging trim.355DAB94-9099-47AE-8A48-F6012BCD8817.MOV |
|
Everything looks good now |
mountiny
left a comment
There was a problem hiding this comment.
changes look good to me, curious if @shawnborton has any final feedback before we merge
|
Generally looks good to me! The only thing I noticed is that if you do not have the composer focused on mobile (no keyboard showing), and then you launch the emoji picker, and then you close the emoji picker, we immediately focus the composer after the emoji picker closes. However, I think that exists in the staging/prod apps, we can deal with that in a separate issue. |
|
Sounds good, thanks for double checking! |
|
✋ 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/mountiny in version: 9.1.24-2 🚀
|
|
@blazejkustra QA team found issues #59771, #59777 |
|
🚀 Deployed to production by https://github.com/jasperhuangg in version: 9.1.24-10 🚀
|
1 similar comment
|
🚀 Deployed to production by https://github.com/jasperhuangg in version: 9.1.24-10 🚀
|

Explanation of Change
We've decided to refactor the
react-native-bottom-modalcode so that it utilizesreact-native-reanimated, our goal was to improve FPS, remove the outdated library and gradually switch to the new solution. This PR enables the new solution inEmojiPicker.Fixed Issues
$ #49354
Tests
I think testing should go like this:
To open the modal you need to:
You can also reach it through message reactions like so:
Offline tests
Same as above, but it shouldn't matter
QA Steps
Same as above
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.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
Android: Native
Android.mov
Android: mWeb Chrome
Android.mWeb.mov
iOS: Native
iOS.mov
iOS: mWeb Safari
iOS.mWeb.mov
MacOS: Chrome / Safari
web.mov
MacOS: Desktop
desktop.mov