'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Label } from '@/components/ui/label'; import { useToast } from '@/components/ui/use-toast'; export function LoginForm() { const [isLoading, setIsLoading] = useState(false); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const router = useRouter(); const { toast } = useToast(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); try { const response = await fetch('/api/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email, password }), }); const data = await response.json(); if (response.ok) { toast({ title: 'Success', description: 'Logged in successfully', }); if (data.user.role === 'admin') { router.push('/admin'); } else { router.push('/dashboard'); } } else { toast({ title: 'Error', description: data.error || 'Login failed', variant: 'destructive', }); } } catch (error) { toast({ title: 'Error', description: 'An unexpected error occurred', variant: 'destructive', }); } finally { setIsLoading(false); } }; return ( Sign In Enter your email and password to access your account
setEmail(e.target.value)} required />
setPassword(e.target.value)} required />
); }