Skip to content

[Due for payment 2026-10-15] Migrate CardAuthenticationModal to @react-navigation modal screen #90477

Closed

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

CardAuthenticationModal handles 3D Secure (SCA) card authentication. It is web-only and its visibility is driven by an Onyx key rather than props, making it complex to migrate to @react-navigation.

Migration approach (Group 4 — Complex)

  • File: src/pages/settings/Subscription/CardAuthenticationModal/index.tsx
  • Used by: PaymentCard/index.tsx (no policyID) and WorkspaceOwnerChangeWrapperPage.tsx (with policyID)
  • Complexity:
    • Web-only: the native implementation returns null.
    • Visibility is driven by the VERIFY_3DS_SUBSCRIPTION Onyx key (not a prop).
    • Uses window.addEventListener('message') for the SCA 3D Secure iframe callback.
    • Different success actions depending on whether policyID is present.

Suggested migration approach

  1. Create a dedicated navigation page (e.g., CardAuthenticationPage) that reads VERIFY_3DS_SUBSCRIPTION from Onyx.
  2. When authenticationLink appears in Onyx, navigate to the new page automatically (can be done in a useEffect in the parent or a global listener).
  3. Pass policyID as a route param to handle the different success actions.
  4. Implement the window.addEventListener('message') 3DS callback within the new page.
  5. On web-narrow, the page should render as a modal screen; on native, the flow is a no-op.
  6. Test the full 3D Secure card authentication flow on web (both with and without policyID).

Reference

Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. self-assigned this
    on May 13, 2026
  2. melvin-bot commented on May 18, 2026

    @melvin-bot

    @jmusial Huh... This is 4 days overdue. Who can take care of this?

  3. sharabai commented on May 20, 2026

    @sharabai
    Contributor

    @mountiny could you assign me this one?

  4. melvin-bot commented on May 25, 2026

    @melvin-bot

    @parasharrajat Eep! 4 days overdue now. Issues have feelings too...

  5. parasharrajat commented on May 26, 2026

    @parasharrajat
    Member

    No update yet.

  6. 37 remaining items

  7. removed their assignment
    on Oct 8, 2026
  8. melvin-bot commented on Oct 14, 2026

    @melvin-bot

    @mountiny @sharabai

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.8-5 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

  9. changed the title [-]Migrate CardAuthenticationModal to @react-navigation modal screen[/-] [+][Due for payment 2026-10-15] Migrate CardAuthenticationModal to @react-navigation modal screen[/+] on Oct 15, 2026
  10. melvin-bot commented on Oct 15, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  11. melvin-bot commented on Oct 15, 2026

    @melvin-bot

    Skipping the payment summary for this issue since all the assignees are employees or vendors. If this is incorrect, please manually add the payment summary SO.

  12. mallenexpensify commented on Oct 17, 2026

    @mallenexpensify
    Contributor

    yowza, that PR is massive. I don't think anyone is due payment, cc @parasharrajat in case you are.

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