23 lines
1.0 KiB
Markdown
23 lines
1.0 KiB
Markdown
# Replicate Billing Dashboard Page
|
|
|
|
## Goal
|
|
|
|
Rebuild the existing `/web/app/dashboard/billing` page inside `/src/app/dashboard/billing` with equivalent UI and
|
|
behavior while adapting the implementation to the current `src` architecture.
|
|
|
|
## Requirements
|
|
|
|
- Preserve the billing page content, layout, plan cards, checkout interaction, and checkout-return cleanup behavior from
|
|
the `web` implementation.
|
|
- Do not copy the `web` structure verbatim when it conflicts with the `src` conventions.
|
|
- Reuse existing `src/api`, `src/store`, and utility wrappers whenever they cover the needed behavior.
|
|
- Keep route-local UI, hooks, styles, and types inside `src/app/dashboard/billing`.
|
|
- Keep async actions guarded by loading states and defensive error handling.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- `/dashboard/billing` exists under `src/app`.
|
|
- The page renders without TypeScript or build errors.
|
|
- Billing-related API calls use existing request helpers and stores where applicable.
|
|
- The checkout return cleanup mirrors the current behavior from `web`.
|