diff --git a/k-tv-frontend/hooks/use-library-seasons.ts b/k-tv-frontend/hooks/use-library-seasons.ts new file mode 100644 index 0000000..e1f686e --- /dev/null +++ b/k-tv-frontend/hooks/use-library-seasons.ts @@ -0,0 +1,14 @@ +import { useQuery } from "@tanstack/react-query"; +import { api } from "@/lib/api"; +import { useAuthContext } from "@/context/auth-context"; +import type { SeasonSummary } from "@/lib/types"; + +export function useLibrarySeasons(seriesName: string | null, provider?: string) { + const { token } = useAuthContext(); + return useQuery({ + queryKey: ["library", "seasons", seriesName, provider], + queryFn: () => api.library.seasons(token!, seriesName!, provider), + enabled: !!token && !!seriesName, + staleTime: 30_000, + }); +} diff --git a/k-tv-frontend/hooks/use-library-shows.ts b/k-tv-frontend/hooks/use-library-shows.ts new file mode 100644 index 0000000..672c36c --- /dev/null +++ b/k-tv-frontend/hooks/use-library-shows.ts @@ -0,0 +1,20 @@ +import { useQuery } from "@tanstack/react-query"; +import { api } from "@/lib/api"; +import { useAuthContext } from "@/context/auth-context"; +import type { ShowSummary } from "@/lib/types"; + +export interface ShowsFilter { + q?: string; + provider?: string; + genres?: string[]; +} + +export function useLibraryShows(filter: ShowsFilter = {}) { + const { token } = useAuthContext(); + return useQuery({ + queryKey: ["library", "shows", filter], + queryFn: () => api.library.shows(token!, filter), + enabled: !!token, + staleTime: 30_000, + }); +}