feat: intégration de @tanstack/vue-query pour la gestion des requêtes dans l'application Vue, ajout de nouveaux composables pour les chapitres et les détails des mangas, et mise à jour du store pour une meilleure gestion des états de chargement et d'erreur
This commit is contained in:
parent
fd2d3cd640
commit
71242433e6
@@ -0,0 +1,23 @@
|
||||
import { computed } from 'vue';
|
||||
import { useQuery } from '@tanstack/vue-query';
|
||||
import { ApiMangaRepository } from '../../infrastructure/api/apiMangaRepository';
|
||||
|
||||
export function useMangaChapters(mangaId) {
|
||||
const mangaRepository = new ApiMangaRepository();
|
||||
|
||||
const query = useQuery({
|
||||
queryKey: ['manga', mangaId, 'chapters'],
|
||||
queryFn: async () => {
|
||||
if (!mangaId.value) {
|
||||
return Promise.resolve([]); // Retourne un tableau vide si pas d'ID
|
||||
}
|
||||
const response = await mangaRepository.getChapters(mangaId.value);
|
||||
// Assure de toujours retourner un tableau
|
||||
return Array.isArray(response) ? response : response?.items ?? [];
|
||||
},
|
||||
enabled: computed(() => !!mangaId.value)
|
||||
});
|
||||
|
||||
// Retourne le résultat de useQuery (contenant data, isLoading, etc.)
|
||||
return query;
|
||||
}
|
||||
Reference in New Issue
Block a user