Skip to content

[Performance] Upgrade from the legacy DrawerNavigator to the modern one that uses Reanimated 2 #11426

@marcaaron

Description

@marcaaron

Problem

  • We are still using the legacy version of the Drawer Navigator which is not using Reanimated 2.

  • I discovered that the DrawerView is not correctly picking up that Reanimated 2 is configured so it falls back to the "legacy" version of the drawer. The new code we want here is in a newer version of the @react-navigation/drawer package.

  • Upgrading will give massive improvements on Android to navigating and will allow us to use the InteractionManager to properly defer some expensive things we are doing until after the drawer opens/closes

HOWEVER...

There are two major blockers for this upgrade.

  1. When the drawer performance is improved on Android it becomes so good that you see the previous chat before we display the new chat. Without the improvement today things just hang (for a few seconds) and we navigate to the new report. We will need to solve this somehow. Perhaps by showing the loader overlay as soon as a chat is tapped

  2. Something about this upgrade is breaking the behavior of the drawer on mobile web. It will not open or close or respond to DrawerActions at all. We cannot fallback to the useLegacyImplementation as we'll get this error:

Screen Shot 2022-09-29 at 7 00 50 AM

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


View all open jobs on GitHub

Metadata

Metadata

Assignees

Labels

DailyKSv2EngineeringInternalRequires API changes or must be handled by Expensify staff

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions