From 892e15a6a6c822a8e6b4e0e1b287c32ceeb0c92f Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Wed, 6 Aug 2025 00:32:41 +0000 Subject: [PATCH] Enhanced OAuth handling in AuthContext cgen-fad2bcc90540448cad965adb8581a6d2 --- client/contexts/AuthContext.tsx | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/client/contexts/AuthContext.tsx b/client/contexts/AuthContext.tsx index fc6a2323..7f5b9f5a 100644 --- a/client/contexts/AuthContext.tsx +++ b/client/contexts/AuthContext.tsx @@ -63,7 +63,34 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children setUser(session?.user ?? null); if (session?.user) { - await fetchUserProfile(session.user.id); + const profile = await fetchUserProfile(session.user.id); + + // Create profile for new OAuth users + if (!profile && session.user.app_metadata?.provider) { + try { + await aethexUserService.createInitialProfile(session.user.id, { + username: session.user.user_metadata?.user_name || + session.user.user_metadata?.preferred_username || + session.user.email?.split('@')[0] || + `user_${Date.now()}`, + full_name: session.user.user_metadata?.full_name || + session.user.user_metadata?.name || + session.user.email?.split('@')[0], + email: session.user.email, + avatar_url: session.user.user_metadata?.avatar_url, + user_type: 'community_member', // Default for OAuth users + experience_level: 'beginner', + }); + + // Fetch the newly created profile + await fetchUserProfile(session.user.id); + + // Award onboarding achievement for OAuth users + await aethexAchievementService.checkAndAwardOnboardingAchievement(session.user.id); + } catch (error) { + console.error('Error creating OAuth user profile:', error); + } + } } else { setProfile(null); }