From fc1b1fd9123468e1d4c1cfcf3e5aa7e77698be57 Mon Sep 17 00:00:00 2001 From: NotBigGhost Date: Wed, 15 Jul 2026 17:28:21 +0300 Subject: [PATCH] =?UTF-8?q?UI:=20=D0=B2=20=D1=82=D0=BE=D0=BF=D0=B5=20?= =?UTF-8?q?=D0=B8=D0=B3=D1=80=D0=BE=D0=BA=D0=BE=D0=B2=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B3=D0=BB=D0=B0=D0=B2=D0=BD=D0=BE=D0=B9=20=D0=BD=D0=B8=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B5=D0=BA=D0=BB=D0=B8=D0=BA=D0=B0=D0=B1=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Карточка топа целиком ведёт в общую статистику — вложенные ссылки на профили конфликтовали с этим переходом. У Leaderboard появился флаг profileLinks: на главной выключен, в «Списке игроков» группы (карточка никуда не ведёт) строки-ссылки остаются, как и в общей статистике. Co-Authored-By: Claude Fable 5 --- frontend/src/components/Leaderboard.tsx | 32 ++++++++++++++++++------- frontend/src/pages/HomePage.tsx | 6 ++--- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/frontend/src/components/Leaderboard.tsx b/frontend/src/components/Leaderboard.tsx index a7c263a..7e513b1 100644 --- a/frontend/src/components/Leaderboard.tsx +++ b/frontend/src/components/Leaderboard.tsx @@ -6,11 +6,17 @@ function pct(v: number | null | undefined): string { return v == null ? "—" : `${Math.round(v * 100)}%`; } -function Row({ entry, provisional }: { entry: LeaderboardEntry; provisional?: boolean }) { - return ( - // Вся строка — ссылка на профиль (на главной карточка-обёртка ведёт в общую - // статистику, а клик по строке игрока — в его профиль). - +function Row({ + entry, + provisional, + profileLinks, +}: { + entry: LeaderboardEntry; + provisional?: boolean; + profileLinks: boolean; +}) { + const content = ( + <>
{entry.rank ?? "—"}
@@ -24,6 +30,14 @@ function Row({ entry, provisional }: { entry: LeaderboardEntry; provisional?: bo
{entry.score ?? "—"}
+ + ); + // Строка-ссылка на профиль — только там, где сама карточка никуда не ведёт + // (на главной карточка топа целиком открывает общую статистику). + if (!profileLinks) return
{content}
; + return ( + + {content} ); } @@ -32,10 +46,12 @@ export function Leaderboard({ entries, provisional, inactive, + profileLinks = true, }: { entries: LeaderboardEntry[]; provisional?: LeaderboardEntry[]; inactive?: LeaderboardEntry[]; + profileLinks?: boolean; }) { const empty = entries.length === 0 && !provisional?.length && !inactive?.length; @@ -45,7 +61,7 @@ export function Leaderboard({ return (
{entries.map((e) => ( - + ))} {provisional && provisional.length > 0 && ( <> @@ -53,7 +69,7 @@ export function Leaderboard({ Новички (мало игр)
{provisional.map((e) => ( - + ))} )} @@ -63,7 +79,7 @@ export function Leaderboard({ Ещё не играли {inactive.map((e) => ( - + ))} )} diff --git a/frontend/src/pages/HomePage.tsx b/frontend/src/pages/HomePage.tsx index 89aad8a..016ed05 100644 --- a/frontend/src/pages/HomePage.tsx +++ b/frontend/src/pages/HomePage.tsx @@ -15,15 +15,15 @@ export function HomePage() { return (
- {/* Карточка кликабельна целиком → общая статистика; клик по нику внутри - ведёт в профиль (Leaderboard останавливает всплытие на ссылках ников). */} + {/* Карточка кликабельна целиком → общая статистика; ники внутри — просто + текст, ссылки на профили есть в самой общей статистике. */}
navigate("/stats")}>

Топ игроков

Вся статистика →
- +