Skip to content

[Due for payment 2026-07-17] Migrate FeatureTrainingModal to @react-navigation modal screen #90475

Description

@mountiny

Context

This is a sub-issue of #53493 (Replace modal screens with modals from @react-navigation).

For full background and migration approach, see the triage analysis comment and the sub-issue breakdown comment.

Problem

FeatureTrainingModal is a generic educational overlay used in 12+ render sites across 11+ files with non-serializable configuration (children, video/SVG/Lottie content, custom callbacks), making it complex to migrate to @react-navigation.

Migration approach (Group 4 — Complex, consider deferring inline usages)

  • File: src/components/FeatureTrainingModal.tsx (534 lines)
  • Used by: 11+ files, 12+ render sites. 3 are already navigation pages via FeatureTrainingModalNavigator; the rest are CENTERED overlays.
  • Complexity: Generic educational overlay with video/SVG/Lottie, "don't show again" preference, help/skip buttons, and custom children. Inline usages (HoldOrReject, HoldSubmitter, multi-scan popup) are contextual overlays that would change UX if moved to a navigation route.

Suggested migration approach

  1. Evaluate whether the CENTERED inline usages genuinely need navigation migration or can remain as-is (they are not currently causing animation bugs).
  2. Focus on the usages that animate in from right-to-left (screen-like) and are causing animation inconsistencies.
  3. For those usages, create dedicated @react-navigation modal routes and pass any required configuration via Onyx rather than props.
  4. Keep the CENTERED overlay usages as-is where the UX change is not justified.

Reference

Issue OwnerCurrent Issue Owner: @parasharrajat

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2Task

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions