import {ChipList} from '@common/ui/forms/input-field/chip-field/chip-list';
import {Chip} from '@common/ui/forms/input-field/chip-field/chip';
import {Link} from 'react-router-dom';
import {TitlePageImageGrid} from '@app/titles/pages/title-page/sections/title-page-image-grid';
import {TitlePageCast} from '@app/titles/pages/title-page/sections/title-page-cast';
import {RelatedTitlesPanel} from '@app/titles/related-titles-panel';
import {TitlePageSeasonGrid} from '@app/titles/pages/title-page/sections/title-page-season-grid';
import {CompactCredits} from '@app/titles/compact-credits';
import {SiteSectionHeading} from '@app/titles/site-section-heading';
import {Trans} from '@common/i18n/trans';
import {getTitleLink} from '@app/titles/title-link';
import {getGenreLink} from '@app/titles/genre-link';
import {TitleNews} from '@app/titles/pages/title-page/sections/title-news/title-news';
import {TruncatedDescription} from '@common/ui/truncated-description';
import clsx from 'clsx';
import {TitlePageReviewList} from '@app/titles/pages/title-page/sections/title-page-review-list';
import {GetTitleResponse} from '@app/titles/requests/use-title';
import {TitlePageVideoGrid} from '@app/titles/pages/title-page/sections/title-page-video-grid';
import {useSettings} from '@common/core/settings/use-settings';
import {useAuth} from '@common/auth/use-auth';
import {TitlePageEpisodeGrid} from '@app/titles/pages/title-page/sections/title-page-episode-grid';
import {TitlePageSections} from '@app/titles/pages/title-page/sections/title-page-sections';
import {Title} from '@app/titles/models/title';
import {AdHost} from '@common/admin/ads/ad-host';
interface Props {
data: GetTitleResponse;
className?: string;
}
export function TitlePageMainContent({data, className}: Props) {
const {title, credits} = data;
const {title_page} = useSettings();
return (
{title.genres?.length ? (
{title.genres.map(genre => (
))}
) : null}
{title.tagline && (
“{title.tagline}”
)}
{title_page?.sections?.map(name => (
))}
);
}
interface TitlePageSectionProps {
title: Title;
data: GetTitleResponse;
name: (typeof TitlePageSections)[number];
}
function TitlePageSection({name, title, data}: TitlePageSectionProps) {
const {titles} = useSettings();
const {hasPermission} = useAuth();
switch (name) {
case 'episodes':
return title.is_series ? (
) : null;
case 'seasons':
return title.is_series ? : null;
case 'videos':
return ;
case 'images':
return (
}
/>
);
case 'reviews':
return titles.enable_reviews && hasPermission('reviews.view') ? (
) : null;
case 'cast':
return ;
case 'news':
return ;
case 'related':
return ;
}
}