Fix: referral banner appears behind Android navigation bar in manual expense flow#94539
Conversation
…nner Co-authored-by: thelullabyy <thelullabyy@users.noreply.github.com>
|
@MelvinBot You are using the wrong PR description template. Please use this one https://raw.githubusercontent.com/Expensify/App/main/.github/PULL_REQUEST_TEMPLATE.md After that replace all Finally, open PR for review |
|
@codex review |
|
@thelullabyy Please 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] |
|
🤖 Done, @thelullabyy:
Note: the |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari
|
|
🚧 puneetlath has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/puneetlath in version: 9.4.21-2 🚀
|
|
Deploy Blocker #94744 was identified to be related to this PR. |


Explanation of Change
On the participant selector (the page that opens when tapping To in the manual expense flow), the referral banner rendered behind the Android navigation bar instead of above it.
The banner is rendered as the
footerContentof the participant list inParticipantSearchResults.tsx. ThatSelectionListWithSectionswas rendered without theaddBottomSafeAreaPaddingprop. The footer is wrapped in aFixedFooterviaSelectionList/components/Footer.tsx, andFixedFooteronly adds the bottom inset whenaddBottomSafeAreaPaddingistrue. Since the prop defaulted tofalse, under Android edge-to-edge the banner sat underneath the 3-button navigation bar.The sibling screen that uses the same
ReferralProgramCTAbanner —NewChatPage/index.tsx— renders correctly because it already passesaddBottomSafeAreaPadding.This change passes
addBottomSafeAreaPaddingto theSelectionListWithSections, matchingNewChatPage, so the inset routes down to theFixedFooterwrapping the referral banner and it clears the Android navigation bar.The offending PR (#94134) — which made the new manual expense flow the default and exposed this pre-existing padding gap — was already reverted by #94312. This PR fixes the underlying bug so the new manual expense flow renders correctly when re-enabled.
Fixed Issues
$ #94260
PROPOSAL: #94260 (comment)
Tests
Offline tests
N/A — layout-only change.
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)Avatar, 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
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari