import { useState } from 'react'; import { useAuth } from './AuthContext'; import { login as apiLogin } from './api'; import { jwtDecode } from 'jwt-decode'; import { useNavigate } from 'react-router-dom'; export default function LoginPage() { const { login } = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(null); const navigate = useNavigate(); // ← Navigation-Hook async function handleSubmit(e: React.FormEvent) { e.preventDefault(); try { const data = await apiLogin(email, password); // Token aus JWT extrahieren (hier: UserID im Token Payload) // Für Demo: Einfach Dummy UserID setzen, oder später JWT decode implementieren type MyJwtPayload = { userId: string email: string; role: string; } & object; const decodedData = jwtDecode(data.token); login(data.token, decodedData.userId, decodedData.role); // Nach dem Login zur Dashboard-Seite navigieren setTimeout(() => { navigate('/'); }, 1000); } catch { setError('Login fehlgeschlagen'); } } return (

Login

{error &&

{error}

} setEmail(e.target.value)} className="border p-2 w-full mb-4" /> setPassword(e.target.value)} className="border p-2 w-full mb-4" />
); }