auth: store-review test login + matchmaking no-hang/watchdog
CI/CD / CI - API (dotnet build + engine sim) (push) Successful in 56s
CI/CD / CI - Web (tsc + next build) (push) Successful in 1m9s
CI/CD / Deploy - local stack (db + server + web) (push) Successful in 1m7s

- OtpService: a designated test phone (default 09120000000 / code 453115,
  overridable via Sms__TestPhone/Sms__TestCode) skips real SMS and always
  verifies — for Google Play / Bazaar / Myket reviewers. Give them these creds.
- Matchmaking UX: tapping a league now navigates to the matchmaking screen
  BEFORE awaiting the SignalR handshake, so the button can't freeze. Added a
  watchdog hint after 28s ("connection took too long, cancel & retry") so it
  never spins forever when the hub doesn't connect.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-15 16:40:01 +03:30
parent a35acea7e4
commit 76c4b68a74
5 changed files with 29 additions and 2 deletions
+5 -1
View File
@@ -122,7 +122,11 @@ export function MatchmakingScreen() {
{searching && (
<>
<div className="mt-2 text-3xl font-black gold-text tabular-nums">{elapsed}s</div>
<p className="text-cream/50 text-xs mt-1 max-w-[16rem]">{t("mm.fillHint")}</p>
{elapsed >= 28 ? (
<p className="text-rose-300 text-xs mt-2 max-w-[18rem]">{t("mm.stuck")}</p>
) : (
<p className="text-cream/50 text-xs mt-1 max-w-[16rem]">{t("mm.fillHint")}</p>
)}
</>
)}
+3 -1
View File
@@ -48,8 +48,10 @@ export function OnlineLobbyScreen() {
go("buycoins");
return;
}
await startMatchmaking({ ranked: true, stake: l.entry });
// Navigate FIRST so the button never hangs on the SignalR handshake; the
// matchmaking screen shows "searching" while the connection establishes.
go("matchmaking");
void startMatchmaking({ ranked: true, stake: l.entry });
};
return (