Убрать метку «идёт» из блока незавершённых партий

Блок озаглавлен «Незавершённые партии», а каждая карточка заканчивается
кнопкой «Завершить» — бейдж дублировал и то и другое; на странице группы,
где название группы не показывается, он вдобавок висел в строке один.

Заодно снято мёртвое ветвление в MatchListView: незавершённые партии туда
не попадают ни из группы (там отдельный блок), ни из истории профиля
(бэкенд фильтрует по status="finished"). На странице самой партии бейдж
остаётся — там он единственный указатель статуса.

#26

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186Fk74jkkszahEHSjBzTjD
This commit is contained in:
2026-09-09 14:39:16 +03:00
co-authored by Claude Opus 5
parent f031bd5e89
commit d0f01a4cc2
2 changed files with 7 additions and 12 deletions
@@ -29,10 +29,7 @@ export function InProgressMatches({
style={{ margin: 0, width: "100%", textAlign: "left" }}
>
<div style={{ minWidth: 0 }}>
<div className="row" style={{ gap: 8 }}>
{showGroupName && <b>{m.group_name}</b>}
<span className="badge badge-live">идёт</span>
</div>
{showGroupName && <b>{m.group_name}</b>}
<div className="muted small">
{formatTime(m.started_at)} · {m.player_count}{" "}
{plural(m.player_count, "игрок", "игрока", "игроков")}
+6 -8
View File
@@ -4,6 +4,9 @@ import { formatDate, formatDuration } from "../domain/format";
import { winReasonLabel } from "../domain/winReasons";
import type { MatchListItem } from "../domain/types";
/** Список ЗАВЕРШЁННЫХ партий. Незавершённые сюда не попадают: группа отдаёт их
* отдельным блоком (InProgressMatches), а история профиля приходит с бэкенда уже
* отфильтрованной по status="finished". */
export function MatchListView({ items }: { items: MatchListItem[] }) {
const navigate = useNavigate();
if (items.length === 0) return <div className="muted small">Партий пока нет.</div>;
@@ -11,7 +14,6 @@ export function MatchListView({ items }: { items: MatchListItem[] }) {
return (
<div className="stack">
{items.map((m) => {
const inProgress = m.status === "in_progress";
const sorted = [...m.participants].sort((a, b) => (a.place ?? 99) - (b.place ?? 99));
return (
<button
@@ -22,13 +24,9 @@ export function MatchListView({ items }: { items: MatchListItem[] }) {
>
<div className="row-between">
<span className="muted small">{formatDate(m.played_at)}</span>
{inProgress ? (
<span className="badge badge-live">идёт</span>
) : (
<span className="muted small">
{formatDuration(m.duration_minutes)} · {winReasonLabel(m.win_reason)}
</span>
)}
<span className="muted small">
{formatDuration(m.duration_minutes)} · {winReasonLabel(m.win_reason)}
</span>
</div>
<div className="stack" style={{ marginTop: 6, gap: 4 }}>
{/* Ники здесь — просто текст: карточка целиком ведёт в партию,