From ec5aab99b8dda882a6ee2d0e0918a004ba23dd60 Mon Sep 17 00:00:00 2001 From: Fredrik Burmester Date: Sun, 25 Aug 2024 10:34:54 +0200 Subject: [PATCH] feat: library list design --- app/(auth)/(tabs)/(libraries)/[libraryId].tsx | 109 +++++------ app/(auth)/(tabs)/(libraries)/_layout.tsx | 149 +++++++++++++++ app/(auth)/(tabs)/(libraries)/index.tsx | 101 +++++----- bun.lockb | Bin 562661 -> 582550 bytes components/library/LibraryItemCard.tsx | 179 ++++++++++++++++++ package.json | 1 + utils/atoms/settings.ts | 14 ++ 7 files changed, 443 insertions(+), 110 deletions(-) create mode 100644 components/library/LibraryItemCard.tsx diff --git a/app/(auth)/(tabs)/(libraries)/[libraryId].tsx b/app/(auth)/(tabs)/(libraries)/[libraryId].tsx index 0e4a32a5..3f96282e 100644 --- a/app/(auth)/(tabs)/(libraries)/[libraryId].tsx +++ b/app/(auth)/(tabs)/(libraries)/[libraryId].tsx @@ -9,7 +9,7 @@ import React, { useMemo, useState, } from "react"; -import { FlatList, View } from "react-native"; +import { FlatList, RefreshControl, View } from "react-native"; import { Text } from "@/components/common/Text"; import { TouchableItemRouter } from "@/components/common/TouchableItemRouter"; @@ -38,6 +38,7 @@ import { getUserLibraryApi, } from "@jellyfin/sdk/lib/utils/api"; import { FlashList } from "@shopify/flash-list"; +import { Loader } from "@/components/Loader"; const MemoizedTouchableItemRouter = React.memo(TouchableItemRouter); @@ -90,7 +91,7 @@ const Page = () => { }; }, []); - const { data: library } = useQuery({ + const { data: library, isLoading: isLibraryLoading } = useQuery({ queryKey: ["library", libraryId], queryFn: async () => { if (!api) return null; @@ -101,7 +102,7 @@ const Page = () => { return response.data; }, enabled: !!api && !!user?.Id && !!libraryId, - staleTime: 0, + staleTime: 60 * 1000, }); const fetchItems = useCallback( @@ -112,28 +113,6 @@ const Page = () => { }): Promise => { if (!api || !library) return null; - let includeItemTypes: BaseItemKind[] | undefined = []; - - console.log("Page:", pageParam); - - // switch (library?.CollectionType) { - // case "movies": - // includeItemTypes.push("Movie"); - // break; - // case "boxsets": - // includeItemTypes.push("BoxSet"); - // break; - // case "tvshows": - // includeItemTypes.push("Series"); - // break; - // case "music": - // includeItemTypes.push("MusicAlbum"); - // break; - // default: - // includeItemTypes = ["Series", "Movie", "CollectionFolder"]; - // break; - // } - const response = await getItemsApi(api).getItems({ userId: user?.Id, parentId: libraryId, @@ -141,7 +120,6 @@ const Page = () => { startIndex: pageParam, sortBy: [sortBy[0].key, "SortName", "ProductionYear"], sortOrder: [sortOrder[0].key], - includeItemTypes, enableImageTypes: ["Primary", "Backdrop", "Banner", "Thumb"], recursive: false, imageTypeLimit: 1, @@ -166,40 +144,41 @@ const Page = () => { ] ); - const { data, isFetching, fetchNextPage, hasNextPage } = useInfiniteQuery({ - queryKey: [ - "library-items", - libraryId, - selectedGenres, - selectedYears, - selectedTags, - sortBy, - sortOrder, - ], - queryFn: fetchItems, - getNextPageParam: (lastPage, pages) => { - if ( - !lastPage?.Items || - !lastPage?.TotalRecordCount || - lastPage?.TotalRecordCount === 0 - ) - return undefined; + const { data, isFetching, fetchNextPage, hasNextPage, isLoading } = + useInfiniteQuery({ + queryKey: [ + "library-items", + libraryId, + selectedGenres, + selectedYears, + selectedTags, + sortBy, + sortOrder, + ], + queryFn: fetchItems, + getNextPageParam: (lastPage, pages) => { + if ( + !lastPage?.Items || + !lastPage?.TotalRecordCount || + lastPage?.TotalRecordCount === 0 + ) + return undefined; - const totalItems = lastPage.TotalRecordCount; - const accumulatedItems = pages.reduce( - (acc, curr) => acc + (curr?.Items?.length || 0), - 0 - ); + const totalItems = lastPage.TotalRecordCount; + const accumulatedItems = pages.reduce( + (acc, curr) => acc + (curr?.Items?.length || 0), + 0 + ); - if (accumulatedItems < totalItems) { - return lastPage?.Items?.length * pages.length; - } else { - return undefined; - } - }, - initialPageParam: 0, - enabled: !!api && !!user?.Id && !!library, - }); + if (accumulatedItems < totalItems) { + return lastPage?.Items?.length * pages.length; + } else { + return undefined; + } + }, + initialPageParam: 0, + enabled: !!api && !!user?.Id && !!library, + }); const flatData = useMemo(() => { return ( @@ -396,7 +375,19 @@ const Page = () => { ] ); - if (!library) return null; + if (isLoading || isLibraryLoading) + return ( + + + + ); + + if (flatData.length === 0) + return ( + + No items found + + ); return ( ( + + + + + + Display + + + + Display + + + + updateSettings({ + libraryOptions: { + ...settings.libraryOptions, + display: "row", + }, + }) + } + > + + + Row + + + + updateSettings({ + libraryOptions: { + ...settings.libraryOptions, + display: "list", + }, + }) + } + > + + + List + + + + + + + Image style + + + + updateSettings({ + libraryOptions: { + ...settings.libraryOptions, + imageStyle: "poster", + }, + }) + } + > + + + Poster + + + + updateSettings({ + libraryOptions: { + ...settings.libraryOptions, + imageStyle: "cover", + }, + }) + } + > + + + Cover + + + + + + + { + if (settings.libraryOptions.imageStyle === "poster") + return; + updateSettings({ + libraryOptions: { + ...settings.libraryOptions, + showTitles: newValue === "on" ? true : false, + }, + }); + }} + > + + + Show titles + + + + + + + + ), }} /> { + for (const item of data || []) { + queryClient.prefetchQuery({ + queryKey: ["library", item.Id], + queryFn: async () => { + if (!item.Id || !user?.Id || !api) return null; + const response = await getUserLibraryApi(api).getItem({ + itemId: item.Id, + userId: user?.Id, + }); + return response.data; + }, + staleTime: 60 * 1000, + }); + } + }, [data]); + if (isLoading) return ( @@ -41,59 +61,38 @@ export default function index() { ); + if (!data) + return ( + + No libraries found + + ); + return ( } keyExtractor={(item) => item.Id || ""} - ItemSeparatorComponent={() => } + ItemSeparatorComponent={() => + settings?.libraryOptions?.display === "row" ? ( + + ) : ( + + ) + } estimatedItemSize={200} /> ); } - -interface Props { - library: BaseItemDto; -} - -const LibraryItemCard: React.FC = ({ library }) => { - const [api] = useAtom(apiAtom); - - const url = useMemo( - () => - getPrimaryImageUrl({ - api, - item: library, - }), - [library] - ); - - if (!url) return null; - - return ( - - - - - {library.Name} - - - - ); -}; diff --git a/bun.lockb b/bun.lockb index 6eea000fe01dd4c1e23b8e2eec30703833685597..32f4452c81f35727d93d320e19a4bd2acf8b2cc8 100755 GIT binary patch delta 101826 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
    &>(o8d%$dIQl7BOq)&OD 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 BA_@Qi delta 90610 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 I["name"]; + +const icons: Record = { + movies: "film", + tvshows: "tv", + music: "musical-notes", + books: "book", + homevideos: "videocam", + boxsets: "albums", + playlists: "list", + folders: "folder", + livetv: "tv", + musicvideos: "musical-notes", + photos: "images", + trailers: "videocam", + unknown: "help-circle", +} as const; +export const LibraryItemCard: React.FC = ({ library, ...props }) => { + const [api] = useAtom(apiAtom); + const [user] = useAtom(userAtom); + const [settings] = useSettings(); + + const [imageInfo, setImageInfo] = useState({ + dominantColor: "#fff", + averageColor: "#fff", + secondary: "#fff", + }); + + const url = useMemo( + () => + getPrimaryImageUrl({ + api, + item: library, + }), + [library] + ); + + const { data: itemsCount } = useQuery({ + queryKey: ["library-count", library.Id], + queryFn: async () => { + if (!api) return null; + const response = await getItemsApi(api).getItems({ + userId: user?.Id, + parentId: library.Id, + limit: 0, + }); + return response.data.TotalRecordCount; + }, + }); + + useEffect(() => { + if (url) { + getColors(url, { + fallback: "#fff", + cache: true, + key: url, + }) + .then((colors) => { + let dominantColor: string = "#fff"; + let averageColor: string = "#fff"; + let secondary: string = "#fff"; + + if (colors.platform === "android") { + dominantColor = colors.dominant; + averageColor = colors.average; + secondary = colors.muted; + } else if (colors.platform === "ios") { + dominantColor = colors.primary; + averageColor = colors.background; + secondary = colors.detail; + } + + setImageInfo({ + dominantColor, + averageColor, + secondary, + }); + }) + .catch((error) => { + console.log("Error getting colors", error); + }); + } + }, [url]); + + if (!url) return null; + + if (settings?.libraryOptions?.display === "row") { + return ( + + + + + {library.Name} + + + + ); + } + + if (settings?.libraryOptions?.imageStyle === "cover") { + return ( + + + + {settings?.libraryOptions?.showTitles && ( + + {library.Name} + + )} + + + ); + } + + return ( + + + + + {library.Name} + + + {itemsCount} items + + + + + + + + ); +}; diff --git a/package.json b/package.json index 7382feb7..eb62667e 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "react-native-gesture-handler": "~2.16.1", "react-native-get-random-values": "^1.11.0", "react-native-google-cast": "^4.8.2", + "react-native-image-colors": "^2.4.0", "react-native-ios-context-menu": "^2.5.1", "react-native-ios-utilities": "^4.4.5", "react-native-reanimated": "~3.10.1", diff --git a/utils/atoms/settings.ts b/utils/atoms/settings.ts index 4d38d60f..402b011c 100644 --- a/utils/atoms/settings.ts +++ b/utils/atoms/settings.ts @@ -24,6 +24,13 @@ export const DownloadOptions: DownloadOption[] = [ }, ]; +export type LibraryOptions = { + display: "row" | "list"; + cardStyle: "compact" | "detailed"; + imageStyle: "poster" | "cover"; + showTitles: boolean; +}; + type Settings = { autoRotate?: boolean; forceLandscapeInVideoPlayer?: boolean; @@ -36,6 +43,7 @@ type Settings = { marlinServerUrl?: string; openInVLC?: boolean; downloadQuality?: DownloadOption; + libraryOptions: LibraryOptions; }; /** @@ -59,6 +67,12 @@ const loadSettings = async (): Promise => { marlinServerUrl: "", openInVLC: false, downloadQuality: DownloadOptions[0], + libraryOptions: { + display: "list", + cardStyle: "detailed", + imageStyle: "cover", + showTitles: true, + }, }; try {