From 7d4455ba6bfd12e2730f7085cbb87df246f01d22 Mon Sep 17 00:00:00 2001 From: dd060606 Date: Sun, 14 Aug 2022 12:07:12 +0200 Subject: [PATCH] fix: hide remove button when default service is not configured --- src/components/ManageSlideOver/index.tsx | 90 ++++++++++++++++-------- 1 file changed, 61 insertions(+), 29 deletions(-) diff --git a/src/components/ManageSlideOver/index.tsx b/src/components/ManageSlideOver/index.tsx index 3d2c590da..9fbd4c6b8 100644 --- a/src/components/ManageSlideOver/index.tsx +++ b/src/components/ManageSlideOver/index.tsx @@ -13,8 +13,10 @@ import { IssueStatus } from '../../../server/constants/issue'; import { MediaRequestStatus, MediaStatus, + MediaType, } from '../../../server/constants/media'; import { MediaWatchDataResponse } from '../../../server/interfaces/api/mediaInterfaces'; +import { RadarrSettings, SonarrSettings } from '../../../server/lib/settings'; import { MovieDetails } from '../../../server/models/Movie'; import { TvDetails } from '../../../server/models/Tv'; import useSettings from '../../hooks/useSettings'; @@ -91,6 +93,12 @@ const ManageSlideOver: React.FC< ? `/api/v1/media/${data.mediaInfo.id}/watch_data` : null ); + const { data: radarrData } = useSWR( + '/api/v1/settings/radarr' + ); + const { data: sonarrData } = useSWR( + '/api/v1/settings/sonarr' + ); const deleteMedia = async () => { if (data.mediaInfo) { @@ -106,6 +114,27 @@ const ManageSlideOver: React.FC< } }; + const isDefaultService = () => { + if (data.mediaInfo) { + if (data.mediaInfo.mediaType === MediaType.MOVIE) { + return ( + radarrData?.find( + (radarr) => + radarr.isDefault && radarr.id === data.mediaInfo?.serviceId + ) !== undefined + ); + } else { + return ( + sonarrData?.find( + (sonarr) => + sonarr.isDefault && sonarr.id === data.mediaInfo?.serviceId + ) !== undefined + ); + } + } + return false; + }; + const markAvailable = async (is4k = false) => { if (data.mediaInfo) { await axios.post(`/api/v1/media/${data.mediaInfo?.id}/available`, { @@ -336,7 +365,8 @@ const ManageSlideOver: React.FC< )} {hasPermission(Permission.ADMIN) && - data?.mediaInfo?.serviceUrl && ( + data?.mediaInfo?.serviceUrl && + isDefaultService() && (
deleteMediaFile()} @@ -482,35 +512,37 @@ const ManageSlideOver: React.FC< -
- deleteMediaFile()} - confirmText={intl.formatMessage( - globalMessages.areyousure - )} - className="w-full" - > - - - {intl.formatMessage(messages.removearr4k, { - arr: mediaType === 'movie' ? 'Radarr' : 'Sonarr', - })} - - -
- {intl.formatMessage( - messages.manageModalRemoveMediaWarning, - { - mediaType: intl.formatMessage( - mediaType === 'movie' - ? messages.movie - : messages.tvshow - ), - arr: mediaType === 'movie' ? 'Radarr' : 'Sonarr', - } - )} + {isDefaultService() && ( +
+ deleteMediaFile()} + confirmText={intl.formatMessage( + globalMessages.areyousure + )} + className="w-full" + > + + + {intl.formatMessage(messages.removearr4k, { + arr: mediaType === 'movie' ? 'Radarr' : 'Sonarr', + })} + + +
+ {intl.formatMessage( + messages.manageModalRemoveMediaWarning, + { + mediaType: intl.formatMessage( + mediaType === 'movie' + ? messages.movie + : messages.tvshow + ), + arr: mediaType === 'movie' ? 'Radarr' : 'Sonarr', + } + )} +
-
+ )} )}