diff --git a/frontend/src/app/dashboard/admin/cashup/[id]/page.tsx b/frontend/src/app/dashboard/admin/cashup/[id]/page.tsx index e190b34..d209442 100644 --- a/frontend/src/app/dashboard/admin/cashup/[id]/page.tsx +++ b/frontend/src/app/dashboard/admin/cashup/[id]/page.tsx @@ -6,7 +6,7 @@ import { useAuth } from "@/hooks/useAuth"; import { apiFetch } from "@/lib/api"; import { useDismissingState } from "@/hooks/useDismissingState"; import type { EventCost, EventCostType, EventFinancials, CashupMethod } from "@/types"; -import { Wallet } from "lucide-react"; +import { Wallet, DollarSign, ClipboardCheck, FileBarChart } from "lucide-react"; const METHOD_LABELS: Record = { cash: "Cash", card: "Card", eft: "EFT", other: "Other" }; const METHODS: CashupMethod[] = ["cash", "card", "eft", "other"]; @@ -76,9 +76,9 @@ export default function EventCashupPage() { {error &&
{error}
}
- - - + + +
{loading &&
Loading…
} diff --git a/frontend/src/app/dashboard/admin/page.tsx b/frontend/src/app/dashboard/admin/page.tsx index 244fde6..c90cd1c 100644 --- a/frontend/src/app/dashboard/admin/page.tsx +++ b/frontend/src/app/dashboard/admin/page.tsx @@ -102,7 +102,7 @@ export default function AdminDashboardPage() { : 0; return ( -
+

Welcome back{user ? `, ${user.name}` : ""} πŸ‘‹

Here's what's happening with your events today.

@@ -132,7 +132,7 @@ export default function AdminDashboardPage() {
-
+

Revenue trend β€” past month

{overview && overview.trend.length > 0 ? ( @@ -157,7 +157,7 @@ export default function AdminDashboardPage() { {overview.topEvents.map(e => ( - {e.title} + {e.title} {formatCount(e.registrations)} {formatRand(e.revenue)} {formatCount(e.ticketsSold)} @@ -171,7 +171,7 @@ export default function AdminDashboardPage() {
-
+

Payments overview

diff --git a/frontend/src/app/dashboard/supervisor/at-the-door/page.tsx b/frontend/src/app/dashboard/supervisor/at-the-door/page.tsx index ec72617..5a19927 100644 --- a/frontend/src/app/dashboard/supervisor/at-the-door/page.tsx +++ b/frontend/src/app/dashboard/supervisor/at-the-door/page.tsx @@ -6,7 +6,7 @@ import { useRouter } from "next/navigation"; import { apiFetch } from "@/lib/api"; import { scoreUser } from "@/lib/fuzzyMatch"; import { useDismissingState } from "@/hooks/useDismissingState"; -import { DoorOpen } from "lucide-react"; +import { DoorOpen, UserPlus, CreditCard, CheckSquare, Ticket, RotateCcw, type LucideIcon } from "lucide-react"; type Mode = "registration" | "payment" | "checkin" | "tickets" | "refund"; @@ -18,6 +18,14 @@ const MODE_LABELS: Record = { refund: "REFUND", }; +const MODE_ICONS: Record = { + registration: UserPlus, + payment: CreditCard, + checkin: CheckSquare, + tickets: Ticket, + refund: RotateCcw, +}; + // ─── Fuzzy search helpers ───────────────────────────────────────────────────── function fuzzyFilterRegs(allRegs: any[], search: string): any[] { @@ -390,21 +398,25 @@ export default function AtTheDoorPage() { {/* Mode Buttons */}
- {(["registration", "payment", "checkin", "tickets", "refund"] as Mode[]).map(m => ( - - ))} + {(["registration", "payment", "checkin", "tickets", "refund"] as Mode[]).map(m => { + const Icon = MODE_ICONS[m]; + return ( + + ); + })}
{/* βœ… Panels */} diff --git a/frontend/src/app/dashboard/supervisor/email-attendees/page.tsx b/frontend/src/app/dashboard/supervisor/email-attendees/page.tsx index 4b3469b..92ab5de 100644 --- a/frontend/src/app/dashboard/supervisor/email-attendees/page.tsx +++ b/frontend/src/app/dashboard/supervisor/email-attendees/page.tsx @@ -5,7 +5,7 @@ import { useAuth } from "@/hooks/useAuth"; import { useRouter, useSearchParams } from "next/navigation"; import { apiFetch, fetchAllUsers } from "@/lib/api"; import { useDismissingState } from "@/hooks/useDismissingState"; -import { Mail } from "lucide-react"; +import { Mail, Users, Zap, Clock } from "lucide-react"; type Attendee = { id: string; name: string; email: string; pref: string }; @@ -503,20 +503,24 @@ function EmailAttendeesPageInner() { {/* Tabs like on Payments page */}
-
diff --git a/frontend/src/app/dashboard/supervisor/manual/page.tsx b/frontend/src/app/dashboard/supervisor/manual/page.tsx index 88481c2..5807899 100644 --- a/frontend/src/app/dashboard/supervisor/manual/page.tsx +++ b/frontend/src/app/dashboard/supervisor/manual/page.tsx @@ -6,7 +6,7 @@ import { useRouter } from "next/navigation"; import { apiFetch, fetchAllUsers } from "@/lib/api"; import { scoreUser } from "@/lib/fuzzyMatch"; import { useDismissingState } from "@/hooks/useDismissingState"; -import { UserPlus } from "lucide-react"; +import { UserPlus, CreditCard } from "lucide-react"; // ─── Pricing helpers ───────────────────────────────────────────────────────── @@ -355,12 +355,14 @@ export default function ManualRegistrationPage() { )}
-
diff --git a/frontend/src/app/dashboard/supervisor/page.tsx b/frontend/src/app/dashboard/supervisor/page.tsx index a62818b..18a63a2 100644 --- a/frontend/src/app/dashboard/supervisor/page.tsx +++ b/frontend/src/app/dashboard/supervisor/page.tsx @@ -101,7 +101,7 @@ export default function SupervisorDashboardPage() { }, 15000, !!token); return ( -
+

Welcome back{user ? `, ${user.name}` : ""} πŸ‘‹

Here's what's happening with your events today.

@@ -131,7 +131,7 @@ export default function SupervisorDashboardPage() {
-
+

Revenue trend β€” past month

{overview && overview.trend.length > 0 ? ( @@ -156,7 +156,7 @@ export default function SupervisorDashboardPage() { {overview.topEvents.map(e => ( - {e.title} + {e.title} {formatCount(e.registrations)} {formatRand(e.revenue)} {formatCount(e.ticketsSold)} @@ -190,7 +190,7 @@ export default function SupervisorDashboardPage() {
-
+

Scanner activity

diff --git a/frontend/src/app/dashboard/supervisor/payments/page.tsx b/frontend/src/app/dashboard/supervisor/payments/page.tsx index b283dd8..a9261dc 100644 --- a/frontend/src/app/dashboard/supervisor/payments/page.tsx +++ b/frontend/src/app/dashboard/supervisor/payments/page.tsx @@ -6,7 +6,7 @@ import { useRouter, useSearchParams } from "next/navigation"; import { apiFetch, fetchAllUsers, fetchAllPayments } from "@/lib/api"; import { useDismissingState } from "@/hooks/useDismissingState"; import { scoreUser } from "@/lib/fuzzyMatch"; -import { Wallet } from "lucide-react"; +import { Wallet, RotateCcw, HandHeart, ScanLine, Link2 } from "lucide-react"; // A donation is never mutated once created β€” assigning it to a registration creates a separate // "leg" Payment row (isDonation:false, originalPaymentId -> the donation, amount > 0) instead. @@ -566,24 +566,29 @@ function PaymentsContent() { {info &&
{info}
}
-
diff --git a/frontend/src/app/dashboard/supervisor/whatsapp-attendees/page.tsx b/frontend/src/app/dashboard/supervisor/whatsapp-attendees/page.tsx index 9a01e5e..ec27017 100644 --- a/frontend/src/app/dashboard/supervisor/whatsapp-attendees/page.tsx +++ b/frontend/src/app/dashboard/supervisor/whatsapp-attendees/page.tsx @@ -5,12 +5,19 @@ import { useAuth } from "@/hooks/useAuth"; import { useRouter, useSearchParams } from "next/navigation"; import { apiFetch, fetchAllUsers } from "@/lib/api"; import { useDismissingState } from "@/hooks/useDismissingState"; -import { MessageCircle } from "lucide-react"; +import { MessageCircle, Users, Zap, Send, Clock, type LucideIcon } from "lucide-react"; // Attendee with preference info type Attendee = { id: string; name: string; phone: string; pref: string }; type UserEntry = { id: string; name: string; phone: string; pref: string }; +const WA_TAB_ICONS: Record<"attendees" | "automations" | "broadcasts" | "scheduled", LucideIcon> = { + attendees: Users, + automations: Zap, + broadcasts: Send, + scheduled: Clock, +}; + function toLocalInputValue(d: Date) { const pad = (n: number) => String(n).padStart(2, "0"); return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}`; @@ -612,12 +619,16 @@ function WhatsAppAttendeesPageInner() { {/* Tabs */}
- {(["attendees", "automations", "broadcasts", "scheduled"] as const).map((t) => ( - - ))} + {(["attendees", "automations", "broadcasts", "scheduled"] as const).map((t) => { + const Icon = WA_TAB_ICONS[t]; + return ( + + ); + })}
{/* ── Attendees Tab ── */} diff --git a/frontend/src/components/layout/Navbar.tsx b/frontend/src/components/layout/Navbar.tsx index 91e47a3..8e6fae4 100644 --- a/frontend/src/components/layout/Navbar.tsx +++ b/frontend/src/components/layout/Navbar.tsx @@ -108,7 +108,7 @@ export const Navbar = () => { diff --git a/frontend/src/components/shared/StatCard.tsx b/frontend/src/components/shared/StatCard.tsx index f9e72fe..40a9c01 100644 --- a/frontend/src/components/shared/StatCard.tsx +++ b/frontend/src/components/shared/StatCard.tsx @@ -39,7 +39,7 @@ export function StatCard({
-
{label}
+
{label}
{value}
@@ -67,5 +67,5 @@ export function StatCard({ } export function StatCardRow({ children }: { children: React.ReactNode }) { - return
{children}
; + return
{children}
; }