Email SMTP Fix

This commit is contained in:
Koncept Kit
2025-12-07 16:59:21 +07:00
parent 7b8ee6442a
commit 79cebd205c
15 changed files with 978 additions and 78 deletions

View File

@@ -6,12 +6,14 @@ import { Card } from '../components/ui/card';
import { Button } from '../components/ui/button';
import { Badge } from '../components/ui/badge';
import Navbar from '../components/Navbar';
import { Calendar, User, CheckCircle, Clock, AlertCircle } from 'lucide-react';
import { Calendar, User, CheckCircle, Clock, AlertCircle, Mail } from 'lucide-react';
import { toast } from 'sonner';
const Dashboard = () => {
const { user } = useAuth();
const { user, resendVerificationEmail } = useAuth();
const [events, setEvents] = useState([]);
const [loading, setLoading] = useState(true);
const [resendLoading, setResendLoading] = useState(false);
useEffect(() => {
fetchUpcomingEvents();
@@ -29,6 +31,19 @@ const Dashboard = () => {
}
};
const handleResendVerification = async () => {
setResendLoading(true);
try {
await resendVerificationEmail();
toast.success('Verification email sent! Please check your inbox.');
} catch (error) {
const errorMessage = error.response?.data?.detail || 'Failed to send verification email';
toast.error(errorMessage);
} finally {
setResendLoading(false);
}
};
const getStatusBadge = (status) => {
const statusConfig = {
pending_email: { icon: Clock, label: 'Pending Email', className: 'bg-[#F2CC8F] text-[#3D405B]' },
@@ -78,6 +93,33 @@ const Dashboard = () => {
</p>
</div>
{/* Email Verification Alert */}
{user && !user.email_verified && (
<Card className="p-6 bg-[#FFF3E0] border-2 border-[#E07A5F] mb-8">
<div className="flex items-start gap-4">
<AlertCircle className="h-6 w-6 text-[#E07A5F] flex-shrink-0 mt-1" />
<div className="flex-1">
<h3 className="text-lg font-semibold text-[#3D405B] mb-2">
Verify Your Email Address
</h3>
<p className="text-[#6B708D] mb-4">
Please verify your email address to complete your registration.
Check your inbox for the verification link.
</p>
<Button
onClick={handleResendVerification}
disabled={resendLoading}
variant="outline"
className="border-2 border-[#E07A5F] text-[#E07A5F] hover:bg-[#E07A5F] hover:text-white"
>
<Mail className="h-4 w-4 mr-2" />
{resendLoading ? 'Sending...' : 'Resend Verification Email'}
</Button>
</div>
</div>
</Card>
)}
{/* Status Card */}
<Card className="p-8 bg-white rounded-2xl border border-[#EAE0D5] shadow-lg mb-8" data-testid="status-card">
<div className="flex items-start justify-between flex-wrap gap-4">