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 (
+2
View File
@@ -256,6 +256,7 @@ const fa: Dict = {
"mm.found": "بازیکنان پیدا شدند!",
"mm.ready": "آماده شروع",
"mm.fillHint": "اگر بازیکن آنلاینی پیدا نشود، ربات‌ها جایگزین می‌شوند",
"mm.stuck": "اتصال به سرور طول کشید. لطفاً «لغو» را بزنید و دوباره تلاش کنید.",
"intro.found": "بازیکنان آماده‌اند!",
"intro.getReady": "بازی در حال شروع است…",
"intro.go": "شروع!",
@@ -642,6 +643,7 @@ const en: Dict = {
"mm.found": "Players found!",
"mm.ready": "Ready to start",
"mm.fillHint": "If no online players are found, bots will fill in",
"mm.stuck": "Connecting to the server is taking too long. Tap Cancel and try again.",
"mm.cancel": "Cancel",
"mm.start": "Enter game",