diff --git a/frontend/src/components.jsx b/frontend/src/components.jsx index a16f378..7dd53aa 100644 --- a/frontend/src/components.jsx +++ b/frontend/src/components.jsx @@ -238,18 +238,34 @@ export function AuthModal({ mode: initialMode, onClose, onAuthed }) { const [mode, setMode] = useState(initialMode || 'register') const [email, setEmail] = useState('') const [password, setPassword] = useState('') + const [reveal, setReveal] = useState(false) const [error, setError] = useState('') const [busy, setBusy] = useState(false) const registering = mode === 'register' + // Esc dismisses, like the overlay click already does. + useEffect(() => { + const onKey = (e) => { if (e.key === 'Escape') onClose() } + window.addEventListener('keydown', onKey) + return () => window.removeEventListener('keydown', onKey) + }, [onClose]) + + const switchTo = (next) => { + if (next === mode) return + setMode(next) + setError('') + setReveal(false) + } + const submit = async (e) => { e.preventDefault() setBusy(true) setError('') try { + const address = email.trim() const me = registering - ? await api.register(email, password) - : await api.login(email, password) + ? await api.register(address, password) + : await api.login(address, password) onAuthed(me, mode) } catch (err) { setError(err.message) @@ -259,34 +275,54 @@ export function AuthModal({ mode: initialMode, onClose, onAuthed }) { return (