Files
igny8/docs/30-FRONTEND/PAGE-AUDIT.md
2026-01-20 12:49:01 +00:00

101 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Frontend Page Audit (In Progress)
**Last Updated:** January 20, 2026
**Goal:** Verify each pages functions, API usage, and flow consistency.
---
## Audit Scope (Current Batch)
- Auth pages: Sign In, Sign Up, Forgot Password, Reset Password, Verify Email, Unsubscribe
- Payment page
---
## Auth Pages
### Sign In
- **Route:** `/signin`
- **File:** `frontend/src/pages/AuthPages/SignIn.tsx`
- **Components:** `PageMeta`, `AuthLayout`, `SignInForm`
- **API usage:** none in page (handled by `SignInForm`)
- **Notes:** Page is a wrapper; all auth logic is inside `SignInForm`.
### Sign Up
- **Route:** `/signup`
- **File:** `frontend/src/pages/AuthPages/SignUp.tsx`
- **Components:** `PageMeta`, `SignUpFormUnified`, `GridShape`
- **API usage:** `GET /v1/auth/plans/` (public) for plan list
- **Behavior:**
- Reads `plan` query param to preselect plan
- Defaults to first active plan if no match
- Sorts plans by price ascending
- **Notes:**
- Geo detection removed; country selected in form
- Payment selection deferred to `/account/plans`
### Forgot Password
- **Route:** `/forgot-password`
- **File:** `frontend/src/pages/AuthPages/ForgotPassword.tsx`
- **Components:** `PageMeta`, icons, local form
- **API usage:** `POST /v1/auth/password-reset/` with `{ email }`
- **Behavior:**
- Always shows success state to prevent email enumeration
### Reset Password
- **Route:** `/reset-password?token=...`
- **File:** `frontend/src/pages/AuthPages/ResetPassword.tsx`
- **Components:** `PageMeta`, icons, form
- **API usage:** `POST /v1/auth/password-reset/confirm/` with `{ token, new_password, new_password_confirm }`
- **Behavior:**
- If no `token`, redirects to `/forgot-password`
- Validates password strength client-side
- Handles expired/invalid token states
### Verify Email
- **Route:** `/verify-email?token=...`
- **File:** `frontend/src/pages/AuthPages/VerifyEmail.tsx`
- **Components:** `PageMeta`, icons
- **API usage:** `POST /v1/auth/users/verify_email/` with `{ token }`
- **Behavior:**
- Requires query param `token`
- Handles expired/invalid token state
### Unsubscribe
- **Route:** `/unsubscribe`
- **File:** `frontend/src/pages/AuthPages/Unsubscribe.tsx`
- **Components:** `PageMeta`, icons
- **Behavior:**
- Displays guidance and redirects to `/account/settings?tab=notifications` after 5 seconds
- Notes that transactional emails are not unsubscribable
- **Potential issue:** redirect requires auth; unauthenticated users will be sent to sign-in flow.
---
## Payment Page
### Payment
- **Route:** `/payment`
- **File:** `frontend/src/pages/Payment.tsx`
- **Components:** `InputField`, `TextArea`, `Button`
- **Store usage:** `useAuthStore` for user/account plan
- **Behavior:**
- Reads `plan` from query string or current account plan
- Generates mailto for offline payment confirmation
- Redirects to `/pricing` if plan or user missing
- **Potential issue:** `/pricing` is not defined in `App.tsx` routes (may exist in marketing app).
---
## Next Audit Batch
- Dashboard and core workflow pages
- Sites pages (dashboard, settings, sync, deployment)
- Planner and Writer pages