В «Аккаунте» появился блок «История игр» с двумя тумблерами — «Только лучшая партия» и «Подробные карточки»; выбор уходит в профиль, поэтому переживает перезаход и другое устройство. Новый компонент MatchHistory: подробный режим переиспользует список партий группы (MatchListView со всеми участниками), компактный рисует строку с результатом самого игрока — место, фракция, дата и длительность. Публичный профиль показывает ту же историю в режиме владельца и без контролов: страница намеренно read-only. schema.d.ts пересобран с живого бэкенда (npm run gen:api). #1 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
export const qk = {
|
|
me: ["me"] as const,
|
|
adminMe: ["adminMe"] as const,
|
|
home: ["home"] as const,
|
|
leaderboard: ["leaderboard"] as const,
|
|
expansions: ["expansions"] as const,
|
|
factions: ["factions"] as const,
|
|
myStats: ["myStats"] as const,
|
|
publicProfile: (id: number) => ["publicProfile", id] as const,
|
|
userMatches: (id: number) => ["userMatches", id] as const,
|
|
userSearch: (q: string, limit: number) => ["userSearch", q, limit] as const,
|
|
groups: ["groups"] as const,
|
|
group: (id: number) => ["group", id] as const,
|
|
groupFactions: (id: number) => ["group", id, "factions"] as const,
|
|
groupMembers: (id: number) => ["group", id, "members"] as const,
|
|
groupMatches: (id: number) => ["group", id, "matches"] as const,
|
|
groupStats: (id: number) => ["group", id, "stats"] as const,
|
|
match: (id: number) => ["match", id] as const,
|
|
authConfig: ["authConfig"] as const,
|
|
invitations: ["invitations"] as const,
|
|
notifications: ["notifications"] as const,
|
|
devUsers: ["devUsers"] as const,
|
|
adminUsers: ["adminUsers"] as const,
|
|
adminGroups: ["adminGroups"] as const,
|
|
adminMatches: ["adminMatches"] as const,
|
|
adminLogs: ["adminLogs"] as const,
|
|
adminAchievements: ["adminAchievements"] as const,
|
|
};
|