История игр в профиле обрезается на 20 партиях без подсказки #30

Closed
opened 2026-09-09 15:31:02 +03:00 by Agent · 1 comment
Collaborator

useUserMatches (frontend/src/hooks/users.ts:20) запрашивает историю без limit/offset, поэтому бэкенд отдаёт дефолтные 20 записей (backend/app/routers/users.py:172). AccountPage и PublicProfilePage рисуют items и игнорируют total, который приходит в том же ответе.

Что видит игрок: у кого сыграно 40 партий, под заголовком «История игр» показываются только 20 последних — без счётчика, без кнопки «показать ещё» и без намёка, что список обрезан.

Почему не поправил в рамках ревью #8: это витрина, а не дефект логики, и нужен ваш выбор:

  1. кнопка «Показать ещё» с догрузкой страницами;
  2. просто показать «20 из 40» в заголовке блока;
  3. поднять лимит запроса и оставить один экран.

Обнаружено при работе над #8.

`useUserMatches` (`frontend/src/hooks/users.ts:20`) запрашивает историю без `limit`/`offset`, поэтому бэкенд отдаёт дефолтные 20 записей (`backend/app/routers/users.py:172`). `AccountPage` и `PublicProfilePage` рисуют `items` и игнорируют `total`, который приходит в том же ответе. **Что видит игрок:** у кого сыграно 40 партий, под заголовком «История игр» показываются только 20 последних — без счётчика, без кнопки «показать ещё» и без намёка, что список обрезан. **Почему не поправил в рамках ревью #8:** это витрина, а не дефект логики, и нужен ваш выбор: 1. кнопка «Показать ещё» с догрузкой страницами; 2. просто показать «20 из 40» в заголовке блока; 3. поднять лимит запроса и оставить один экран. Обнаружено при работе над #8.
Agent added this to the v1.35 - промежуточная полировка версии 1.3 milestone 2026-09-09 15:31:02 +03:00
NotBigGhost added the Kind/Enhancement label 2026-09-09 19:14:58 +03:00
Agent self-assigned this 2026-09-09 20:26:00 +03:00
Agent added the
Reviewed
Confirmed
1
label 2026-09-09 20:26:01 +03:00
Agent added the
Status
In Review
label 2026-09-09 20:27:57 +03:00
Author
Collaborator

Работа выполнена, открыт PR: #42

Итог: история грузится страницами по 20, под списком — «Показать ещё» без счётчика рядом; общее число партий вынесено в шапку профиля к нику, и в своём, и в чужом. Кнопка живёт в самом компоненте истории, поэтому работает в обоих профилях и обоих режимах подробности.

Две детали, которые повлияли на решение: постраничная загрузка вместо «поднять лимит» — у эндпоинта потолок 100, и обрезка вернулась бы на 101-й партии; счётчик берётся из статистики, а не из total истории — в режиме «только лучшая партия» total равен единице и счётчик врал бы.

Проверки: npm run build — зелёный; pytest — 91 passed (бэкенд не менялся). Ручного прогона в dev не делал — стенд был занят.

Статус: Status/In Review
Осталось за вами: ревью и мёрж PR — задача закроется автоматически. Дальше по вехе v1.35 остаются #32 и #33.

Работа выполнена, открыт PR: https://gitea.arseniev.info/NotBigGhost/ForbiddenStarsApp/pulls/42 **Итог:** история грузится страницами по 20, под списком — «Показать ещё» без счётчика рядом; общее число партий вынесено в шапку профиля к нику, и в своём, и в чужом. Кнопка живёт в самом компоненте истории, поэтому работает в обоих профилях и обоих режимах подробности. Две детали, которые повлияли на решение: постраничная загрузка вместо «поднять лимит» — у эндпоинта потолок 100, и обрезка вернулась бы на 101-й партии; счётчик берётся из статистики, а не из `total` истории — в режиме «только лучшая партия» `total` равен единице и счётчик врал бы. **Проверки:** `npm run build` — зелёный; `pytest` — 91 passed (бэкенд не менялся). Ручного прогона в dev не делал — стенд был занят. **Статус:** `Status/In Review` **Осталось за вами:** ревью и мёрж PR — задача закроется автоматически. Дальше по вехе v1.35 остаются #32 и #33.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: NotBigGhost/ForbiddenStarsApp#30