var { useState } = React; window.Login = function Login({ onLogin, accent = '#2563eb' }) { const [username, setUsername] = useState('admin'); const [password, setPassword] = useState(''); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); setError(null); setLoading(true); try { const data = await window.api.auth.login(username, password); localStorage.setItem('token', data.access_token); onLogin(); } catch (err) { setError(err.message); } finally { setLoading(false); } }; return (
{/* Fallback falls das Logo nicht geladen wird */}
Logo { e.target.style.display = 'none'; e.target.parentNode.innerHTML = ''; }} />

Schulbuch-Verwaltung

Bitte loggen Sie sich ein

{error && (
{error}
)}
setUsername(e.target.value)} style={{ width: '100%', padding: '0.75rem', borderRadius: '6px', border: '1px solid #cbd5e1', fontSize: '1rem', outline: 'none', transition: 'border-color 0.2s' }} onFocus={e => e.target.style.borderColor = `var(--accent, ${accent})`} onBlur={e => e.target.style.borderColor = '#cbd5e1'} required />
setPassword(e.target.value)} style={{ width: '100%', padding: '0.75rem', borderRadius: '6px', border: '1px solid #cbd5e1', fontSize: '1rem', outline: 'none', transition: 'border-color 0.2s' }} onFocus={e => e.target.style.borderColor = `var(--accent, ${accent})`} onBlur={e => e.target.style.borderColor = '#cbd5e1'} required />
); };