Improve admin panel UX with toasts, evolution CRUD, sorting, drag-and-drop, and responsive layout
Add sonner toast notifications to all mutations, evolution management backend (CRUD endpoints with search/pagination) and frontend (form modal with pokemon selector, paginated list page), sortable AdminTable columns (Region/Gen/Year on Games), drag-and-drop route reordering via @dnd-kit, skeleton loading states, card-styled table wrappers, and responsive mobile nav in AdminLayout. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,10 @@ import type {
|
||||
PaginatedPokemon,
|
||||
CreateRouteEncounterInput,
|
||||
UpdateRouteEncounterInput,
|
||||
EvolutionAdmin,
|
||||
PaginatedEvolutions,
|
||||
CreateEvolutionInput,
|
||||
UpdateEvolutionInput,
|
||||
} from '../types'
|
||||
|
||||
// Games
|
||||
@@ -61,6 +65,24 @@ export const deletePokemon = (id: number) =>
|
||||
export const bulkImportPokemon = (items: Array<{ nationalDex: number; name: string; types: string[]; spriteUrl?: string | null }>) =>
|
||||
api.post<BulkImportResult>('/pokemon/bulk-import', items)
|
||||
|
||||
// Evolutions
|
||||
export const listEvolutions = (search?: string, limit = 50, offset = 0) => {
|
||||
const params = new URLSearchParams()
|
||||
if (search) params.set('search', search)
|
||||
params.set('limit', String(limit))
|
||||
params.set('offset', String(offset))
|
||||
return api.get<PaginatedEvolutions>(`/evolutions?${params}`)
|
||||
}
|
||||
|
||||
export const createEvolution = (data: CreateEvolutionInput) =>
|
||||
api.post<EvolutionAdmin>('/evolutions', data)
|
||||
|
||||
export const updateEvolution = (id: number, data: UpdateEvolutionInput) =>
|
||||
api.put<EvolutionAdmin>(`/evolutions/${id}`, data)
|
||||
|
||||
export const deleteEvolution = (id: number) =>
|
||||
api.del(`/evolutions/${id}`)
|
||||
|
||||
// Route Encounters
|
||||
export const addRouteEncounter = (routeId: number, data: CreateRouteEncounterInput) =>
|
||||
api.post<RouteEncounterDetail>(`/routes/${routeId}/pokemon`, data)
|
||||
|
||||
Reference in New Issue
Block a user