diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index a423b1fc..0c6ab90d 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -31,7 +31,7 @@ export default function Dashboard() { const fetchProfile = async () => { if (!user) return; - + try { const { data, error } = await supabase .from('profiles') @@ -40,6 +40,20 @@ export default function Dashboard() { .single(); if (error) throw error; + + // Sync email_verified from Supabase Auth + const isEmailVerified = !!user.email_confirmed_at; + + // Update profile with Auth's verification status if different + if (data && data.email_verified !== isEmailVerified) { + await supabase + .from('profiles') + .update({ email_verified: isEmailVerified }) + .eq('id', user.id); + + data.email_verified = isEmailVerified; + } + setProfile(data); } catch (error) { console.error('Error fetching profile:', error); @@ -165,14 +179,16 @@ export default function Dashboard() {
- {profile?.email_verified ? ( + {user?.email_confirmed_at || profile?.email_verified ? ( Verified ) : ( Unverified )}

- Email verification status + {user?.email_confirmed_at + ? `Verified on ${new Date(user.email_confirmed_at).toLocaleDateString()}` + : 'Email verification status'}

@@ -248,7 +264,9 @@ export default function Dashboard() { Email: {user?.email} - {!profile?.email_verified && ( + {user?.email_confirmed_at || profile?.email_verified ? ( + Verified + ) : ( @@ -258,7 +276,7 @@ export default function Dashboard() { Recovery Email: {profile?.recovery_email || 'Not set'} - {profile?.recovery_email_verified && ( + {profile?.recovery_email_verified && profile?.recovery_email && ( Verified )} @@ -383,7 +401,7 @@ export default function Dashboard() { - {!profile?.email_verified && ( + {!user?.email_confirmed_at && !profile?.email_verified && (