import { useEffect, useState } from 'react'; import { getCoverImageSrc, type CoverImageMap } from '../../lib/cover-images'; interface CoverThumbnailProps { animeId: number | null; videoId: number | null; title: string; coverImages: CoverImageMap; } export function CoverThumbnail({ animeId, videoId, title, coverImages }: CoverThumbnailProps) { const [failed, setFailed] = useState(false); const fallbackChar = title.charAt(0) || '?'; const fallback = (
{fallbackChar}
); const src = animeId != null ? getCoverImageSrc(coverImages, 'anime', animeId) : getCoverImageSrc(coverImages, 'media', videoId); useEffect(() => { setFailed(false); }, [src]); if (!src || failed) { return fallback; } return ( setFailed(true)} /> ); }