// Login screen — Klant + Admin tabs, met register-modus function Login({ onLogin, onNav, brand }) { const [role, setRole] = React.useState("klant"); const [mode, setMode] = React.useState("login"); // login | register const [email, setEmail] = React.useState(""); const [pw, setPw] = React.useState(""); const [name, setName] = React.useState(""); const [phone, setPhone] = React.useState(""); const [error, setError] = React.useState(""); const [loading, setLoading] = React.useState(false); const isRegister = mode === "register" && role === "klant"; const submit = async (e) => { e?.preventDefault?.(); setError(""); if (!email || !pw) { setError("Vul e-mail en wachtwoord in."); return; } if (isRegister && !name) { setError("Vul uw naam in."); return; } if (isRegister && pw.length < 8) { setError("Wachtwoord moet minimaal 8 tekens zijn."); return; } setLoading(true); try { let data; if (isRegister) { data = await window.api.auth.register({ email, password: pw, name, phone }); } else { data = await window.api.auth.login({ email, password: pw }); } const u = data.user; if (role === "admin" && u.role !== "admin") { setError("Dit account heeft geen werkplaats-toegang."); await window.api.auth.logout().catch(() => {}); return; } onLogin({ role: u.role, name: u.name, email: u.email, id: u.id }); } catch (err) { setError(err.message || (isRegister ? "Registratie mislukt" : "Inloggen mislukt")); } finally { setLoading(false); } }; const quickFill = () => { if (role === "admin") { setEmail("info@garage-dede.nl"); setPw("wijzigDirect2026!"); } else { setEmail(""); setPw(""); } }; return (
{role === "klant" ? "Bekijk uw afspraken, voertuigen en facturen op één plek. APK-reminders krijgt u automatisch." : "Plan in, beheer de werkplaats-agenda, en houd statussen up-to-date voor uw klanten."}
{role === "admin" ? "Alleen voor medewerkers van Garage DéDé." : ( <> {isRegister ? "Heb je al een account? " : "Of "} { setMode(isRegister ? "login" : "register"); setError(""); }} style={{ color: "var(--accent)", cursor: "pointer", textDecoration: "underline" }} > {isRegister ? "log in" : "maak een account"} {isRegister ? "." : " als u nieuw bent."} > )}