Economy: free vs paid games + buy-coins page; friends remove confirmation

- Coins only matter for ranked: free games (vs computer / private friend rooms)
  cost nothing; random ranked requires an entry (stake), gated by balance →
  routes to buy-coins when short
- Buy Coins page (CoinPack/getCoinPacks/buyCoins; mock credits now, real
  Zarinpal/IDPay TODO); TopBar coins → buy; lobby create-room is Free
- Friends: removed instant red ✕ delete; UserMinus → inline confirm before remove

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-04 16:28:59 +03:30
parent fe136f7ee4
commit cdb8d522dd
12 changed files with 257 additions and 38 deletions
+7 -2
View File
@@ -55,12 +55,17 @@ export function TopBar() {
>
<Gift className="size-4 text-gold-400" />
</button>
<div className="glass rounded-full px-3 py-1.5 flex items-center gap-1.5">
<button
onClick={() => go("buycoins")}
className="glass rounded-full px-3 py-1.5 flex items-center gap-1.5 hover:bg-navy-800/80 transition"
title={t("buy.title")}
>
<Coins className="size-4 text-gold-400" />
<span className="text-sm font-bold text-cream tabular-nums">
{profile.coins.toLocaleString()}
</span>
</div>
<span className="text-gold-400 text-sm leading-none font-bold">+</span>
</button>
</div>
</div>
);