fix(web): re-evaluate signup submit gate when async breach check resolves #295
No reviewers
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
psa-systems/bunyip!295
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/BUNYIP-283-signup-submit-gate-breach-async"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The signup form gates "Create Account" on every password-requirement row passing plus the confirm-match. The HIBP breach check is debounced 500 ms and async; when it lands, it flips
#pw-breachbetween pass/fail/pending but never callsrefreshSubmit(). So the gate is whatever the most-recentinputevent computed, which ran 500 ms ago with the row inpending.User-visible: type a leaked password (breach goes red, button disabled, correct). Type a clean strong password. Every row turns green and the confirm-match badge says "Passwords match", but "Create Account" stays greyed out because the gate was last evaluated when the breach row was still
pending, not when it later resolved topass. The only recovery today is to focus-toggle a field so anotherinputevent runs after the resolution.Add
refreshSubmit()after everysetState(rowBreach, ...)insidecheckBreach: the result path, the unavailable-crypto bail, the network-failure bail, and the catch bail. The synchronous local-rule path (rowLen / rowCase / rowDigit) already refreshes once at the end of the input handler, so this only touches the async path.#BUNYIP-283