fix: hide remove button when default service is not configured

This commit is contained in:
dd060606
2022-08-14 12:07:12 +02:00
parent 2e7458457e
commit 7d4455ba6b

View File

@@ -13,8 +13,10 @@ import { IssueStatus } from '../../../server/constants/issue';
import { import {
MediaRequestStatus, MediaRequestStatus,
MediaStatus, MediaStatus,
MediaType,
} from '../../../server/constants/media'; } from '../../../server/constants/media';
import { MediaWatchDataResponse } from '../../../server/interfaces/api/mediaInterfaces'; import { MediaWatchDataResponse } from '../../../server/interfaces/api/mediaInterfaces';
import { RadarrSettings, SonarrSettings } from '../../../server/lib/settings';
import { MovieDetails } from '../../../server/models/Movie'; import { MovieDetails } from '../../../server/models/Movie';
import { TvDetails } from '../../../server/models/Tv'; import { TvDetails } from '../../../server/models/Tv';
import useSettings from '../../hooks/useSettings'; import useSettings from '../../hooks/useSettings';
@@ -91,6 +93,12 @@ const ManageSlideOver: React.FC<
? `/api/v1/media/${data.mediaInfo.id}/watch_data` ? `/api/v1/media/${data.mediaInfo.id}/watch_data`
: null : null
); );
const { data: radarrData } = useSWR<RadarrSettings[]>(
'/api/v1/settings/radarr'
);
const { data: sonarrData } = useSWR<SonarrSettings[]>(
'/api/v1/settings/sonarr'
);
const deleteMedia = async () => { const deleteMedia = async () => {
if (data.mediaInfo) { 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) => { const markAvailable = async (is4k = false) => {
if (data.mediaInfo) { if (data.mediaInfo) {
await axios.post(`/api/v1/media/${data.mediaInfo?.id}/available`, { await axios.post(`/api/v1/media/${data.mediaInfo?.id}/available`, {
@@ -336,7 +365,8 @@ const ManageSlideOver: React.FC<
)} )}
{hasPermission(Permission.ADMIN) && {hasPermission(Permission.ADMIN) &&
data?.mediaInfo?.serviceUrl && ( data?.mediaInfo?.serviceUrl &&
isDefaultService() && (
<div> <div>
<ConfirmButton <ConfirmButton
onClick={() => deleteMediaFile()} onClick={() => deleteMediaFile()}
@@ -482,6 +512,7 @@ const ManageSlideOver: React.FC<
</span> </span>
</Button> </Button>
</a> </a>
{isDefaultService() && (
<div> <div>
<ConfirmButton <ConfirmButton
onClick={() => deleteMediaFile()} onClick={() => deleteMediaFile()}
@@ -511,6 +542,7 @@ const ManageSlideOver: React.FC<
)} )}
</div> </div>
</div> </div>
)}
</> </>
)} )}
</div> </div>