Add drag-and-drop boss reordering and new feature beans

Adds boss battle reorder API endpoint with two-phase order update to
avoid unique constraint violations. Includes frontend mutation hook
and API client. Also adds draft beans for progression dividers and
conditional boss battle teams features.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-08 14:58:49 +01:00
parent a4f814e66e
commit 1bf37a6bd9
6 changed files with 119 additions and 2 deletions

View File

@@ -16,6 +16,7 @@ import type {
CreateBossBattleInput,
UpdateBossBattleInput,
BossPokemonInput,
BossReorderItem,
} from '../types'
// --- Queries ---
@@ -287,6 +288,18 @@ export function useUpdateBossBattle(gameId: number) {
})
}
export function useReorderBosses(gameId: number) {
const qc = useQueryClient()
return useMutation({
mutationFn: (bosses: BossReorderItem[]) => adminApi.reorderBosses(gameId, bosses),
onSuccess: () => {
qc.invalidateQueries({ queryKey: ['games', gameId, 'bosses'] })
toast.success('Bosses reordered')
},
onError: (err) => toast.error(`Failed to reorder bosses: ${err.message}`),
})
}
export function useDeleteBossBattle(gameId: number) {
const qc = useQueryClient()
return useMutation({