import { FormEvent, useState } from 'react'; import { Eye, EyeOff } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; type AuthFormProps = { mode: 'login' | 'register'; isSubmitting: boolean; error: string | null; googleOAuthEnabled: boolean; onSubmit: (payload: { name?: string; email: string; password: string }) => Promise; onFieldChange?: () => void; }; export function AuthForm({ mode, isSubmitting, error, googleOAuthEnabled, onSubmit, onFieldChange }: AuthFormProps) { const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [showPassword, setShowPassword] = useState(false); async function handleSubmit(event: FormEvent) { event.preventDefault(); await onSubmit({ name, email, password }); } return ( {mode === 'login' ? 'Masuk ke ZeaVis Edu' : 'Buat akun ZeaVis Edu'} {mode === 'login' ? 'Masuk untuk melihat riwayat diagnosis daun jagung Anda.' : 'Daftar untuk menyimpan diagnosis dan mengikuti review pakar.'}
{mode === 'register' && (
{ setName(event.target.value); onFieldChange?.(); }} required />
)}
{ setEmail(event.target.value); onFieldChange?.(); }} required />
{ setPassword(event.target.value); onFieldChange?.(); }} required />
{error &&

{error}

}
{googleOAuthEnabled && ( )}
); }