import React, { useContext } from 'react'; import useSWR from 'swr'; import type { MovieDetails } from '../../../server/models/Movie'; import type { TvDetails } from '../../../server/models/Tv'; import TitleCard from '.'; import { LanguageContext } from '../../context/LanguageContext'; interface TmdbTitleCardProps { tmdbId: number; type: 'movie' | 'tv'; } const isMovie = (movie: MovieDetails | TvDetails): movie is MovieDetails => { return (movie as MovieDetails).title !== undefined; }; const RequestCard: React.FC = ({ tmdbId, type }) => { const { locale } = useContext(LanguageContext); const url = type === 'movie' ? `/api/v1/movie/${tmdbId}` : `/api/v1/tv/${tmdbId}`; const { data: title, error } = useSWR( `${url}?language=${locale}` ); if (!title && !error) { return ; } if (!title) { return ; } return isMovie(title) ? ( ) : ( ); }; export default RequestCard;