Fix Contact list modal broken in landscape mode#96751
Conversation
|
@codex review |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d72affc684
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good for product.
Explanation of Change
Fixes Contact list modal which is broken in landscape mode, also adjusts height when the keyboard is open. Adds a shared
calculateModalHeightInLandscapeModeutil (accounts for top safe-area inset and active keyboard height) and uses it in the Submit To popover and Emoji Picker (where there was a similar logic for modal height). Also hides the confirm button while the keyboard is active in landscape so that the input and list is visible while typing with open keyboard, and simplifies the landscape checks to no longer requireisSmallScreenWidth.Fixed Issues
$ #95096
PROPOSAL: N/A
Tests
Prerequisites: use Submit workspace
Offline tests
N/A
QA Steps
Same as tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.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
Screen.Recording.2026-07-22.at.16.23.08.mov
Android: mWeb Chrome
Screen.Recording.2026-07-22.at.16.35.41.mov
iOS: Native
Screen.Recording.2026-07-22.at.16.24.41.mov
iOS: mWeb Safari
Screen.Recording.2026-07-22.at.16.37.51.mov
MacOS: Chrome / Safari
Screen.Recording.2026-07-22.at.16.29.10.mov