Files
Mangarr/assets/vue/app/domain/manga/presentation/composables/useMangaRefresh.js

49 lines
1.6 KiB
JavaScript

import { ref } from 'vue';
import { useNotifications } from '../../../../shared/composables/useNotifications';
import { useMangaStore } from '../../application/store/mangaStore';
export function useMangaRefresh() {
const mangaStore = useMangaStore();
const { showSuccess, showError } = useNotifications();
const isRefreshing = ref(false);
const refreshError = ref(null);
const refreshMetadata = async (mangaId) => {
if (isRefreshing.value || !mangaId) return;
isRefreshing.value = true;
refreshError.value = null;
try {
console.log(`Début du refresh des métadonnées pour le manga ${mangaId}`);
// Appel à l'endpoint de refresh des chapitres
await mangaStore.refreshMangaChapters(mangaId);
showSuccess('Refresh des métadonnées lancé avec succès. Les nouveaux chapitres apparaîtront sous peu.');
console.log('Refresh des métadonnées déclenché avec succès');
return true;
} catch (error) {
console.error('Erreur lors du refresh des métadonnées:', error);
refreshError.value = error.message || 'Erreur lors du refresh des métadonnées';
showError(`Erreur lors du refresh: ${error.message || 'Une erreur inattendue est survenue'}`);
throw error;
} finally {
isRefreshing.value = false;
}
};
const clearError = () => {
refreshError.value = null;
};
return {
isRefreshing,
refreshError,
refreshMetadata,
clearError
};
}