import { FormEvent, useState } from "react"; import { registerRequest } from "../api/auth"; import { useAuthStore } from "../store/authStore"; type Mode = "login" | "register"; export function AuthPanel() { const login = useAuthStore((s) => s.login); const loading = useAuthStore((s) => s.loading); const [mode, setMode] = useState("login"); const [email, setEmail] = useState(""); const [name, setName] = useState(""); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(null); const [success, setSuccess] = useState(null); async function onSubmit(event: FormEvent) { event.preventDefault(); setError(null); setSuccess(null); try { if (mode === "register") { await registerRequest(email, name, username, password); setSuccess("Registered. Check email verification, then login."); setMode("login"); return; } await login(email, password); } catch { setError("Auth request failed."); } } return (
setEmail(e.target.value)} /> {mode === "register" && ( <> setName(e.target.value)} /> setUsername(e.target.value)} /> )} setPassword(e.target.value)} />
{error ?

{error}

: null} {success ?

{success}

: null}
); }