Problem
On wide layout, tapping the Inbox tab navigates to the last opened report via URL-based navigation that rebuilds the nested report route. React remounts the central ReportScreen and its heavy report actions list in the same commit as the LHN, so the ManualNavigateToInboxTab span ends when the LHN lays out but that layout cannot paint until the report list commit finishes.
Solution
Follow the cached navigation architecture used by Search and Spend tabs: when a valid Reports tab state exists, focus it with a targeted TabActions.jumpTo (preserving the mounted ReportScreen), defer ReportActions behind NavigationDeferredMount on first warm Inbox mount, and use react-freeze to preserve hydrated state on subsequent Home→Inbox navigations. Cold navigation, deleted reports, and uninitialized navigators keep the existing URL-based fallback.
PR
#96374
Issue Owner
Current Issue Owner: @mallenexpensify
Problem
On wide layout, tapping the Inbox tab navigates to the last opened report via URL-based navigation that rebuilds the nested report route. React remounts the central
ReportScreenand its heavy report actions list in the same commit as the LHN, so theManualNavigateToInboxTabspan ends when the LHN lays out but that layout cannot paint until the report list commit finishes.Solution
Follow the cached navigation architecture used by Search and Spend tabs: when a valid Reports tab state exists, focus it with a targeted
TabActions.jumpTo(preserving the mountedReportScreen), deferReportActionsbehindNavigationDeferredMounton first warm Inbox mount, and usereact-freezeto preserve hydrated state on subsequent Home→Inbox navigations. Cold navigation, deleted reports, and uninitialized navigators keep the existing URL-based fallback.PR
#96374
Issue Owner
Current Issue Owner: @mallenexpensify