'use client'; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { CircleNotch as LoaderCircle } from '@phosphor-icons/react'; import { getSupabase } from '@/lib/supabase'; import { motion } from 'framer-motion'; import { fadeUp } from '@/lib/animations'; export default function AuthCallback() { const router = useRouter(); const [error, setError] = useState(null); useEffect(() => { const params = new URLSearchParams(window.location.search); const code = params.get('code'); if (!code) { router.replace('/auth'); return; } getSupabase().auth.exchangeCodeForSession(code).then(({ error }: { error?: { message: string } | null }) => { if (error) { setError(error.message); return; } router.replace('/analyze'); }).catch((e: Error) => { setError(e.message || 'Unknown error'); }); }, [router]); if (error) { return (

Sign in failed

{error}

); } return (

Completing sign in...

); }