import React, { useContext } from 'react'; import useSWR from 'swr'; import type { MovieResult, TvResult } from '../../../server/models/Search'; import TitleCard from '../TitleCard'; import { MediaRequest } from '../../../server/entity/MediaRequest'; import RequestCard from '../TitleCard/RequestCard'; import Slider from '../Slider'; import Link from 'next/link'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { LanguageContext } from '../../context/LanguageContext'; import type Media from '../../../server/entity/Media'; import type { MediaResultsResponse } from '../../../server/routes/media'; const messages = defineMessages({ recentrequests: 'Recent Requests', popularmovies: 'Popular Movies', populartv: 'Popular Series', recentlyAdded: 'Recently Added', nopending: 'No Pending Requests', }); interface MovieDiscoverResult { page: number; totalResults: number; totalPages: number; results: MovieResult[]; } interface TvDiscoverResult { page: number; totalResults: number; totalPages: number; results: TvResult[]; } const Discover: React.FC = () => { const intl = useIntl(); const { locale } = useContext(LanguageContext); const { data: movieData, error: movieError } = useSWR( `/api/v1/discover/movies?language=${locale}` ); const { data: tvData, error: tvError } = useSWR( `/api/v1/discover/tv?language=${locale}` ); const { data: media, error: mediaError } = useSWR( '/api/v1/media?filter=available&take=20' ); const { data: requests, error: requestError } = useSWR( '/api/v1/request' ); return ( <>
( ))} /> ( ))} emptyMessage={intl.formatMessage(messages.nopending)} /> ( ))} /> ( ))} /> ); }; export default Discover;