Apply payment method normalization consistently across user-facing views
Audited every place Payment.method reaches the UI. The main user dashboard's per-registration payment list (fed by GET /api/payments/registration/:id) was still showing the raw gateway string, since that endpoint is shared with the staff-facing supervisor payments page and wasn't touched by the earlier /mypayments fix. Extracted the cash/card/eft/voucher/other normalization (matching normalizeUserMethod on the backend) into frontend/src/lib/paymentMethod.ts and applied it to both user-facing payment displays. Staff-facing views (supervisor payments, at-the-door, reports, cashup) intentionally keep showing the raw method for reconciliation and were left unchanged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import { useAuth } from "@/hooks/useAuth";
|
||||
import { apiFetch } from "@/lib/api";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { formatDate } from "@/lib/date";
|
||||
import { formatPaymentMethod } from "@/lib/paymentMethod";
|
||||
import { QrImage } from "@/components/shared/QrImage";
|
||||
|
||||
// Helper formatters
|
||||
@@ -1008,7 +1009,7 @@ export default function UserDashboardPage() {
|
||||
<div className="font-medium mb-1">Payments</div>
|
||||
<ul className="text-sm list-disc pl-5 space-y-1">
|
||||
{activeBill.payments.map((p: any) => (
|
||||
<li key={p.id}>{new Date(p.createdAt).toLocaleString()} — {formatRand(p.amount)} ({p.method || "Payment"})</li>
|
||||
<li key={p.id}>{new Date(p.createdAt).toLocaleString()} — {formatRand(p.amount)} ({formatPaymentMethod(p.method)})</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user