Coming from here
Problem
NavigationTabBar apart from original its original render target TopLevelTabBar, is used in multiple components to work around existing transitions/animations issues:
- SearchSidebar
- BaseSidebarScreen
- SearchPageNarrow
- InitialSettingsPage
- WorkspaceInitialPage
- WorkspacesListPage
Those components are some of the most commonly used in the app, making NavigationTabBar be re-created at many user interactions and navigations.
Currently the cost of mounting NavigationTabBar on many interactions was measured to be:
- ~100ms iOS simulator
- ~20ms Web
Solution
Implement NavigationTabBarDummy which skips heavy parts and exposes only a UI component that resembles actual navigator. It can be done due to the fact that those doppelgangers are not responsible of handling logic and exist solely for fixing animations (source).
Potential cost of mounting NavigationTabBarDummy on many interactions was measured to be:
- ~25ms iOS simulator -> 25% of original duration
- ~5ms Web -> 25% of original duration
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~021929505961389572009
- Upwork Job ID: 1929505961389572009
- Last Price Increase: 2025-07-05
Issue Owner
Current Issue Owner: @bfitzexpensify
Coming from here
Problem
NavigationTabBarapart from original its original render targetTopLevelTabBar, is used in multiple components to work around existing transitions/animations issues:Those components are some of the most commonly used in the app, making
NavigationTabBarbe re-created at many user interactions and navigations.Currently the cost of mounting
NavigationTabBaron many interactions was measured to be:Solution
Implement
NavigationTabBarDummywhich skips heavy parts and exposes only a UI component that resembles actual navigator. It can be done due to the fact that those doppelgangers are not responsible of handling logic and exist solely for fixing animations (source).Potential cost of mounting
NavigationTabBarDummyon many interactions was measured to be:Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @bfitzexpensify