UI: общие классы кнопок и бейджей вместо дублирующихся inline-стилей

- .btn-block в global.css заменяет 9 повторов style={{width:100%}};
- .badge-live — единый бейдж «идёт» (3 копии inline-стиля);
- незавершённые партии на главной используют стандартный .card,
  как список партий (была единственная карточка на самодельных стилях);
- в списке партий добавлен бейдж 🎲 случайной фракции — как на странице
  партии (раньше в списке он терялся);
- переключатель групп: кнопка «+» подписана «+ Создать группу»
  (по образцу «+ Добавить игрока»), убран пустой span.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 17:45:35 +03:00
co-authored by Claude Fable 5
parent e38555b74d
commit ca96073ccf
11 changed files with 22 additions and 38 deletions
+3 -8
View File
@@ -122,7 +122,7 @@ export function MatchDetailPage() {
<div className="row-between">
<h2 style={{ margin: 0 }}>{formatDate(match.played_at)}</h2>
{inProgress ? (
<span className="badge" style={{ color: "var(--accent-2)" }}>идёт</span>
<span className="badge badge-live">идёт</span>
) : (
<span className="muted small">{formatDuration(match.duration_minutes)}</span>
)}
@@ -261,8 +261,7 @@ export function MatchDetailPage() {
{error && <p className="error-text">{error}</p>}
<button
className="btn btn-primary"
style={{ width: "100%" }}
className="btn btn-primary btn-block"
onClick={submitFinish}
disabled={finish.isPending}
>
@@ -274,11 +273,7 @@ export function MatchDetailPage() {
)}
{canModify && (
<button
className="btn btn-danger"
style={{ width: "100%" }}
onClick={() => setConfirmRemove(true)}
>
<button className="btn btn-danger btn-block" onClick={() => setConfirmRemove(true)}>
{inProgress ? "Отменить партию" : "Удалить партию"}
</button>
)}