В кастомизации профиля появился выбор любимой фракции из полного справочника (PickerSelect, все 12 фракций): фракция — свойство игрока, а не группы, поэтому список не зависит от подключённых дополнений. Дополнение показано в строке опции приглушённым текстом, снятие выбора — кнопкой «Убрать». В карточке статистики «Любимая фракция» теперь берётся из профиля, а «Основная фракция» переименована в «Чаще всего играет на» и печатает название в предложном падеже. Публичный профиль правок не потребовал — он использует ту же карточку и ту же схему. schema.d.ts пересобран с живого бэкенда (npm run gen:api). #17 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ps52xzuUXnWrJ5SRnEeaLk
33 lines
979 B
TypeScript
33 lines
979 B
TypeScript
import { useQuery } from "@tanstack/react-query";
|
|
|
|
import { api, unwrap } from "../api/client";
|
|
import { qk } from "../api/queryKeys";
|
|
|
|
export function useExpansions() {
|
|
return useQuery({
|
|
queryKey: qk.expansions,
|
|
queryFn: async () => unwrap(await api.GET("/api/expansions")),
|
|
});
|
|
}
|
|
|
|
// Весь справочник фракций (для выбора любимой в профиле — он не зависит от группы).
|
|
export function useFactions() {
|
|
return useQuery({
|
|
queryKey: qk.factions,
|
|
queryFn: async () => unwrap(await api.GET("/api/factions")),
|
|
});
|
|
}
|
|
|
|
export function useGroupFactions(groupId: number | null) {
|
|
return useQuery({
|
|
queryKey: groupId ? qk.groupFactions(groupId) : ["group", "none", "factions"],
|
|
enabled: groupId != null,
|
|
queryFn: async () =>
|
|
unwrap(
|
|
await api.GET("/api/groups/{group_id}/factions", {
|
|
params: { path: { group_id: groupId as number } },
|
|
}),
|
|
),
|
|
});
|
|
}
|