Fix Enter key not submitting login form

The submit button's `disabled` attribute prevented browsers from firing
implicit form submission (Enter key) per HTML spec. Move the canSubmit
guard into the onSubmit handler and use aria-disabled + visual styles
instead, so Enter works when fields are filled.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Devin Foley
2026-03-14 00:17:39 -07:00
parent bcce5b7ec2
commit 8a201022c0

View File

@@ -57,8 +57,8 @@ export function AuthPage() {
const canSubmit =
email.trim().length > 0 &&
password.trim().length >= 8 &&
(mode === "sign_in" || name.trim().length > 0);
password.trim().length > 0 &&
(mode === "sign_in" || (name.trim().length > 0 && password.trim().length >= 8));
if (isSessionLoading) {
return (
@@ -91,6 +91,7 @@ export function AuthPage() {
className="mt-6 space-y-4"
onSubmit={(event) => {
event.preventDefault();
if (!canSubmit || mutation.isPending) return;
mutation.mutate();
}}
>
@@ -128,7 +129,12 @@ export function AuthPage() {
/>
</div>
{error && <p className="text-xs text-destructive">{error}</p>}
<Button type="submit" disabled={!canSubmit || mutation.isPending} className="w-full">
<Button
type="submit"
disabled={mutation.isPending}
aria-disabled={!canSubmit || mutation.isPending}
className={`w-full ${!canSubmit ? "opacity-50 pointer-events-none" : ""}`}
>
{mutation.isPending
? "Working…"
: mode === "sign_in"