import Slider from '@app/components/Slider'; import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; import { useUser } from '@app/hooks/useUser'; import defineMessages from '@app/utils/defineMessages'; import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { WatchlistItem } from '@server/interfaces/api/discoverInterfaces'; import Link from 'next/link'; import { useIntl } from 'react-intl'; import useSWR from 'swr'; const messages = defineMessages('components.Discover.PlexWatchlistSlider', { plexwatchlist: 'Your Watchlist', emptywatchlist: 'Media added to your Plex Watchlist will appear here.', }); const PlexWatchlistSlider = () => { const intl = useIntl(); const { user } = useUser(); const { data: watchlistItems, error: watchlistError } = useSWR<{ page: number; totalPages: number; totalResults: number; results: WatchlistItem[]; }>('/api/v1/discover/watchlist', { revalidateOnMount: true, }); if ( (watchlistItems && watchlistItems.results.length === 0 && !user?.settings?.watchlistSyncMovies && !user?.settings?.watchlistSyncTv) || watchlistError ) { return null; } return ( <>
{intl.formatMessage(messages.plexwatchlist)}
( {msg} ), })} items={watchlistItems?.results.map((item) => ( ))} /> ); }; export default PlexWatchlistSlider;