From 4af2712cc06fc7834013b9c43f09b68f74c2e09b Mon Sep 17 00:00:00 2001 From: herrrta <73949927+herrrta@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:08:15 -0500 Subject: [PATCH] Refresh jellyseerr page when media is requested - refetch details when media request is successful - fix key error on tags - chore: update bun.lockb --- .../jellyseerr/page.tsx | 22 ++++++---- bun.lockb | Bin 590056 -> 589960 bytes components/GenreTags.tsx | 2 +- components/series/JellyseerrSeasons.tsx | 38 +++++++++--------- hooks/useJellyseerr.ts | 3 +- 5 files changed, 37 insertions(+), 28 deletions(-) diff --git a/app/(auth)/(tabs)/(home,libraries,search,favorites)/jellyseerr/page.tsx b/app/(auth)/(tabs)/(home,libraries,search,favorites)/jellyseerr/page.tsx index 0be85e92..42edcb59 100644 --- a/app/(auth)/(tabs)/(home,libraries,search,favorites)/jellyseerr/page.tsx +++ b/app/(auth)/(tabs)/(home,libraries,search,favorites)/jellyseerr/page.tsx @@ -55,6 +55,7 @@ const Page: React.FC = () => { data: details, isFetching, isLoading, + refetch } = useQuery({ enabled: !!jellyseerrApi && !!result && !!result.id, queryKey: ["jellyseerr", "detail", result.mediaType, result.id], @@ -63,6 +64,7 @@ const Page: React.FC = () => { refetchOnReconnect: true, refetchOnWindowFocus: true, retryOnMount: true, + refetchInterval: 0, queryFn: async () => { return result.mediaType === MediaType.MOVIE ? jellyseerrApi?.movieDetails(result.id!!) @@ -94,15 +96,18 @@ const Page: React.FC = () => { }, [jellyseerrApi, details, result, issueType, issueMessage]); const request = useCallback( - () => + async () => { requestMedia(mediaTitle, { - mediaId: Number(result.id!!), - mediaType: result.mediaType!!, - tvdbId: details?.externalIds?.tvdbId, - seasons: (details as TvDetails)?.seasons - ?.filter?.((s) => s.seasonNumber !== 0) - ?.map?.((s) => s.seasonNumber), - }), + mediaId: Number(result.id!!), + mediaType: result.mediaType!!, + tvdbId: details?.externalIds?.tvdbId, + seasons: (details as TvDetails)?.seasons + ?.filter?.((s) => s.seasonNumber !== 0) + ?.map?.((s) => s.seasonNumber), + }, + refetch + ) + }, [details, result, requestMedia] ); @@ -205,6 +210,7 @@ const Page: React.FC = () => { isLoading={isLoading || isFetching} result={result as TvResult} details={details as TvDetails} + refetch={refetch} /> )} diff --git a/bun.lockb b/bun.lockb index 5712db3bd6ae099c9d606f610f47adb0b0f91ce4..89176e4bfac0991ed6ffa525d3b91a65bdf35f8d 100755 GIT binary patch delta 17066 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 E4|6GItpET3 delta 17184 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 h+|1qEEGfm6eJZKA%lj}XaHT#>Dqe8ihe = ({ tags, textClass = "text-x return ( {tags.map((tag, idx) => ( - + ))} diff --git a/components/series/JellyseerrSeasons.tsx b/components/series/JellyseerrSeasons.tsx index f0efa418..bcd9b336 100644 --- a/components/series/JellyseerrSeasons.tsx +++ b/components/series/JellyseerrSeasons.tsx @@ -15,11 +15,12 @@ import { Ionicons } from "@expo/vector-icons"; import { RoundButton } from "@/components/RoundButton"; import { useJellyseerr } from "@/hooks/useJellyseerr"; import { TvResult } from "@/utils/jellyseerr/server/models/Search"; -import { useQuery } from "@tanstack/react-query"; +import {QueryObserverResult, RefetchOptions, useQuery} from "@tanstack/react-query"; import { HorizontalScroll } from "@/components/common/HorrizontalScroll"; import { Image } from "expo-image"; import MediaRequest from "@/utils/jellyseerr/server/entity/MediaRequest"; import { Loader } from "../Loader"; +import {MovieDetails} from "@/utils/jellyseerr/server/models/Movie"; const JellyseerrSeasonEpisodes: React.FC<{ details: TvDetails; @@ -100,7 +101,8 @@ const JellyseerrSeasons: React.FC<{ isLoading: boolean; result?: TvResult; details?: TvDetails; -}> = ({ isLoading, result, details }) => { + refetch: (options?: (RefetchOptions | undefined)) => Promise>; +}> = ({ isLoading, result, details, refetch }) => { if (!details) return null; const { jellyseerrApi, requestMedia } = useJellyseerr(); @@ -168,6 +170,21 @@ const JellyseerrSeasons: React.FC<{ [requestAll] ); + const requestSeason = useCallback(async (canRequest: Boolean, seasonNumber: number) => { + if (canRequest) { + requestMedia( + `${result?.name!!}, Season ${seasonNumber}`, + { + mediaId: details.id, + mediaType: MediaType.TV, + tvdbId: details.externalIds?.tvdbId, + seasons: [seasonNumber], + }, + refetch + ) + } + }, [requestMedia]); + if (isLoading) return ( @@ -231,22 +248,7 @@ const JellyseerrSeasons: React.FC<{ return ( - requestMedia( - `${result?.name!!}, Season ${ - season.seasonNumber - }`, - { - mediaId: details.id, - mediaType: MediaType.TV, - tvdbId: details.externalIds?.tvdbId, - seasons: [season.seasonNumber], - } - ) - : undefined - } + onPress={() => requestSeason(canRequest, season.seasonNumber)} className={canRequest ? "bg-gray-700/40" : undefined} mediaStatus={ seasons?.find( diff --git a/hooks/useJellyseerr.ts b/hooks/useJellyseerr.ts index c0a8af22..8393798d 100644 --- a/hooks/useJellyseerr.ts +++ b/hooks/useJellyseerr.ts @@ -337,12 +337,13 @@ export const useJellyseerr = () => { }, []); const requestMedia = useCallback( - (title: string, request: MediaRequestBody) => { + (title: string, request: MediaRequestBody, onSuccess?: () => void) => { jellyseerrApi?.request?.(request)?.then((mediaRequest) => { switch (mediaRequest.status) { case MediaRequestStatus.PENDING: case MediaRequestStatus.APPROVED: toast.success(`Requested ${title}!`); + onSuccess?.() break; case MediaRequestStatus.DECLINED: toast.error(`You don't have permission to request!`);