/* eslint-disable @next/next/no-img-element */ import React, { useMemo, useState } from 'react'; import { motion } from 'framer-motion'; import { Film, Tv, Star, Calendar, ChevronRight, X } from 'lucide-react'; import { useMediaQuery } from '@/hooks/use-media-query'; import { Dialog, DialogContent } from '@/components/ui/dialog'; import { Drawer, DrawerContent } from '@/components/ui/drawer'; interface TrendingItem { id: number; title?: string; name?: string; overview: string; poster_path: string | null; backdrop_path: string | null; vote_average: number; release_date?: string; first_air_date?: string; genre_ids: number[]; popularity: number; } interface TrendingResultsProps { result: { results: TrendingItem[]; }; type: 'movie' | 'tv'; } const TrendingResults = ({ result, type }: TrendingResultsProps) => { const [selectedItem, setSelectedItem] = useState(null); const [showAll, setShowAll] = useState(false); const isMobile = useMediaQuery('(max-width: 768px)'); const displayedResults = useMemo(() => { return showAll ? result.results : result.results.slice(0, isMobile ? 4 : 10); }, [result.results, showAll, isMobile]); const genreMap: Record = { 28: 'Action', 12: 'Adventure', 16: 'Animation', 35: 'Comedy', 80: 'Crime', 99: 'Documentary', 18: 'Drama', 10751: 'Family', 14: 'Fantasy', 36: 'History', 27: 'Horror', 10402: 'Music', 9648: 'Mystery', 10749: 'Romance', 878: 'Sci-Fi', 53: 'Thriller', 10752: 'War', 37: 'Western', 10759: 'Action & Adventure', 10765: 'Sci-Fi & Fantasy', 10768: 'War & Politics', }; const formatDate = (dateStr: string) => { return new Date(dateStr).toLocaleDateString('en-US', { year: 'numeric', month: 'short', }); }; const DetailView = () => { if (!selectedItem) return null; const content = (
{selectedItem.backdrop_path ? ( <> {selectedItem.title
) : (
)}

{selectedItem.title || selectedItem.name}

{selectedItem.vote_average.toFixed(1)}
{(selectedItem.release_date || selectedItem.first_air_date) && (
{formatDate(selectedItem.release_date || selectedItem.first_air_date || '')}
)}
{selectedItem.genre_ids.map((genreId) => ( {genreMap[genreId]} ))}

{selectedItem.overview}

); if (isMobile) { return ( setSelectedItem(null)}> {content} ); } return ( setSelectedItem(null)}> {content} ); }; return (
{type === 'movie' ? ( ) : ( )}

Trending {type === 'movie' ? 'Movies' : 'Shows'}

Top picks for today

{displayedResults.map((item, index) => ( setSelectedItem(item)} >
{item.poster_path ? ( {item.title ) : (
{type === 'movie' ? ( ) : ( )}
)}
{item.vote_average.toFixed(1)}

{item.title || item.name}

{formatDate(item.release_date || item.first_air_date || '')}

))}
{isMobile && showAll && ( setShowAll(false)}>

All Trending {type === 'movie' ? 'Movies' : 'Shows'}

{result.results.map((item, index) => ( { setSelectedItem(item); setShowAll(false); }} >
{item.poster_path ? ( {item.title ) : (
{type === 'movie' ? ( ) : ( )}
)}
{item.vote_average.toFixed(1)}

{item.title || item.name}

{formatDate(item.release_date || item.first_air_date || '')}

))}
)}
); }; export default TrendingResults;