1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/view/components/RecommendationContainer.tsx

49 lines
1.7 KiB
TypeScript
Raw Normal View History

2022-08-07 02:33:25 +03:00
import { RecommendationDto } from '@thornbill/jellyfin-sdk/dist/generated-client';
2022-09-02 02:46:05 +03:00
import React, { FunctionComponent } 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
type RecommendationContainerProps = {
getPortraitShape: () => string;
enableScrollX: () => boolean;
recommendation?: RecommendationDto;
}
const RecommendationContainer: FunctionComponent<RecommendationContainerProps> = ({ getPortraitShape, enableScrollX, recommendation = {} }: RecommendationContainerProps) => {
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;