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 (
)
})