import React, {Fragment} from 'react'; import {PageMetaTags} from '@common/http/page-meta-tags'; import {PageStatus} from '@common/http/page-status'; import {GetSeasonResponse, useSeason} from '@app/seasons/requests/use-season'; import {TitlePageHeaderImage} from '@app/titles/pages/title-page/title-page-header-image'; import {Title} from '@app/titles/models/title'; import {TitlePoster} from '@app/titles/title-poster/title-poster'; import {Trans} from '@common/i18n/trans'; import {TitleLink} from '@app/titles/title-link'; import {SeasonLink} from '@app/seasons/season-link'; import {useParams} from 'react-router-dom'; import clsx from 'clsx'; import {SitePageLayout} from '@app/site-page-layout'; import {EpisodeListItem} from '@app/seasons/episode-list-item'; import {useSeasonEpisodes} from '@app/titles/requests/use-season-episodes'; import {InfiniteScrollSentinel} from '@common/ui/infinite-scroll/infinite-scroll-sentinel'; export function SeasonPage() { const query = useSeason('seasonPage'); const content = query.data ? ( ) : ( ); return {content}; } interface PageContentProps { data: GetSeasonResponse; } function PageContent({data}: PageContentProps) { const {title, season} = data; return (
); } interface SeasonListProps { title: Title; } function SeasonList({title}: SeasonListProps) { const {season} = useParams(); return (
:
{[...new Array(title.seasons_count).keys()].map(index => { const number = index + 1; const isActive = season === `${number}`; return ( {number} ); })}
); } interface EpisodeListProps { data: GetSeasonResponse; } function EpisodeList({data: {episodes, title}}: EpisodeListProps) { const query = useSeasonEpisodes(episodes); return (
{query.items.map(episode => ( ))}
); }