49 lines
1.6 KiB
JavaScript
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
|
|
};
|
|
}
|