'use client'; import Link from 'next/link'; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { signIn, useSession } from '@/lib/better-auth'; import { AuthShell } from '@/components/auth/auth-shell'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; export default function SignInPage() { const router = useRouter(); const { data: session, isPending: sessionPending } = useSession(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); useEffect(() => { if (!sessionPending && session?.user) { router.replace('/'); } }, [sessionPending, session, router]); const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); setLoading(true); setError(null); try { const result = await signIn.email({ email, password }); if (result.error) { setError(result.error.message || 'Invalid credentials'); } else { router.replace('/'); router.refresh(); } } catch { setError('Sign in failed'); } finally { setLoading(false); } }; return ( No account yet?{' '} Create one )} >
setEmail(event.target.value)} placeholder="you@company.com" />
setPassword(event.target.value)} placeholder="********" />
{error ?

{error}

: null}
); }