From ac05a7b67954610e97b9c39ec53cf932caeda103 Mon Sep 17 00:00:00 2001 From: "soroush.asadi" Date: Thu, 11 Jun 2026 10:35:56 +0330 Subject: [PATCH] UNO refactor (stage 2): responsive list/grid screens + chat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make all menu screens use the width on desktop/landscape and the UNO panels: - Shop item grid 3→up to 6 cols; BuyCoins packs 2→4 cols on lg. - Lobby: panel league pick (2-col) + 2-col CTA buttons. - Achievements / Notifications / Leaderboard / Friends lists → responsive grids (1 col mobile, 2 cols on lg); glass→panel on section containers. - Chat: centered max-w-3xl column on desktop, green send button. All responsive for mobile + desktop. tsc + build clean. Co-Authored-By: Claude Opus 4.8 --- src/components/screens/AchievementsScreen.tsx | 4 ++-- src/components/screens/BuyCoinsScreen.tsx | 2 +- src/components/screens/ChatScreen.tsx | 6 +++-- src/components/screens/FriendsScreen.tsx | 22 +++++++++++++------ src/components/screens/LeaderboardScreen.tsx | 4 ++-- .../screens/NotificationsScreen.tsx | 2 +- src/components/screens/OnlineLobbyScreen.tsx | 10 ++++----- src/components/screens/ShopScreen.tsx | 4 ++-- 8 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/components/screens/AchievementsScreen.tsx b/src/components/screens/AchievementsScreen.tsx index 34fdb86..ac173ea 100644 --- a/src/components/screens/AchievementsScreen.tsx +++ b/src/components/screens/AchievementsScreen.tsx @@ -36,7 +36,7 @@ export function AchievementsScreen() { {/* summary */} -
+
{/* achievement list */} -
+
{list.map((a, i) => { const prog = achievementProgress(a, stats, profile.rating, profile.level); const unlocked = profile.unlocked.includes(a.id) || prog >= a.goal; diff --git a/src/components/screens/BuyCoinsScreen.tsx b/src/components/screens/BuyCoinsScreen.tsx index d6a01ae..49f1e46 100644 --- a/src/components/screens/BuyCoinsScreen.tsx +++ b/src/components/screens/BuyCoinsScreen.tsx @@ -128,7 +128,7 @@ export function BuyCoinsScreen() {
{msg}
)} -
+
{packs.map((p) => ( +
); } diff --git a/src/components/screens/FriendsScreen.tsx b/src/components/screens/FriendsScreen.tsx index 31024e4..29b71cc 100644 --- a/src/components/screens/FriendsScreen.tsx +++ b/src/components/screens/FriendsScreen.tsx @@ -54,7 +54,7 @@ export function FriendsScreen() { {/* tabs */} -
+
setTab("friends")} icon={} label={t("social.tabFriends")} badge={requests.length} /> setTab("discover")} icon={} label={t("social.tabDiscover")} /> setTab("messages")} icon={} label={t("social.tabMessages")} /> @@ -123,7 +123,7 @@ function FriendsTab() { {requests.length > 0 && (

{t("friends.requests")}

-
+
{requests.map((r) => (
)} -
- {friends.length === 0 && } text={t("friends.empty")} />} +
+ {friends.length === 0 && ( +
+ } text={t("friends.empty")} /> +
+ )} {friends.map((f: Friend) => (