fix(offline): unify NewGame layout to natural-flow + PinPad verdict pause
CI / changes (pull_request) Successful in 1s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 1m6s
CI / conformance (pull_request) Successful in 9s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m42s
CI / changes (pull_request) Successful in 1s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 1m6s
CI / conformance (pull_request) Successful in 9s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m42s
- NewGame: all three forms (quick / friends / hotseat) now use the Profile sub-view's natural-flow .page (no forced height, no pinned-CTA .grow/.fg scroll), so the screen's single .content scroll + --vvh handle overflow and a focused name input scrolls into view cleanly — fixes the keyboard blank-space / deep-scroll regression. One layout rule, one place. - PinPad: pause 250ms after the 4th digit before the verdict, so the fill (and the shake on a wrong PIN) reads as a deliberate response. - e2e: typePin waits for empty dots before typing (robust to the pause).
This commit is contained in:
@@ -72,6 +72,9 @@
|
||||
async function commit(): Promise<void> {
|
||||
busy = true;
|
||||
try {
|
||||
// Let the 4th dot register before the verdict: a beat so the fill (and, on failure, the shake)
|
||||
// reads as a deliberate response rather than an instant flicker.
|
||||
await new Promise((r) => setTimeout(r, 250));
|
||||
if (phase === 'old') {
|
||||
if (verify && (await verify(buffer))) {
|
||||
buffer = '';
|
||||
|
||||
Reference in New Issue
Block a user