import { useState } from 'react'; import type { FormEvent } from 'react'; import { useNavigate } from 'react-router-dom'; import { api, setToken } from '../api/client'; export default function Login() { const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const navigate = useNavigate(); async function handleSubmit(e: FormEvent) { e.preventDefault(); setError(''); setLoading(true); try { const res = await api.post<{ token: string }>('/api/auth/login', { username, password }); setToken(res.token); navigate('/'); } catch (err) { setError((err as Error).message || 'Anmeldung fehlgeschlagen'); } finally { setLoading(false); } } return (

E-Paper Display

setUsername(e.target.value)} required autoFocus className="w-full border border-gray-300 rounded px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-sky-400" />
setPassword(e.target.value)} required className="w-full border border-gray-300 rounded px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-sky-400" />
{error &&

{error}

}
); }