mirror of
https://github.com/streamyfin/streamyfin.git
synced 2025-08-20 18:37:18 +02:00
Co-authored-by: lostb1t <coding-mosses0z@icloud.com> Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com> Co-authored-by: Gauvain <68083474+Gauvino@users.noreply.github.com> Co-authored-by: Gauvino <uruknarb20@gmail.com> Co-authored-by: storm1er <le.storm1er@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Chris <182387676+whoopsi-daisy@users.noreply.github.com> Co-authored-by: arch-fan <55891793+arch-fan@users.noreply.github.com> Co-authored-by: Alex Kim <alexkim@Alexs-MacBook-Pro.local>
32 lines
967 B
TypeScript
32 lines
967 B
TypeScript
import { getUserLibraryApi } from "@jellyfin/sdk/lib/utils/api";
|
|
import { useQuery } from "@tanstack/react-query";
|
|
import { useAtom } from "jotai";
|
|
import { useDownload } from "@/providers/DownloadProvider";
|
|
import { apiAtom, userAtom } from "@/providers/JellyfinProvider";
|
|
|
|
export const useItemQuery = (itemId: string, isOffline: boolean) => {
|
|
const [api] = useAtom(apiAtom);
|
|
const [user] = useAtom(userAtom);
|
|
const { getDownloadedItemById } = useDownload();
|
|
|
|
return useQuery({
|
|
queryKey: ["item", itemId],
|
|
queryFn: async () => {
|
|
if (isOffline) {
|
|
return getDownloadedItemById(itemId)?.item;
|
|
}
|
|
if (!api || !user || !itemId) return null;
|
|
const res = await getUserLibraryApi(api).getItem({
|
|
itemId: itemId,
|
|
userId: user?.Id,
|
|
});
|
|
return res.data;
|
|
},
|
|
staleTime: 0,
|
|
refetchOnMount: true,
|
|
refetchOnWindowFocus: true,
|
|
refetchOnReconnect: true,
|
|
networkMode: "always",
|
|
});
|
|
};
|