Skip to content

Spend-Search input is hidden in landscape mode. #105228

Open

Description

@applause-bot

If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.


Version Number: V9.5.24-2
Reproducible in staging?: Yes
Reproducible in production?: N/A - new feature, doesn't exist in prod
If this was caught during regression testing, add the test name, ID and link from BrowserStack: #104668
Email or phone of affected tester (no customers): [email protected]
Issue reported by: Applause Internal Team
Bug source: Exploratory - Significant User Experience Deterioration
Device used: Redmi note 10s android 13
App Component: User Settings

Action Performed:

  1. Launch app
  2. Go to spend - expenses
  3. Turn landscape
  4. Try to focus on input field

Expected Result:

Search input must not be hidden in landscape mode.

Actual Result:

Search input is hidden in landscape mode.

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome Safari

Screenshots/Videos

Bug7298385_1793142086013.Screenrecorder-2026-10-28-04-27-04-699.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Rizky Gunawan
Bug ID: 7298385

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 28, 2026
  2. applause-bot commented on Oct 28, 2026

    @applause-bot
    Author

    While Applause doesn't embed attachments for this bug, here are the links for quick view:
    https://platform.applause.com/services/links/v1/external/f3d7fabdbf9faf4f3c4e74e0c811b558131afe909a49f8a07d440128949bccce

  3. melvin-bot commented on Oct 28, 2026

    @melvin-bot

    You have been assigned to this deploy blocker because you recently merged this PR: #104668

  4. melvin-bot commented on Oct 28, 2026

    @melvin-bot

    @JS00001 @daledah you have been assigned to this deploy blocker because you reviewed the offending PR: #104668

  5. melvin-bot commented on Oct 28, 2026

    @melvin-bot

    @Krishna2323 you have been assigned to this deploy blocker because you authored the offending PR: #104668

  6. melvin-bot commented on Oct 28, 2026

    @melvin-bot

    💬 A slack conversation has been started in #expensify-open-source

  7. github-actions commented on Oct 28, 2026

    @github-actions
    Contributor

    👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

    1. Identify the pull request that introduced this issue and revert it.
    2. Find someone who can quickly fix the issue.
    3. Fix the issue yourself.
  8. MelvinBot commented on Oct 28, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Analysis

    Causing PR (high confidence): Reorganize the Search Filters page into clearer sections and add a filter search (Expensify/App#104668). The current assignees (Krishna2323, daledah, JS00001) match that PR.

    Root cause: The PR added a search input to the Filters page but placed it above the ScrollView, not inside it. On Android in landscape, the keyboard opens when the input gets focus. That leaves too little height between the fixed header and the fixed Reset / Apply filters footer, so the input is clipped and can't be scrolled back into view.

    Recommendation: fix forward. Reverting would undo a 24-file reorganization for a landscape-only Android edge case on a feature that isn't in production yet. If a fix can't merge before the deploy, revert #104668.

    Investigation details

    Which input is hidden. This is the new "Search filters" input on Spend > Expenses > Filters, not the main Spend search bar. Applause tested PR #104668 and marked the bug as "new feature, doesn't exist in prod". A sibling report from the same pass, [$175] Android - Spend - Search field is not full width in landscape mode, describes the same input. In landscape, tapping Filters opens the full-screen Filters page instead of the popover.

    Mechanism:

    • FilterList.tsx:152-170: CompactSearchBar (line 153) sits above the ScrollView (line 170) inside a flex1 view.
    • SearchAdvancedFiltersBase.tsx:53-122: inside a keyboard-avoiding ScreenWrapper, the header and the button footer have fixed heights. Only FilterList shrinks.
    • Rough landscape numbers for this device: about 365dp usable height, minus about 200–230dp of keyboard, minus 144dp of header and footer. That leaves about 0–20dp, but the input needs about 58dp.
    • Before this PR, the page had no text input, so the keyboard never opened there.

    Other PRs ruled out. I checked the other App PRs in the 9.5.24-2 checklist. Only [No QA] Disallow manual memoization in compiled React code touches keyboard or header components, and it only removes useMemo. It doesn't change behavior.

    Possible fixes:

    • Hide the Reset / Apply filters footer while the keyboard is shown in landscape. The isKeyboardShown pattern is already used elsewhere in src/pages.
    • Or move the input into the scrolling area so it can't be clipped.

    The open PR Make the Search filters input full width in landscape on mobile fixes only the width issue in #105197. It doesn't fix this bug, so add the fix there or in a follow-up.

    Limits. I couldn't watch the Applause video or test on Android, so this conclusion comes from code analysis.


    view run

  9. JS00001 commented on Oct 28, 2026

    @JS00001
    Contributor

    @Krishna2323 lets fix this but not block on it

  10. added and removed
    DeployBlockerCashThis issue or pull request should block deployment
    on Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

BugSomething is broken. Auto assigns a BugZero manager.DailyKSv2Engineering

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions