diff --git a/src/components/manga/useRefreshManga.ts b/src/components/manga/useRefreshManga.ts index 4f622e26..36eb03f5 100644 --- a/src/components/manga/useRefreshManga.ts +++ b/src/components/manga/useRefreshManga.ts @@ -11,14 +11,18 @@ import { requestManager } from '@/lib/requests/RequestManager.ts'; export const useRefreshManga = (mangaId: string) => { const [fetchingOnline, setFetchingOnline] = useState(false); + const [error, setError] = useState(null); const handleRefresh = useCallback(async () => { setFetchingOnline(true); + setError(null); await Promise.all([ requestManager.getMangaFetch(mangaId, { awaitRefetchQueries: true }).response, requestManager.getMangaChaptersFetch(mangaId, { awaitRefetchQueries: true }).response, - ]).finally(() => setFetchingOnline(false)); + ]) + .catch((e) => setError(e)) + .finally(() => setFetchingOnline(false)); }, [mangaId]); - return [handleRefresh, { loading: fetchingOnline }] as const; + return [handleRefresh, { loading: fetchingOnline, error }] as const; }; diff --git a/src/screens/Manga.tsx b/src/screens/Manga.tsx index 8ced60c3..c7af8f56 100644 --- a/src/screens/Manga.tsx +++ b/src/screens/Manga.tsx @@ -32,13 +32,15 @@ export const Manga: React.FC = () => { const { id } = useParams<{ id: string }>(); const autofetchedRef = useRef(false); - const { data, error, loading: isLoading, networkStatus, refetch } = requestManager.useGetManga(id); + const { data, error: mangaError, loading: isLoading, networkStatus, refetch } = requestManager.useGetManga(id); const isValidating = isNetworkRequestInFlight(networkStatus); const manga = data?.manga; - const [refresh, { loading: refreshing }] = useRefreshManga(id); + const [refresh, { loading: refreshing, error: refreshError }] = useRefreshManga(id); useSetDefaultBackTo('library'); + const error = mangaError ?? refreshError; + useEffect(() => { if (manga == null) return;