Skip to content

[Due for payment 2026-10-07] [CFI][FE 1/7] Payment history: add the "View payment history" RHP page and route #101828

Closed

Description

@melvin-bot

Sub-task of [CFI] Add a "View payment history" page with historical billing receipts and monthly user activity.

Goal

Clicking Account > Subscription > View payment history opens a new, empty View payment history page in the RHP instead of navigating to the Expenses (Spend) page.

Scope

  • New screen name, route, and navigator registration for the page.
  • Page shell only: ScreenWrapper + HeaderWithBackButton titled "View payment history", a loading skeleton, and an empty state. No purchase data yet — that lands in FE 2/7.
  • Repoint the entry point. The menu item currently calls viewPurchases() in src/pages/settings/Subscription/CardSection/CardSection.tsx, which builds a Search query (type:expense, merchant Expensify, Inc., all statuses) and navigates to the Expenses page. Route to the new page instead.
  • Gate the new destination on the payment-history beta. The backend push of the full purchase list is beta-gated (tracked in a separate internal issue), so until the whole feature has shipped the new page would be empty for everyone else. Read betas from Onyx, keep viewPurchases() on the non-beta path, and only delete it when the beta is removed.
  • Keep the existing hasPurchases condition that decides whether the menu item renders at all.
  • Add the page title copy to every src/languages/*.ts locale.

Files likely touched

Acceptance criteria

  • In beta: tapping View payment history opens the new RHP page; back returns to the Subscription page.
  • Not in beta: behaviour is unchanged (Expenses page filtered to the Expensify merchant).
  • Deep-linking the route directly opens the page — web and native, wide and narrow.
  • Loading and empty states render with no layout shift.

Depends on

Nothing — this can start now. The beta itself is defined in the backend work; if that hasn't merged yet, wire against the agreed beta name so the gate is ready.

Easy to get wrong

  • Deleting viewPurchases() outright in this PR — non-beta users would lose all access to their receipts.
  • Registering the route in only one place. The screen constant, the route, the linking config, the modal stack, and the navigation param list all need it, or TypeScript and deep links break.
Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. self-assigned this
    on Sep 25, 2026
  2. changed the title [-][CFI][FE 1/7] Payment history: add the "View payment history" RHP page and route[/-] [+][Due for payment 2026-10-07] [CFI][FE 1/7] Payment history: add the "View payment history" RHP page and route[/+] on Sep 30, 2026
  3. 6 remaining items

  4. melvin-bot commented on Oct 6, 2026

    @melvin-bot
    Author

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  5. melvin-bot commented on Oct 6, 2026

    @melvin-bot
    Author

    Payment Summary

    Resolving PRs:

    BugZero Checklist (@mallenexpensify)

    • I have confirmed assignees, roles, and Upwork contracts look correct
    • I have paid out Upwork contracts / manual NewDot requests
    • [BugZero Assignee] I have created a GH issue for creating/updating the regression test once above steps have been agreed upon
  6. mallenexpensify commented on Oct 8, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor+: @nkdengineer due $175 via NewDot

    @nkdengineer plz complete the Contributor+ checklist and tag me in a post once you have. Thx

  7. nkdengineer commented on Oct 9, 2026

    @nkdengineer
    Contributor

    Contributor+ Checklist:

    • [Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.

      Link to the comment on the PR: N/A (New feature)

    • [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.

      Link to discussion: N/A

    • [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

    Regression Test Proposal Template. Needed for all bugs AND new features

    Regression Test Proposal

    Precondition:

    Test:

    1. Click Account > Subscription > View payment history
    2. Verify that: the empty View payment history page in the RHP instead of navigating to the Expenses (Spend) page

    Do we agree 👍 or 👎

  8. nkdengineer commented on Oct 9, 2026

    @nkdengineer
    Contributor

    @mallenexpensify I completed the checklist.

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 productionDailyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions