2022-10-05 02:44:28 +03:00
|
|
|
import type { RecommendationDto } from '@jellyfin/sdk/lib/generated-client';
|
2022-10-02 19:07:42 +03:00
|
|
|
import React, { FC } from 'react';
|
2022-08-07 02:33:25 +03:00
|
|
|
|
|
|
|
import globalize from '../../scripts/globalize';
|
|
|
|
import escapeHTML from 'escape-html';
|
2022-09-02 02:46:05 +03:00
|
|
|
import SectionContainer from './SectionContainer';
|
2022-08-07 02:33:25 +03:00
|
|
|
|
2022-10-14 02:07:54 +03:00
|
|
|
interface RecommendationContainerProps {
|
2022-08-07 02:33:25 +03:00
|
|
|
getPortraitShape: () => string;
|
|
|
|
enableScrollX: () => boolean;
|
|
|
|
recommendation?: RecommendationDto;
|
|
|
|
}
|
|
|
|
|
2022-10-14 02:07:54 +03:00
|
|
|
const RecommendationContainer: FC<RecommendationContainerProps> = ({ getPortraitShape, enableScrollX, recommendation = {} }) => {
|
2022-08-07 02:33:25 +03:00
|
|
|
let title = '';
|
|
|
|
|
|
|
|
switch (recommendation.RecommendationType) {
|
|
|
|
case 'SimilarToRecentlyPlayed':
|
|
|
|
title = globalize.translate('RecommendationBecauseYouWatched', recommendation.BaselineItemName);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'SimilarToLikedItem':
|
|
|
|
title = globalize.translate('RecommendationBecauseYouLike', recommendation.BaselineItemName);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'HasDirectorFromRecentlyPlayed':
|
|
|
|
case 'HasLikedDirector':
|
|
|
|
title = globalize.translate('RecommendationDirectedBy', recommendation.BaselineItemName);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'HasActorFromRecentlyPlayed':
|
|
|
|
case 'HasLikedActor':
|
|
|
|
title = globalize.translate('RecommendationStarring', recommendation.BaselineItemName);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2022-09-02 02:46:05 +03:00
|
|
|
return <SectionContainer
|
|
|
|
sectionTitle={escapeHTML(title)}
|
|
|
|
enableScrollX={enableScrollX}
|
|
|
|
items={recommendation.Items || []}
|
|
|
|
cardOptions={{
|
2022-08-07 02:33:25 +03:00
|
|
|
shape: getPortraitShape(),
|
2022-09-02 02:46:05 +03:00
|
|
|
showYear: true
|
|
|
|
}}
|
|
|
|
/>;
|
2022-08-07 02:33:25 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
export default RecommendationContainer;
|