You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(settings): harden RomM sign-in and consolidate the connection/SteamGridDB UX (#1565)
Hardens the RomM sign-in flow and consolidates the connection / SteamGridDB settings UX after on-device testing.
**Sign-in (RomM):**
- Every mode's fields are required — username **and** password, the API token, or all eight pairing-code boxes. The Sign-in button stays disabled until they're filled; an empty form can only be cancelled, which leaves the existing sign-in untouched.
- Enter / R2 is placed logically: in the username field it advances to the password field, and it confirms only from a completing field once every required field is filled — never submitting an incomplete form. A single-field modal no longer closes on an empty Enter/R2.
- A failed sign-in keeps the dialog open and shows the error inline, closing only on success — so the message sits where you typed, and a failed re-sign-in no longer silently leaves the previous token presenting as a fresh success.
- A rejected token is reported plainly ("RomM rejected this token…") instead of a generic "Server error", and a wrong username/password no longer wrongly claims the account can't create API tokens — RomM returns an indistinguishable 403 for both, so the message names both causes.
**SteamGridDB key:** validated inline in its own modal — the entered key is tested against SteamGridDB before it is saved; a rejected key keeps the modal open with the reason, and only a valid key is persisted.
**Fewer redundant buttons:** removed the settings-page **Test Connection** and **Verify Key** buttons — the QAM Connection row already probes on open, and both modals now validate inline.
**Clearer QAM status:** the Connection row surfaces the specific reason on failure (Not signed in / Sign-in rejected / Server unreachable / No server URL) instead of a bare "Not connected".
All settings text inputs (RomM URL, SteamGridDB key, default save slot) now require a non-empty value.
Needs on-device verification in Game Mode — the on-screen-keyboard Enter/R2 dispatch and gamepad focus traversal can't be exercised by the unit tests.
Closes#1564
0 commit comments