syntaqxThe code boxes sit in the middle of signing in and confirming an email, a code is sent once, and nothing says "Please fill out this field". On the sign-in's second step and email confirmation the six boxes, the recovery link, the hint and the error are centred under the heading that already says what to enter; the label is for screen readers only there. Two-factor settings keep the labelled field, aligned left. A password manager that fills the code often sends the form itself too, and with the boxes sending it at the sixth digit the same code went twice: identity takes each authenticator code once (two_factor.last_step), so the second was refused and said "That code is not right" even when the code was right. While one sending is on its way, any other is now dropped by a submit listener on the form, which runs before React Router's, and the boxes never send a code again while one is out. The boxes are no longer `required`, which drew the browser's bubble over invisible input; an empty code is refused by the server as before. A refused code still clears the boxes and focuses them, and the red goes as soon as something new is typed. Checked: apps/web tsc -b and npm test (993), and the sign-in form in headless Chrome driven over CDP with an action that counts what reaches it: a filled code, the filler's own submit, the boxes' submit and one more while it was out reached the action once; after the refusal the boxes were empty, focused and red, and one typed digit took the red away. Not tried with a real password manager.db67273History
- ..
- abuse.tsx
- aliases.tsx
- audit.tsx
- blocked-domains.tsx
- costs-bill.tsx
- costs.tsx
- credits.tsx
- deleted-accounts.tsx
- deleted-workspaces.tsx
- enterprise.tsx
- enterprises.tsx
- incident-new.tsx
- incident-postmortem.tsx
- incident.tsx
- incidents.tsx
- invites.tsx
- invoices.tsx
- legacy-accounts.tsx
- maintenance-new.tsx
- maintenance.tsx
- new-enterprise.tsx
- overages.tsx
- overview.tsx
- privacy.tsx
- reach-out.tsx
- requests.tsx
- soon.tsx
- stripe.tsx
- timezone.tsx
- user.tsx
- velocity.tsx
- workspace-abuse.tsx
- workspace.tsx
- workspaces.tsx