From 06877f4339b3e1a4eed075429e52cbc042441148 Mon Sep 17 00:00:00 2001 From: Fredrik Burmester Date: Thu, 22 Aug 2024 14:28:39 +0200 Subject: [PATCH] fix: #97 --- app/(auth)/(tabs)/libraries/[libraryId].tsx | 16 ++++++---------- components/filters/FilterButton.tsx | 14 +++++++++----- components/filters/FilterSheet.tsx | 5 ++--- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/app/(auth)/(tabs)/libraries/[libraryId].tsx b/app/(auth)/(tabs)/libraries/[libraryId].tsx index 33340ce8..b2acf750 100644 --- a/app/(auth)/(tabs)/libraries/[libraryId].tsx +++ b/app/(auth)/(tabs)/libraries/[libraryId].tsx @@ -117,6 +117,8 @@ const page: React.FC = () => { includeItemTypes.push("MusicAlbum"); break; default: + includeItemTypes.push("Movie"); + includeItemTypes.push("Series"); break; } @@ -155,7 +157,7 @@ const page: React.FC = () => { const { data, isFetching, fetchNextPage } = useInfiniteQuery({ queryKey: [ "library-items", - library, + libraryId, selectedGenres, selectedYears, selectedTags, @@ -187,15 +189,11 @@ const page: React.FC = () => { enabled: !!api && !!user?.Id && !!library, }); - const type = useMemo(() => { - return data?.pages.flatMap((page) => page?.Items)[0]?.Type || null; - }, [data]); - const flatData = useMemo(() => { return data?.pages.flatMap((p) => p?.Items) || []; }, [data]); - if (!library || !library.CollectionType) return null; + if (!library) return null; return ( { api ).getQueryFiltersLegacy({ userId: user?.Id, - includeItemTypes: type ? [type] : [], parentId: libraryId, }); + console.log("Resukt:", response.data.Genres || "Nothing..."); return response.data.Genres || []; }} set={setSelectedGenres} @@ -243,7 +241,6 @@ const page: React.FC = () => { api ).getQueryFiltersLegacy({ userId: user?.Id, - includeItemTypes: type ? [type] : [], parentId: libraryId, }); return response.data.Tags || []; @@ -265,7 +262,6 @@ const page: React.FC = () => { api ).getQueryFiltersLegacy({ userId: user?.Id, - includeItemTypes: type ? [type] : [], parentId: libraryId, }); return ( @@ -318,7 +314,7 @@ const page: React.FC = () => { /> - {!type && isFetching && ( + {isFetching && ( ({ const [open, setOpen] = useState(false); const { data: filters } = useQuery({ - queryKey: [queryKey, collectionId], + queryKey: ["filters", title, queryKey, collectionId], queryFn, staleTime: 0, + enabled: !!collectionId && !!queryFn && !!queryKey, }); - if (filters?.length === 0) return null; - return ( <> - setOpen(true)}> + { + filters?.length && setOpen(true); + }} + > ({ ? "bg-purple-600 border border-purple-700" : "bg-neutral-900 border border-neutral-900" } + ${filters?.length === 0 && "opacity-50"} `} {...props} > diff --git a/components/filters/FilterSheet.tsx b/components/filters/FilterSheet.tsx index e277aa10..7f163b72 100644 --- a/components/filters/FilterSheet.tsx +++ b/components/filters/FilterSheet.tsx @@ -173,7 +173,7 @@ export const FilterSheet = ({ className="mb-4 flex flex-col rounded-xl overflow-hidden" > {renderData?.map((item, index) => ( - <> + { if (!values.includes(item)) { @@ -183,7 +183,6 @@ export const FilterSheet = ({ }, 250); } }} - key={`${index}`} className=" bg-neutral-800 px-4 py-3 flex flex-row items-center justify-between" > {renderItemLabel(item)} @@ -199,7 +198,7 @@ export const FilterSheet = ({ }} className="h-1 divide-neutral-700 " > - + ))} {data.length < (_data?.length || 0) && (