'use client'; import { useState } from 'react'; import { useAuth } from '@/contexts/AuthContext'; interface LoginFormProps { onSuccess?: () => void; redirectTo?: string; } export function LoginForm({ onSuccess, redirectTo = '/dashboard' }: LoginFormProps) { const { signIn, signInWithOAuth } = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(null); const { error } = await signIn(email, password); if (error) { setError(getErrorMessage(error.message)); setLoading(false); } else { onSuccess?.(); window.location.href = redirectTo; } }; const handleOAuth = async (provider: 'google' | 'github') => { setLoading(true); await signInWithOAuth(provider); }; return (
setEmail(e.target.value)} className="w-full px-3 py-2 border rounded-md" required />
setPassword(e.target.value)} className="w-full px-3 py-2 border rounded-md" required />
{error && (

{error}

)}
Oder weiter mit
); } function getErrorMessage(message: string): string { const errorMap: Record = { 'Invalid login credentials': 'Ungueltige Anmeldedaten', 'Email not confirmed': 'Bitte bestaetigen Sie zuerst Ihre Email', 'Too many requests': 'Zu viele Versuche. Bitte warten Sie einen Moment.', }; return errorMap[message] || 'Ein Fehler ist aufgetreten'; }