'use client'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; import { useActionState, useEffect, useState } from 'react'; import { toast } from '@/components/toast'; import { AuthForm } from '@/components/auth-form'; import { SubmitButton } from '@/components/submit-button'; import { login, type LoginActionState } from '../actions'; import { useSession } from 'next-auth/react'; export default function Page() { const router = useRouter(); const [email, setEmail] = useState(''); const [isSuccessful, setIsSuccessful] = useState(false); const [state, formAction] = useActionState( login, { status: 'idle', }, ); const { update: updateSession } = useSession(); useEffect(() => { if (state.status === 'failed') { toast({ type: 'error', description: 'Invalid credentials!', }); } else if (state.status === 'invalid_data') { toast({ type: 'error', description: 'Failed validating your submission!', }); } else if (state.status === 'success') { setIsSuccessful(true); updateSession(); router.refresh(); } }, [state.status]); const handleSubmit = (formData: FormData) => { setEmail(formData.get('email') as string); formAction(formData); }; return (

Sign In

Use your email and password to sign in

Sign in

{"Don't have an account? "} Sign up {' for free.'}

); }