Fix/73240 - The site header partially overlaps the typing indicator and composer error messages when the composer is focused and virtual keyboard is open#73630
Conversation
|
|
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
| "react-plaid-link": "3.3.2", | ||
| "react-web-config": "^1.0.0", | ||
| "react-webcam": "^7.1.1", | ||
| "ua-parser-js": "^1.0.38", |
There was a problem hiding this comment.
No, as I said, we should get device info from expensify-common, not here.
|
Please raise PR in expensify-common repo which supports iOS 26 detection |
Ah, my bad. I'll submit a PR soon. |
|
It's merged. Please bump expensify-common to 2.0.164 |
|
Thanks for the reminder. I've just bumped expensify-common to version 2.0.164. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariScreen.Recording.2025-11-12.at.10.25.22.PM.mov
iOS 18.6: Screen.Recording.2025-11-12.at.11.01.23.PM.movMacOS: Chrome / SafariMacOS: Desktop |
| }; | ||
|
|
||
| return KeyboardUtil.subscribeKeyboardVisibilityChange(handler); | ||
| }, [sharedValue]); |
There was a problem hiding this comment.
This is affected on all pages which use KeyboardAvoidingView, right?
We should apply this only to report screen which has composer. Otherwise it will cause regressions on other pages on iOS 26 safari.
There was a problem hiding this comment.
That's right.
When I created the PR, I reviewed all the styles applied to BaseKeyboardAvoidingView in the app, and none of them set paddingBottom. So we don't need to worry about our PR overriding any existing paddingBottom.
That said, I still think we should apply the full padding, since in addition to the typing indicator and error messages, there's also the offline indicator. What do you think?
There was a problem hiding this comment.
Even though paddingBottom prop is not passed in every KeyboardAvoidingView, animatedStyle is always applied, isn't it?
There was a problem hiding this comment.
That's right, but I'm not entirely sure what you mean. The regression has been minimized since we're not overriding any paddingBottom. We still need to apply it globally because of the offline indicator.
There was a problem hiding this comment.
Good for offline case but I am afraid QA will report this as regression.
Screen.Recording.2025-11-12.at.10.28.02.PM.mov
|
@dmkt9 please merge main |
|
@situchan The main branch has been merged. |
|
It doesn't work for me at all. Screen.Recording.2025-11-07.at.1.34.34.AM.mov@dmkt9 can you please retest after merging main? |
trjExpensify
left a comment
There was a problem hiding this comment.
Looks fine to my eye, but @Expensify/design might want to take a look.
|
Videos in original post look good to me too 👍 Though if it's not working here then we should have a look |
@situchan I tested it after merging main, and it works well on my end.
Sure, I’ll open a PR to fix it. Additionally, I’ve never used an iPhone before, so I’m wondering whether the Safari browser on iPhone can be upgraded to version 26, since I see that my Mac can upgrade Safari to version 26. And I think using the condition |
Go ahead and create PR |
|
This PR is ready for review. |
|
Yeah the after looks way better 👍 |
|
✋ 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/srikarparsi in version: 9.2.59-0 🚀
|
|
🚀 Deployed to production by https://github.com/grgia in version: 9.2.59-5 🚀
|





Explanation of Change
Fixed Issues
$ #73240
PROPOSAL: #73240 (comment)
Tests
Same as QA Steps
Offline tests
Same as QA Steps
QA Steps
Precondition: user signed in with account A on main testing iOS 26 device and account B on secondary
Open staging.new.expensify.com
Navigate to chat with account B
Tap on the composer to open the virtual keyboard
Start typing on the secondary device where account B is logged in
Look at the typing indicator text below the composer.
Paste the following text into the composer to trigger the error message:
[] Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean ma (creating task message with more than 100 characters)
Verify that the typing indicator and error messages should be fully visible and not overlapped by the site header when the composer is focused and virtual keyboard is open
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, 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.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
The issue does not occur.
Android: mWeb Chrome
android.chrome.mp4
iOS: Native
The issue does not occur.
iOS: mWeb Safari
iOS 26:
ios.safari.26.mp4
iOS 18:
ios.safari.mp4
MacOS: Chrome / Safari
mac.safari.mp4
MacOS: Desktop
mac.desktop.mp4