fix: pr suggestions

feature/watchlist-sync
Ryan Cohen 3 years ago
parent 7804030f2d
commit e72f05b311

@ -176,19 +176,20 @@ describe('Discover', () => {
cy.intercept('/api/v1/discover/watchlist', { fixture: 'watchlist' }).as( cy.intercept('/api/v1/discover/watchlist', { fixture: 'watchlist' }).as(
'getWatchlist' 'getWatchlist'
); );
// Wait for one of the watchlist movies to resolve
cy.intercept('/api/v1/movie/361743').as('getTmdbMovie');
cy.visit('/'); cy.visit('/');
cy.wait('@getWatchlist'); cy.wait('@getWatchlist');
// Wait for one of the watchlist movies to resolve
cy.intercept('/api/v1/movie/361743').as('getTmdbMovie');
const sliderHeader = cy.contains('.slider-header', 'Plex Watchlist'); const sliderHeader = cy.contains('.slider-header', 'Plex Watchlist');
sliderHeader.scrollIntoView(); sliderHeader.scrollIntoView();
cy.wait('@getTmdbMovie'); cy.wait('@getTmdbMovie');
// Wait a little longer to make sure the movie component reloaded
cy.wait(500);
sliderHeader sliderHeader
.next('[data-testid=media-slider]') .next('[data-testid=media-slider]')
@ -202,6 +203,7 @@ describe('Discover', () => {
.next('[data-testid=media-slider]') .next('[data-testid=media-slider]')
.find('[data-testid=title-card]') .find('[data-testid=title-card]')
.first() .first()
.click()
.click(); .click();
cy.get('[data-testid=media-title]').should('contain', text); cy.get('[data-testid=media-title]').should('contain', text);
}); });

@ -7,7 +7,7 @@ import Error from '../../../pages/_error';
import type { WatchlistItem } from '../../../../server/interfaces/api/discoverInterfaces'; import type { WatchlistItem } from '../../../../server/interfaces/api/discoverInterfaces';
const messages = defineMessages({ const messages = defineMessages({
discoverwatchlist: 'Plex Watchlist', discoverwatchlist: 'Your Plex Watchlist',
}); });
const DiscoverWatchlist = () => { const DiscoverWatchlist = () => {

@ -5,7 +5,7 @@ import useSWR from 'swr';
import type { WatchlistItem } from '../../../server/interfaces/api/discoverInterfaces'; import type { WatchlistItem } from '../../../server/interfaces/api/discoverInterfaces';
import type { MediaResultsResponse } from '../../../server/interfaces/api/mediaInterfaces'; import type { MediaResultsResponse } from '../../../server/interfaces/api/mediaInterfaces';
import type { RequestResultsResponse } from '../../../server/interfaces/api/requestInterfaces'; import type { RequestResultsResponse } from '../../../server/interfaces/api/requestInterfaces';
import { Permission, useUser } from '../../hooks/useUser'; import { Permission, UserType, useUser } from '../../hooks/useUser';
import PageTitle from '../Common/PageTitle'; import PageTitle from '../Common/PageTitle';
import MediaSlider from '../MediaSlider'; import MediaSlider from '../MediaSlider';
import RequestCard from '../RequestCard'; import RequestCard from '../RequestCard';
@ -26,12 +26,12 @@ const messages = defineMessages({
noRequests: 'No requests.', noRequests: 'No requests.',
upcoming: 'Upcoming Movies', upcoming: 'Upcoming Movies',
trending: 'Trending', trending: 'Trending',
plexwatchlist: 'Plex Watchlist', plexwatchlist: 'Your Plex Watchlist',
}); });
const Discover = () => { const Discover = () => {
const intl = useIntl(); const intl = useIntl();
const { hasPermission } = useUser(); const { user, hasPermission } = useUser();
const { data: media, error: mediaError } = useSWR<MediaResultsResponse>( const { data: media, error: mediaError } = useSWR<MediaResultsResponse>(
'/api/v1/media?filter=allavailable&take=20&sort=mediaAdded', '/api/v1/media?filter=allavailable&take=20&sort=mediaAdded',
@ -51,7 +51,7 @@ const Discover = () => {
totalPages: number; totalPages: number;
totalResults: number; totalResults: number;
results: WatchlistItem[]; results: WatchlistItem[];
}>('/api/v1/discover/watchlist', { }>(user?.userType === UserType.PLEX ? '/api/v1/discover/watchlist' : null, {
revalidateOnMount: true, revalidateOnMount: true,
}); });
@ -104,6 +104,12 @@ const Discover = () => {
placeholder={<RequestCard.Placeholder />} placeholder={<RequestCard.Placeholder />}
emptyMessage={intl.formatMessage(messages.noRequests)} emptyMessage={intl.formatMessage(messages.noRequests)}
/> />
{!(
!!watchlistItems &&
!watchlistError &&
watchlistItems.results.length === 0
) && (
<>
<div className="slider-header"> <div className="slider-header">
<Link href="/discover/watchlist"> <Link href="/discover/watchlist">
<a className="slider-title"> <a className="slider-title">
@ -112,11 +118,6 @@ const Discover = () => {
</a> </a>
</Link> </Link>
</div> </div>
{!(
!!watchlistItems &&
!watchlistError &&
watchlistItems.results.length === 0
) && (
<Slider <Slider
sliderKey="watchlist" sliderKey="watchlist"
isLoading={!watchlistItems && !watchlistError} isLoading={!watchlistItems && !watchlistError}
@ -134,6 +135,7 @@ const Discover = () => {
/> />
))} ))}
/> />
</>
)} )}
<MediaSlider <MediaSlider
sliderKey="trending" sliderKey="trending"

