You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-04-23] Reports - No unreported expenses page doesn't fit on landscape and doesn't scroll #87331
Version Number: 9.3.54-0 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:#85229 and https://test-management.browserstack.com/projects/2219752/folder/13176730/test-cases/41237114 Email or phone of affected tester (no customers):gatantm+6320@gmail.com Issue reported by: Applause Internal Team Bug source: Regression TC Execution Device used: iPhone 12.mini, iOS 16.7 App Component: Money Requests
Action Performed:
Launch the app and login with any account being on landscape mode
Tap on FAB and tap Create report
Tap on Add expenses
Select Add unreported expenses (if there are unreported expenses add all and repeat this step)
Expected Result:
The page fits the screen without overlap
Actual Result:
The page doesn't fit the screen with the CTA been overlapped by the home bar but there's no scrolling on it
👋 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:
Identify the pull request that introduced this issue and revert it.
The empty state ScreenWrapper in AddUnreportedExpense.tsx:276-281 is missing two props that the non-empty state ScreenWrapper (line 319-328) already has: shouldEnableMaxHeight and enableEdgeToEdgeBottomSafeAreaPadding. Without shouldEnableMaxHeight, the wrapper doesn't constrain to the viewport height. EmptyStateComponent then renders with a minHeight: 400 and flexShrink: 0 (EmptyStateComponent/index.tsx:43), so in landscape (~350px height) the content overflows below the screen with no scroll, and the CTA lands behind the home bar.
What changes do you think we should make in order to solve the problem?
In src/pages/AddUnreportedExpense.tsx:
Add shouldEnableMaxHeight and enableEdgeToEdgeBottomSafeAreaPadding to the empty-state ScreenWrapper (line 276) to match the non-empty-state wrapper.
Wrap EmptyStateComponent in a ScrollView so the content scrolls when it exceeds viewport height in landscape — this matches the established pattern used in EmptySearchView.tsx:436-452.
What alternative solutions did you explore? (Optional)
Reducing minHeight on EmptyStateComponent was considered but rejected — it would affect all consumers and could break other screens. The ScrollView wrapper is the standard pattern already used elsewhere in the codebase.
Next Steps for Contributor+ team: Reply with @MelvinBot implement this to create a draft PR, @MelvinBot <your feedback> to refine this analysis, or explain why you are rejecting Melvin's proposal.
Activity
melvin-bot commentedon Apr 8, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #85229
melvin-bot commentedon Apr 8, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Apr 8, 2026
👋 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:
MelvinBot commentedon Apr 8, 2026
Proposal
What is the root cause of that problem?
The empty state
ScreenWrapperinAddUnreportedExpense.tsx:276-281is missing two props that the non-empty stateScreenWrapper(line 319-328) already has:shouldEnableMaxHeightandenableEdgeToEdgeBottomSafeAreaPadding. WithoutshouldEnableMaxHeight, the wrapper doesn't constrain to the viewport height.EmptyStateComponentthen renders with aminHeight: 400andflexShrink: 0(EmptyStateComponent/index.tsx:43), so in landscape (~350px height) the content overflows below the screen with no scroll, and the CTA lands behind the home bar.What changes do you think we should make in order to solve the problem?
In
src/pages/AddUnreportedExpense.tsx:shouldEnableMaxHeightandenableEdgeToEdgeBottomSafeAreaPaddingto the empty-stateScreenWrapper(line 276) to match the non-empty-state wrapper.EmptyStateComponentin aScrollViewso the content scrolls when it exceeds viewport height in landscape — this matches the established pattern used inEmptySearchView.tsx:436-452.What alternative solutions did you explore? (Optional)
Reducing
minHeightonEmptyStateComponentwas considered but rejected — it would affect all consumers and could break other screens. TheScrollViewwrapper is the standard pattern already used elsewhere in the codebase.Next Steps for Contributor+ team: Reply with
@MelvinBot implement thisto create a draft PR,@MelvinBot <your feedback>to refine this analysis, or explain why you are rejecting Melvin's proposal.31 remaining items
melvin-bot commentedon Apr 23, 2026
Payment Summary
Upwork Job
BugZero Checklist (@mallenexpensify)
mallenexpensify commentedon Apr 23, 2026
@truph01 doesn't look like you're due payment here, it appears to be a regression from
melvin-bot commentedon Apr 27, 2026
@mallenexpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
melvin-bot commentedon May 1, 2026
@mallenexpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
mallenexpensify commentedon May 5, 2026
Closing
truph01 commentedon May 5, 2026
@mallenexpensify Yes, we can close this and handle payment in the parent issue #77280