diff --git a/src/pages/admin/AdminValidations.js b/src/pages/admin/AdminValidations.js index c26a5fd..96b62c9 100644 --- a/src/pages/admin/AdminValidations.js +++ b/src/pages/admin/AdminValidations.js @@ -29,11 +29,12 @@ import { PaginationEllipsis, } from '../../components/ui/pagination'; import { toast } from 'sonner'; -import { CheckCircle, Clock, Search, ArrowUp, ArrowDown, X } from 'lucide-react'; +import { CheckCircle, Clock, Search, ArrowUp, ArrowDown, X, XCircle } from 'lucide-react'; import PaymentActivationDialog from '../../components/PaymentActivationDialog'; import ConfirmationDialog from '../../components/ConfirmationDialog'; import RejectionDialog from '../../components/RejectionDialog'; import StatusBadge from '@/components/StatusBadge'; +import { StatCard } from '@/components/StatCard'; const AdminValidations = () => { const { hasPermission } = useAuth(); @@ -235,7 +236,7 @@ const AdminValidations = () => { } }; - + const handleSort = (column) => { if (sortBy === column) { @@ -272,45 +273,62 @@ const AdminValidations = () => {

+ {/* Stats Card */} - -
-
-

Total Pending

-

- {pendingUsers.length} -

-
-
-

Awaiting Email

-

- {pendingUsers.filter(u => u.status === 'pending_email').length} -

-
-
-

Pending Validation

-

- {pendingUsers.filter(u => u.status === 'pending_validation').length} -

-
-
-

Pre-Validated

-

- {pendingUsers.filter(u => u.status === 'pre_validated').length} -

-
-
-

Payment Pending

-

- {pendingUsers.filter(u => u.status === 'payment_pending').length} -

-
-
-

Rejected

-

- {pendingUsers.filter(u => u.status === 'rejected').length} -

-
+ +
+ Quick Overview +
+
+ + + u.status === 'pending_email').length} + icon={CheckCircle} + iconBgClass="text-brand-purple" + dataTestId="stat-total-users" + /> + + u.status === 'pending_validation').length} + icon={CheckCircle} + iconBgClass="text-brand-purple" + dataTestId="stat-pending-validation" + /> + + u.status === 'pre_validated').length} + icon={CheckCircle} + iconBgClass="text-brand-purple" + dataTestId="stat-pre-validated" + /> + + u.status === 'payment_pending').length} + icon={CheckCircle} + iconBgClass="text-brand-purple" + dataTestId="stat-payment-pending" + /> + + u.status === 'rejected').length} + icon={XCircle} + iconBgClass="text-red-600" + dataTestId="stat-rejected" + /> + +