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'; import { getUserFromToken } from '../components/utils/jwt'; 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 var decodedData = getUserFromToken(data.token); if (!decodedData || !decodedData.userId || !decodedData.role) { setError('Ungültiges Token'); return; } // Dummy UserID für Demo 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" />
); }