import { useState } from "react"; import Button, { ButtonType } from "./basics/Button"; import type { LoginRequestDto } from "../api/dtos/LoginRequestDto"; import type { LoginResponseDto } from "../api/dtos/LoginResponseDto"; import { login } from "../api/points/AuthPoint"; import { getRecipeListUrl } from "../routes"; import { useNavigate } from "react-router-dom"; import PasswordField from "./basics/PasswordField"; export default function LoginPage() { const [userName, setUserName] = useState(""); const [password, setPassword] = useState(""); const [errorMessage, setErrorMessage] = useState(null); const navigate = useNavigate(); const executeLogin = async () => { const dto: LoginRequestDto = { userName, password, }; try { console.log("Trying to log in with " + dto.userName); const loginResponse: LoginResponseDto = await login(dto); localStorage.setItem("session", JSON.stringify(loginResponse)); console.log("Successfully logged in as " + loginResponse.userData?.userName); setErrorMessage(null); navigate(getRecipeListUrl()); } catch (err: any) { console.error("Login failed:", err); setErrorMessage("Login fehlgeschlagen! Bitte überprüfe Benutzername und Passwort."); } }; return (

Anmeldung

setUserName(e.target.value)} /> {errorMessage && (

{errorMessage}

)}
); }