From 7b4a013faea9caca0de82b1e8c758fefc6086471 Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Tue, 24 Jun 2025 11:39:24 -0600 Subject: [PATCH] fix trakt if it doesnt return valid ids --- src/pages/discover/hooks/useDiscoverMedia.ts | 33 ++++++++++++++------ 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/pages/discover/hooks/useDiscoverMedia.ts b/src/pages/discover/hooks/useDiscoverMedia.ts index d5fabed1..f18eadfd 100644 --- a/src/pages/discover/hooks/useDiscoverMedia.ts +++ b/src/pages/discover/hooks/useDiscoverMedia.ts @@ -350,17 +350,32 @@ export function useDiscoverMedia({ // Fetch details for each TMDB ID const mediaPromises = tmdbIds.map(async (tmdbId: number) => { const endpoint = `/${mediaType}/${tmdbId}`; - const data = await get(endpoint, { - api_key: conf().TMDB_READ_API_KEY, - language: formattedLanguage, - }); - return { - ...data, - type: mediaType === "movie" ? "movie" : "show", - }; + try { + const data = await get(endpoint, { + api_key: conf().TMDB_READ_API_KEY, + language: formattedLanguage, + }); + return { + ...data, + type: mediaType === "movie" ? "movie" : "show", + }; + } catch (err) { + console.error(`Error fetching details for TMDB ID ${tmdbId}:`, err); + return null; // Return null for failed items + } }); - const results = await Promise.all(mediaPromises); + // Use Promise.allSettled to handle failed requests gracefully + const settledResults = await Promise.allSettled(mediaPromises); + + // Filter out failed requests and nulls + const results = settledResults + .filter( + (result): result is PromiseFulfilledResult => + result.status === "fulfilled" && result.value !== null, + ) + .map((result) => result.value); + return { results, hasMore: hasMoreResults,