fix: keep Search Router results above offline indicator - #97211
fix: keep Search Router results above offline indicator#97211nabi-ebrahimi wants to merge 22 commits into
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@marufsharifi 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] |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen_Recording_20260728_200323_Expensify.Dev.mp4Android: mWeb ChromeiOS: HybridAppScreen.Recording.2026-07-28.at.8.27.06.PM.moviOS: mWeb Safari |
|
@nabi-ebrahimi woudl your fix also take care of this blocker? #97248 |
|
@nabi-ebrahimi, could you please check this. thanks. RF-1.mp4 |
This comment was marked as outdated.
This comment was marked as outdated.
|
@nabi-ebrahimi, could you please check lint? thanks. |
Still testing, thanks |
|
@marufsharifi and @carlosmiceli please check this comment, thanks. |
Gotcha, but even if the original PR didn't break this, we should revert if it surfaced it. Do you think this PR will cover all the blockers linked to it? If it's going to take another hour or so, we should just revert the original and we can try again tomorrow. |
|
@carlosmiceli the only blocker directly related to our changes is the clipped Spend context at large font sizes. I addressed it separately in #97281, which is ready for review. The other reported issues were reproducible on |
|
@nabi-ebrahimi oh, gotcha! That's great, reviewing now. |
|
@nabi-ebrahimi merged and asked to CP #97281 Let's get this one ready to review next 💪 |
|
@marufsharifi can you please review the PR, thanks. |
|
@nabi-ebrahimi, could you please take a look at the above comments. thanks. |
All done from my side, thanks for the review! |
|
Working on the comments |
|
@marufsharifi thanks for the review, all done. |
|
@marufsharifi will you review this today? |
|
I am reviewing. thanks. |
|
@MelvinBot Review |
Review — looks correct, prior change requests appear resolved ✅I reviewed the current state of the diff and traced the layout math end-to-end. The substantive concerns from earlier review rounds are now addressed, and I verified the web-observable part on dev NewDot web. Verdict: The implementation is sound. The remaining items are minor/NAB. Prior review concerns — status in current code
Correctness check on the height formula
This does not double-subtract Shared-component blast radius
Non-blocking:
Web verification (dev NewDot)I drove the Search Router on web to confirm the shared
Note: this only exercises the web offline-padding path. The native Search Router offline: last row (type:trip) clears the offline indicatorSearch Router online: normal spacing, no offline notice |
|
@marufsharifi All done from my side, thanks for the review. |
|
@nabi-ebrahimi, could you please merge the main. thanks. |



Explanation of Change
On native devices, Search Router can open during the initial keyboard animation before its available height is settled. If results appear during this timing window, the list may use the full-screen height, place the offline indicator behind the keyboard, and incorrectly disable scrolling.
This change limits the native Search Router to the visible area above the keyboard. The limit updates during keyboard transitions and orientation changes and is removed when the keyboard closes.
Fixed Issues
$ #97182
PROPOSAL:
Tests
Cold-start offline scrolling
type:to the clipboard.type:into the search input.Expected: The results scroll immediately on the first attempt.
Offline tests
Same as Tests.
QA Steps
Same as Tests.
// TODO: These must be filled out, or the issue title must include "[No QA]."
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_20260728_191133_New.Expensify.Dev.mp4
Android: mWeb Chrome
iOS: Native
Screen.Recording.2026-07-28.at.7.02.04.PM.mov
iOS: mWeb Safari
MacOS: Chrome / Safari
Screen.Recording.2026-07-28.at.6.58.49.PM.mov