From cd67db99ed406bfd9c0dedbf61d8fd878278f84e Mon Sep 17 00:00:00 2001 From: root Date: Thu, 25 Jun 2026 01:29:36 -0400 Subject: [PATCH] fix signin --- .../[[...sign-in]]/SignInPageClient.tsx | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/apps/dashboard/src/app/sign-in/[[...sign-in]]/SignInPageClient.tsx b/apps/dashboard/src/app/sign-in/[[...sign-in]]/SignInPageClient.tsx index 587bfb1..3b4221a 100644 --- a/apps/dashboard/src/app/sign-in/[[...sign-in]]/SignInPageClient.tsx +++ b/apps/dashboard/src/app/sign-in/[[...sign-in]]/SignInPageClient.tsx @@ -42,6 +42,7 @@ export default function SignInPageClient({ embedded = false }: { embedded?: bool forgotPassword: 'Forgot your password?', invalidCredentials: 'Invalid email or password.', passwordNotSet: 'No password set yet. Check your invitation email or use "Forgot your password?"', + tooManyRequests: 'Too many attempts. Please try again later.', unexpectedError: 'Something went wrong. Please try again.', }, fr: { @@ -60,6 +61,7 @@ export default function SignInPageClient({ embedded = false }: { embedded?: bool forgotPassword: 'Mot de passe oublié ?', invalidCredentials: 'Adresse e-mail ou mot de passe invalide.', passwordNotSet: `Aucun mot de passe défini. Vérifiez votre e-mail d'invitation ou utilisez « Mot de passe oublié ? »`, + tooManyRequests: 'Trop de tentatives. Veuillez réessayer plus tard.', unexpectedError: 'Une erreur est survenue. Veuillez réessayer.', }, ar: { @@ -78,6 +80,7 @@ export default function SignInPageClient({ embedded = false }: { embedded?: bool forgotPassword: 'نسيت كلمة المرور؟', invalidCredentials: 'البريد الإلكتروني أو كلمة المرور غير صحيحة.', passwordNotSet: 'لم يتم تعيين كلمة مرور بعد. تحقق من بريد الدعوة أو استخدم "نسيت كلمة المرور؟"', + tooManyRequests: 'محاولات كثيرة جدًا. يرجى المحاولة لاحقًا.', unexpectedError: 'حدث خطأ ما. يرجى المحاولة مرة أخرى.', }, }[language] @@ -206,6 +209,7 @@ function LocalSignInForm({ forgotPassword: string invalidCredentials: string passwordNotSet: string + tooManyRequests: string unexpectedError: string } }) { @@ -219,15 +223,9 @@ function LocalSignInForm({ const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const requestedPortal = searchParams.get('portal') - const adminNext = searchParams.get('next') || '/dashboard' const employeeRedirect = searchParams.get('redirect') || '/dashboard' const preferAdminAuth = requestedPortal === 'admin' - function redirectAdmin(token: string) { - const hash = new URLSearchParams({ token, next: adminNext }).toString() - window.location.href = `${adminUrl}/auth-redirect#${hash}` - } - async function handleCredentials(e: React.FormEvent) { e.preventDefault() setLoading(true) @@ -253,6 +251,11 @@ function LocalSignInForm({ return true } + if (adminRes.status === 429) { + setError(dict.tooManyRequests) + return true + } + return false } @@ -288,6 +291,11 @@ function LocalSignInForm({ return true } + if (empRes.status === 429) { + setError(dict.tooManyRequests) + return true + } + return false } @@ -298,7 +306,6 @@ function LocalSignInForm({ } if (await tryEmployeeLogin()) return - if (await tryAdminLogin()) return setError(dict.invalidCredentials) } catch {