Add frontend API client and TanStack Query hooks

Install @tanstack/react-query, create a fetch-based API client with typed
functions for all endpoints, and add query/mutation hooks for games, pokemon,
runs, and encounters. Includes Vite dev proxy for /api and QueryClientProvider
setup.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Julian Tabel
2026-02-05 15:09:14 +01:00
parent 13e90eb308
commit 7c65775c8b
15 changed files with 371 additions and 19 deletions

View File

@@ -29,6 +29,8 @@ export interface RouteEncounter {
pokemonId: number
encounterMethod: string
encounterRate: number
minLevel: number
maxLevel: number
}
export type EncounterStatus = 'caught' | 'fainted' | 'missed'
@@ -57,6 +59,42 @@ export interface NuzlockeRun {
completedAt: string | null
}
export interface RunDetail extends NuzlockeRun {
game: Game
encounters: EncounterDetail[]
}
export interface EncounterDetail extends Encounter {
pokemon: Pokemon
route: Route
}
export interface CreateRunInput {
gameId: number
name: string
rules?: NuzlockeRules
}
export interface UpdateRunInput {
name?: string
status?: RunStatus
rules?: NuzlockeRules
}
export interface CreateEncounterInput {
routeId: number
pokemonId: number
nickname?: string
status: EncounterStatus
catchLevel?: number
}
export interface UpdateEncounterInput {
nickname?: string
status?: EncounterStatus
faintLevel?: number
}
// Re-export for convenience
import type { NuzlockeRules } from './rules'
export type { NuzlockeRules }