@ -10,7 +10,7 @@
"components.Discover.DiscoverStudio.studioMovies": "{studio} Movies", "components.Discover.DiscoverStudio.studioMovies": "{studio} Movies",
"components.Discover.DiscoverTvGenre.genreSeries": "{genre} Series", "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Series",
"components.Discover.DiscoverTvLanguage.languageSeries": "{language} Series", "components.Discover.DiscoverTvLanguage.languageSeries": "{language} Series",
"components.Discover.DiscoverWatchlist.discoverwatchlist": "Plex Watchlist", "components.Discover.DiscoverWatchlist.discoverwatchlist": "Your Plex Watchlist",
"components.Discover.MovieGenreList.moviegenres": "Movie Genres", "components.Discover.MovieGenreList.moviegenres": "Movie Genres",
"components.Discover.MovieGenreSlider.moviegenres": "Movie Genres", "components.Discover.MovieGenreSlider.moviegenres": "Movie Genres",
"components.Discover.NetworkSlider.networks": "Networks", "components.Discover.NetworkSlider.networks": "Networks",
@ -21,7 +21,7 @@
"components.Discover.discovermovies": "Popular Movies", "components.Discover.discovermovies": "Popular Movies",
"components.Discover.discovertv": "Popular Series", "components.Discover.discovertv": "Popular Series",
"components.Discover.noRequests": "No requests.", "components.Discover.noRequests": "No requests.",
"components.Discover.plexwatchlist": "Plex Watchlist", "components.Discover.plexwatchlist": "Your Plex Watchlist",
"components.Discover.popularmovies": "Popular Movies", "components.Discover.popularmovies": "Popular Movies",
"components.Discover.populartv": "Popular Series", "components.Discover.populartv": "Popular Series",
"components.Discover.recentlyAdded": "Recently Added", "components.Discover.recentlyAdded": "Recently Added",
@ -233,11 +233,11 @@
"components.PermissionEdit.autoapproveSeries": "Auto-Approve Series", "components.PermissionEdit.autoapproveSeries": "Auto-Approve Series",
"components.PermissionEdit.autoapproveSeriesDescription": "Grant automatic approval for non-4K series requests.", "components.PermissionEdit.autoapproveSeriesDescription": "Grant automatic approval for non-4K series requests.",
"components.PermissionEdit.autorequest": "Auto-Request", "components.PermissionEdit.autorequest": "Auto-Request",
"components.PermissionEdit.autorequestDescription": "Grant permission to use Plex Watchlist Sync to automatically request media.", "components.PermissionEdit.autorequestDescription": "Grant permission to automatically submit requests for non-4K media via Plex Watchlist.",
"components.PermissionEdit.autorequestMovies": "Auto-Request Movies", "components.PermissionEdit.autorequestMovies": "Auto-Request Movies",
"components.PermissionEdit.autorequestMoviesDescription": "Grant permission to use Plex Watchlist Sync to automatically request movies.", "components.PermissionEdit.autorequestMoviesDescription": "Grant permission to automatically submit requests for non-4K movies via Plex Watchlist.",
"components.PermissionEdit.autorequestSeries": "Auto-Request Series", "components.PermissionEdit.autorequestSeries": "Auto-Request Series",
"components.PermissionEdit.autorequestSeriesDescription": "Grant permission to use Plex Watchlist Sync to automatically request series.", "components.PermissionEdit.autorequestSeriesDescription": "Grant permission to automatically submit requests for non-4K series via Plex Watchlist.",
"components.PermissionEdit.createissues": "Report Issues", "components.PermissionEdit.createissues": "Report Issues",
"components.PermissionEdit.createissuesDescription": "Grant permission to report media issues.", "components.PermissionEdit.createissuesDescription": "Grant permission to report media issues.",
"components.PermissionEdit.manageissues": "Manage Issues", "components.PermissionEdit.manageissues": "Manage Issues",
@ -930,7 +930,9 @@
"components.UserProfile.UserSettings.UserGeneralSettings.owner": "Owner", "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Owner",
"components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex User", "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex User",
"components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Auto-Request Movies", "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Auto-Request Movies",
"components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Automatically request movies on your <PlexWatchlistSupportLink>Plex Watchlist</PlexWatchlistSupportLink>",
"components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Auto-Request Series", "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Auto-Request Series",
"components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Automatically request series on your <PlexWatchlistSupportLink>Plex Watchlist</PlexWatchlistSupportLink>",
"components.UserProfile.UserSettings.UserGeneralSettings.region": "Discover Region", "components.UserProfile.UserSettings.UserGeneralSettings.region": "Discover Region",
"components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filter content by regional availability", "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filter content by regional availability",
"components.UserProfile.UserSettings.UserGeneralSettings.role": "Role", "components.UserProfile.UserSettings.UserGeneralSettings.role": "Role",

Loading…
Cancel
Save