import { useEffect, useState } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import { useAuth } from '../contexts/AuthContext'; function AuthCallback() { const [searchParams] = useSearchParams(); const navigate = useNavigate(); const { login } = useAuth(); const [error, setError] = useState(null); useEffect(() => { const handleCallback = async () => { const token = searchParams.get('token'); const redirect = searchParams.get('redirect') || sessionStorage.getItem('oauth_redirect') || '/'; sessionStorage.removeItem('oauth_redirect'); if (!token) { setError('No authentication token received'); setTimeout(() => navigate('/login'), 2000); return; } try { await login(token); navigate(redirect); } catch (err) { console.error('Login error:', err); setError('Authentication failed. Please try again.'); setTimeout(() => navigate('/login'), 2000); } }; handleCallback(); }, [searchParams, login, navigate]); return (
{error ? ( <>

Error

{error}

Redirecting to login...

) : ( <>

Logging you in...

Please wait while we complete the authentication.

)}
); } export default AuthCallback;