"use client"; import { useFormStatus } from 'react-dom'; import { loginAction } from '@/lib/actions/auth.actions'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Terminal, LogIn, Loader2 } from "lucide-react"; import { useEffect, useActionState } from 'react'; // Updated import import { useToast } from '@/hooks/use-toast'; function SubmitButton() { const { pending } = useFormStatus(); return ( ); } export default function LoginForm() { const initialState = { message: null }; // Updated to useActionState const [state, dispatch, isPending] = useActionState(loginAction, initialState); const { toast } = useToast(); useEffect(() => { if (state?.message && !state.message.includes("Invalid fields")) { // Don't toast form validation errors handled inline toast({ variant: "destructive", title: "Login Failed", description: state.message, }); } }, [state, toast]); return (
{state?.message && state.message.includes("Invalid fields") && ( Error {state.message} )} ); }