import { Anime_LibraryCollectionEntry, Anime_LibraryCollectionList } from "@/api/generated/types" import { __mainLibrary_paramsAtom } from "@/app/(main)/(library)/_lib/handle-library-collection" import { MediaCardLazyGrid } from "@/app/(main)/_features/media/_components/media-card-grid" import { MediaEntryCard } from "@/app/(main)/_features/media/_components/media-entry-card" import { PageWrapper } from "@/components/shared/page-wrapper" import { IconButton } from "@/components/ui/button" import { DropdownMenu, DropdownMenuItem } from "@/components/ui/dropdown-menu" import { getLibraryCollectionTitle } from "@/lib/server/utils" import { useAtom } from "jotai/react" import React from "react" import { LuListFilter } from "react-icons/lu" export function LibraryCollectionLists({ collectionList, isLoading, streamingMediaIds }: { collectionList: Anime_LibraryCollectionList[], isLoading: boolean, streamingMediaIds: number[] }) { return ( {collectionList.map(collection => { if (!collection.entries?.length) return null return })} ) } export function LibraryCollectionFilteredLists({ collectionList, isLoading, streamingMediaIds }: { collectionList: Anime_LibraryCollectionList[], isLoading: boolean, streamingMediaIds: number[] }) { // const params = useAtomValue(__mainLibrary_paramsAtom) return ( {/*

*/} {/* {params.genre?.join(", ")}*/} {/*

*/} n.entries)?.length ?? 0}> {collectionList?.flatMap(n => n.entries)?.filter(Boolean)?.map(entry => { return })}
) } export const LibraryCollectionListItem = React.memo(({ list, streamingMediaIds }: { list: Anime_LibraryCollectionList, streamingMediaIds: number[] }) => { const isCurrentlyWatching = list.type === "CURRENT" const [params, setParams] = useAtom(__mainLibrary_paramsAtom) return (

{getLibraryCollectionTitle(list.type)}

{isCurrentlyWatching && } />} > { setParams(draft => { draft.continueWatchingOnly = !draft.continueWatchingOnly return }) }} > {params.continueWatchingOnly ? "Show all" : "Show unwatched only"} }
{list.entries?.map(entry => { return })}
) }) export const LibraryCollectionEntryItem = React.memo(({ entry, streamingMediaIds }: { entry: Anime_LibraryCollectionEntry, streamingMediaIds: number[] }) => { return ( ) })