5 Commits

Author SHA1 Message Date
kayela
01a3c38085 fix: button text now visable 2026-01-30 09:50:33 -06:00
kayela
7152382dca fix: member directory link works and stat card changes 2026-01-30 09:38:42 -06:00
kayela
529d3d4697 Merge branch 'theme-provider' into dev 2026-01-29 21:50:28 -06:00
kayela
4423576fa2 Merge branch 'theme-provider' into dev 2026-01-29 00:01:43 -06:00
a1c68eedc2 Merge pull request 'theme-provider' (#22) from theme-provider into dev
Reviewed-on: #22
2026-01-28 01:50:41 +00:00
3 changed files with 29 additions and 14 deletions

View File

@@ -128,7 +128,7 @@ const ChangePasswordDialog = ({ open, onOpenChange }) => {
<Button <Button
type="button" type="button"
onClick={() => onOpenChange(false)} onClick={() => onOpenChange(false)}
className="btn-outline mr-33" className="btn-outline mr-33 text-white"
> >
Cancel Cancel
</Button> </Button>

View File

@@ -34,7 +34,20 @@ import {
PaginationEllipsis, PaginationEllipsis,
} from '../../components/ui/pagination'; } from '../../components/ui/pagination';
import { toast } from 'sonner'; import { toast } from 'sonner';
import { CheckCircle, Clock, Search, ArrowUp, ArrowDown, X, FileText, XCircle } from 'lucide-react'; import {
CheckCircle,
Clock,
Search,
ArrowUp,
ArrowDown,
X,
FileText,
XCircle,
Users,
Mail,
ShieldCheck,
CreditCard
} from 'lucide-react';
import PaymentActivationDialog from '../../components/PaymentActivationDialog'; import PaymentActivationDialog from '../../components/PaymentActivationDialog';
import ConfirmationDialog from '../../components/ConfirmationDialog'; import ConfirmationDialog from '../../components/ConfirmationDialog';
import RejectionDialog from '../../components/RejectionDialog'; import RejectionDialog from '../../components/RejectionDialog';
@@ -344,7 +357,7 @@ const AdminValidations = () => {
<StatCard <StatCard
title="Total Pending" title="Total Pending"
value={loading ? '-' : pendingUsers.length} value={loading ? '-' : pendingUsers.length}
icon={CheckCircle} icon={Users}
iconBgClass="text-brand-purple" iconBgClass="text-brand-purple"
dataTestId="stat-total-users" dataTestId="stat-total-users"
/> />
@@ -352,24 +365,24 @@ const AdminValidations = () => {
<StatCard <StatCard
title="Awaiting Email" title="Awaiting Email"
value={loading ? '-' : pendingUsers.filter(u => u.status === 'pending_email').length} value={loading ? '-' : pendingUsers.filter(u => u.status === 'pending_email').length}
icon={CheckCircle} icon={Mail}
iconBgClass="text-brand-purple" iconBgClass="text-brand-pink"
dataTestId="stat-total-users" dataTestId="stat-total-users"
/> />
<StatCard <StatCard
title="Pending Validation" title="Pending Validation"
value={loading ? '-' : pendingUsers.filter(u => u.status === 'pending_validation').length} value={loading ? '-' : pendingUsers.filter(u => u.status === 'pending_validation').length}
icon={CheckCircle} icon={ShieldCheck}
iconBgClass="text-brand-purple" iconBgClass="text-success"
dataTestId="stat-pending-validation" dataTestId="stat-pending-validation"
/> />
<StatCard <StatCard
title="Payment Pending" title="Payment Pending"
value={loading ? '-' : pendingUsers.filter(u => u.status === 'payment_pending').length} value={loading ? '-' : pendingUsers.filter(u => u.status === 'payment_pending').length}
icon={CheckCircle} icon={CreditCard}
iconBgClass="text-brand-purple" iconBgClass="text-accent"
dataTestId="stat-payment-pending" dataTestId="stat-payment-pending"
/> />

View File

@@ -2,6 +2,7 @@ import React, { useState, useEffect, useMemo, useCallback } from 'react';
import api from '../../utils/api'; import api from '../../utils/api';
import Navbar from '../../components/Navbar'; import Navbar from '../../components/Navbar';
import MemberFooter from '../../components/MemberFooter'; import MemberFooter from '../../components/MemberFooter';
import { Link } from 'react-router-dom';
import { Card } from '../../components/ui/card'; import { Card } from '../../components/ui/card';
import { Input } from '../../components/ui/input'; import { Input } from '../../components/ui/input';
import { Badge } from '../../components/ui/badge'; import { Badge } from '../../components/ui/badge';
@@ -135,7 +136,7 @@ const MembersDirectory = () => {
} }
return ( return (
<div className="min-h-screen bg-gradient-to-bl from-[var(--neutral-100:)] to-[var(--neutral-800)]"> <div className="min-h-screen bg-gradient-to-bl from-white to-muted">
<Navbar /> <Navbar />
<div className="max-w-7xl mx-auto py-12"> <div className="max-w-7xl mx-auto py-12">
@@ -154,7 +155,7 @@ const MembersDirectory = () => {
</div> </div>
{/* Search Bar */} {/* Search Bar */}
<div className="mb-24 mx-10"> <div className="mb-24 w-full">
<div className="relative w-full "> <div className="relative w-full ">
<Search className="absolute left-4 top-1/2 transform -translate-y-1/2 h-5 w-5 text-brand-purple " /> <Search className="absolute left-4 top-1/2 transform -translate-y-1/2 h-5 w-5 text-brand-purple " />
<Input <Input
@@ -221,9 +222,10 @@ const MembersDirectory = () => {
</h3> </h3>
<p className="text-brand-purple " style={{ fontFamily: "'Nunito Sans', sans-serif" }}> <p className="text-brand-purple " style={{ fontFamily: "'Nunito Sans', sans-serif" }}>
Update your profile settings to show in the directory and add your photo, bio, and contact information.{' '} Update your profile settings to show in the directory and add your photo, bio, and contact information.{' '}
<a href="/members/profile" className="text-[var(--orange-light)] hover:underline font-medium">
<Link to="/profile" className="text-[var(--orange-light)] hover:underline font-medium">
Edit your profile Edit your profile
</a> </Link>
</p> </p>
</div> </div>
</div> </div>