diff --git a/apps/homepage/src/components/auth/SignInForm.tsx b/apps/homepage/src/components/auth/SignInForm.tsx index 9bb099f..66385f4 100644 --- a/apps/homepage/src/components/auth/SignInForm.tsx +++ b/apps/homepage/src/components/auth/SignInForm.tsx @@ -118,7 +118,6 @@ export function SignInForm({ locale: Locale; authMode?: 'auto' | 'admin' | 'employee'; }) { - void authMode; const dict = (dicts[locale] ?? dicts.en) as Dict; const searchParams = useSearchParams(); const pathname = usePathname(); @@ -131,10 +130,13 @@ export function SignInForm({ const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const employeeRedirect = resolveSafeAppRedirect(searchParams.get('redirect'), '/dashboard'); + const adminRedirect = resolveSafeAppRedirect(searchParams.get('next'), '/admin/dashboard'); + const loginEndpoint = + authMode === 'admin' ? `${API_BASE}/admin/auth/login` : `${API_BASE}/auth/login`; function completeLogin(data: any) { if (data?.admin) { - window.location.href = `${window.location.origin}/admin/dashboard`; + window.location.href = `${window.location.origin}${adminRedirect}`; return true; } @@ -158,7 +160,7 @@ export function SignInForm({ setError(null); try { - const res = await fetch(`${API_BASE}/auth/login`, { + const res = await fetch(loginEndpoint, { method: 'POST', headers: { 'Content-Type': 'application/json' }, credentials: 'include', @@ -207,7 +209,7 @@ export function SignInForm({ ? { totpCode: normalizedCode } : { recoveryCode: normalizedCode }; - const adminRes = await fetch(`${API_BASE}/auth/login`, { + const adminRes = await fetch(loginEndpoint, { method: 'POST', headers: { 'Content-Type': 'application/json' }, credentials: 'include', diff --git a/apps/homepage/tests/unit/components/sign-in-form.test.tsx b/apps/homepage/tests/unit/components/sign-in-form.test.tsx index a9b355b..5d1dc4a 100644 --- a/apps/homepage/tests/unit/components/sign-in-form.test.tsx +++ b/apps/homepage/tests/unit/components/sign-in-form.test.tsx @@ -144,14 +144,14 @@ describe('SignInForm auth routing', () => { ); }); - it('uses unified login when the page forces admin auth mode', async () => { + it('uses admin login when the page forces admin auth mode', async () => { render(); await submitForm(); await waitFor(() => expect(fetch).toHaveBeenCalledTimes(1)); expect(fetch).toHaveBeenCalledWith( - `${API_BASE}/auth/login`, + `${API_BASE}/admin/auth/login`, expect.objectContaining({ method: 'POST' }), ); expect(fetch).not.toHaveBeenCalledWith(