From 382511d7df7f57b44cd6351dabfe28220903157d Mon Sep 17 00:00:00 2001 From: capJavert Date: Thu, 2 Apr 2026 08:14:12 +0000 Subject: [PATCH] feat: show social provider hint for social-only users on email login When the API returns a SOCIAL_ACCOUNT_ONLY error code during email sign-in, display a helpful message directing the user to sign in with their social provider instead of the generic invalid credentials error. Co-Authored-By: Claude Opus 4.6 --- packages/shared/src/components/auth/LoginForm.tsx | 8 ++++++++ packages/shared/src/hooks/useLogin.ts | 9 +++++++-- packages/shared/src/lib/labels.ts | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/shared/src/components/auth/LoginForm.tsx b/packages/shared/src/components/auth/LoginForm.tsx index 2d3045933ce..da80bf76748 100644 --- a/packages/shared/src/components/auth/LoginForm.tsx +++ b/packages/shared/src/components/auth/LoginForm.tsx @@ -143,6 +143,14 @@ function LoginForm({ )} + {hint && hint === labels.auth.error.socialAccountOnly && ( + + + It looks like you signed up with a different method. Try signing in + with your social provider instead. + + + )} ); } diff --git a/packages/shared/src/hooks/useLogin.ts b/packages/shared/src/hooks/useLogin.ts index f53a4f64acb..5c0d37ea5a6 100644 --- a/packages/shared/src/hooks/useLogin.ts +++ b/packages/shared/src/hooks/useLogin.ts @@ -73,15 +73,20 @@ const useLogin = ({ }, onSuccess: async (res) => { if (res.error) { + const isSocialOnly = res.code === 'SOCIAL_ACCOUNT_ONLY'; + const displayedError = isSocialOnly + ? labels.auth.error.socialAccountOnly + : labels.auth.error.invalidEmailOrPassword; logEvent({ event_name: AuthEventNames.LoginError, extra: JSON.stringify({ error: res.error, - displayedError: labels.auth.error.invalidEmailOrPassword, + code: res.code, + displayedError, origin: 'betterauth email login', }), }); - setHint(labels.auth.error.invalidEmailOrPassword); + setHint(displayedError); return; } diff --git a/packages/shared/src/lib/labels.ts b/packages/shared/src/lib/labels.ts index b642a882b92..b488dfdb08c 100644 --- a/packages/shared/src/lib/labels.ts +++ b/packages/shared/src/lib/labels.ts @@ -26,6 +26,8 @@ export const labels = { '❌ We got some unexpected error from our side, nothing to worry about. Please try again.', existingEmail: 'Email linked to different sign-in method. Please try another provider.', + socialAccountOnly: + 'It looks like you signed up with a different method. Try signing in with your social provider instead.', }, }, referral: {