import { AnimeCoverImage } from './AnimeCoverImage'; import type { AnimeDetailData, AnilistEntry } from '../../types/stats'; interface AnimeHeaderProps { detail: AnimeDetailData['detail']; anilistEntries: AnilistEntry[]; coverRetryToken?: number; onChangeAnilist?: () => void; onDeleteAnime?: () => void; isDeletingAnime?: boolean; } function AnilistButton({ entry }: { entry: AnilistEntry }) { const label = entry.season != null ? `Season ${entry.season}` : (entry.titleEnglish ?? entry.titleRomaji ?? 'AniList'); return ( {label} {'\u2197'} ); } export function AnimeHeader({ detail, anilistEntries, coverRetryToken = 0, onChangeAnilist, onDeleteAnime, isDeletingAnime = false, }: AnimeHeaderProps) { const altTitles = [detail.titleRomaji, detail.titleEnglish, detail.titleNative].filter( (t): t is string => t != null && t !== detail.canonicalTitle, ); const uniqueAltTitles = [...new Set(altTitles)]; const hasMultipleEntries = anilistEntries.length > 1; const coverCacheToken = (detail.anilistId ?? 0) * 1_000_000 + coverRetryToken; return (
{detail.description}
)}