App icon indicating copy to clipboard operation
App copied to clipboard

[HOLD for payment 2024-07-10] [$250] Simplify the RootNavigator structure

Open mountiny opened this issue 9 months ago • 22 comments

Follow up to the ideal navigation project, we have one task to simplify the structure now.

Problem

The problem is the same as described in this issue but for the RootNavigator. Currently, central pane screens in RootNavigator are wrapped with the central pane navigator. This may be problematic for two reasons:

  • Getting information about the actual screen requires more code. It has become visible especially after we migrated to typescript, instead of just getting the route name we have to extract the route from the state or params of the parent navigator.
  • More nested navigators mean worse performance.

Solution

In the early implementation of navigation, we used the custom component ThreePaneView. That was the main reason to encapsulate screens with central pane navigators. Now we use StackView for both narrow and wide layouts and the wide layout is achieved using styles.

This allows us to flatten the navigation structure. Now screens from CentralPaneNavigator will be mounted directly in the RootNavigator

This way developing and maintaining navigation should be easier and we should get a slight performance boost. cc @adamgrzybowski @WojtekBoman

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~01e857cb7b9e57642a
  • Upwork Job ID: 1793573481726357504
  • Last Price Increase: 2024-05-23
  • Automatic offers:
    • hoangzinh | Reviewer | 102432432
Issue OwnerCurrent Issue Owner: @JmillsExpensify

mountiny avatar May 23 '24 09:05 mountiny