diff --git a/src/modules/common/MediaDisplay.tsx b/src/modules/common/MediaDisplay.tsx
index f1a193e7f..2e4f2632a 100644
--- a/src/modules/common/MediaDisplay.tsx
+++ b/src/modules/common/MediaDisplay.tsx
@@ -1,6 +1,7 @@
-import { Badge, Button, Group, Image, Stack, Text, Title } from '@mantine/core';
+import { ActionIcon, Badge, Button, Group, Image, Stack, Text, Title } from '@mantine/core';
import { IconDownload, IconExternalLink, IconPlayerPlay } from '@tabler/icons';
import { useState } from 'react';
+import { useColorTheme } from '../../tools/color';
import { useConfig } from '../../tools/state';
import { serviceItem } from '../../tools/types';
import { RequestModal } from '../overseerr/RequestModal';
@@ -9,6 +10,7 @@ import { Result } from '../overseerr/SearchResult';
export interface IMedia {
overview: string;
imdbId?: any;
+ tmdbId?: any;
artist?: string;
title?: string;
type: 'movie' | 'tvshow' | 'book' | 'music' | 'overseer';
@@ -24,19 +26,27 @@ export interface IMedia {
export function OverseerrMediaDisplay(props: any) {
const { media }: { media: Result } = props;
+ const { config } = useConfig();
+ const service = config.services.find(
+ (service) => service.type === 'Overseerr' || service.type === 'Jellyseerr'
+ );
+
return (
@@ -66,7 +76,7 @@ export function ReadarrMediaDisplay(props: any) {
artist: media.authorTitle,
overview: `new book release by ${media.authorTitle}`,
genres: media.genres ?? [],
- voteAverage: media.ratings.value.toString() ?? undefined,
+ voteAverage: media.ratings.value.toString(),
type: 'book',
}}
/>
@@ -111,9 +121,9 @@ export function RadarrMediaDisplay(props: any) {
title: media.title ?? media.originalTitle,
overview: media.overview ?? '',
genres: media.genres ?? [],
- poster: media.images.find((image: any) => image.coverType === 'poster')?.url ?? undefined,
- voteAverage: media.ratings.tmdb.value.toString() ?? undefined,
- imdbId: media.imdbId ?? undefined,
+ poster: media.images.find((image: any) => image.coverType === 'poster')?.url,
+ voteAverage: media.ratings.tmdb.value.toString(),
+ imdbId: media.imdbId,
type: 'movie',
}}
/>
@@ -131,13 +141,13 @@ export function SonarrMediaDisplay(props: any) {
...media,
genres: media.series.genres ?? [],
overview: media.overview ?? media.series.overview ?? '',
- title: media.series.title ?? undefined,
+ title: media.series.title,
poster: poster ? poster.url : undefined,
- episodeNumber: media.episodeNumber ?? undefined,
- seasonNumber: media.seasonNumber ?? undefined,
- episodetitle: media.title ?? undefined,
- imdbId: media.series.imdbId ?? undefined,
- voteAverage: media.series.ratings.value.toString() ?? undefined,
+ episodeNumber: media.episodeNumber,
+ seasonNumber: media.seasonNumber,
+ episodetitle: media.title,
+ imdbId: media.series.imdbId,
+ voteAverage: media.series.ratings.value.toString(),
type: 'tvshow',
}}
/>
@@ -146,6 +156,8 @@ export function SonarrMediaDisplay(props: any) {
export function MediaDisplay({ media }: { media: IMedia }) {
const [opened, setOpened] = useState(false);
+ const { secondaryColor } = useColorTheme();
+
return (
@@ -185,7 +197,7 @@ export function MediaDisplay({ media }: { media: IMedia }) {
{media.overview}
-
+
{media.plexUrl && (
+
+
)}
- {media.type === 'overseer' && (
+ {media.overseerrId && (
+
+
+
+ )}
+ {media.type === 'overseer' && !media.overseerrResult?.mediaInfo?.mediaAddedAt && (
<>
setOpened(true)}
+ color={secondaryColor}
size="sm"
rightIcon={}
>