Files
nuzlocke-tracker/frontend/src/hooks/usePokemon.ts

40 lines
1023 B
TypeScript
Raw Normal View History

import { useQuery } from '@tanstack/react-query'
import {
getPokemon,
fetchPokemonFamilies,
fetchPokemonEncounterLocations,
fetchPokemonEvolutionChain,
} from '../api/pokemon'
export function usePokemon(id: number | null) {
return useQuery({
queryKey: ['pokemon', id],
queryFn: () => getPokemon(id!),
enabled: id !== null,
})
}
export function usePokemonFamilies() {
return useQuery({
queryKey: ['pokemon', 'families'],
queryFn: fetchPokemonFamilies,
staleTime: Infinity,
})
}
export function usePokemonEncounterLocations(pokemonId: number | null) {
return useQuery({
queryKey: ['pokemon', pokemonId, 'encounter-locations'],
queryFn: () => fetchPokemonEncounterLocations(pokemonId!),
enabled: pokemonId !== null,
})
}
export function usePokemonEvolutionChain(pokemonId: number | null) {
return useQuery({
queryKey: ['pokemon', pokemonId, 'evolution-chain'],
queryFn: () => fetchPokemonEvolutionChain(pokemonId!),
enabled: pokemonId !== null,
})
}