import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models"; import { ScrollView, View } from "react-native"; import { EpisodeCard } from "./EpisodeCard"; import { Text } from "../common/Text"; import { useMemo } from "react"; import { SeasonPicker } from "../series/SeasonPicker"; export const SeriesCard: React.FC<{ items: BaseItemDto[] }> = ({ items }) => { const groupBySeason = useMemo(() => { const seasons: Record = {}; items.forEach((item) => { if (!seasons[item.SeasonName!]) { seasons[item.SeasonName!] = []; } seasons[item.SeasonName!].push(item); }); return Object.values(seasons).sort( (a, b) => a[0].IndexNumber! - b[0].IndexNumber! ); }, [items]); const sortByIndex = (a: BaseItemDto, b: BaseItemDto) => { return a.IndexNumber! > b.IndexNumber! ? 1 : -1; }; return ( {items[0].SeriesName} {items.length} TV-Series {groupBySeason.map((seasonItems, seasonIndex) => ( {seasonItems[0].SeasonName} {seasonItems.sort(sortByIndex)?.map((item, index) => ( ))} ))} ); };