diff --git a/src/components/RequestList/RequestItem/index.tsx b/src/components/RequestList/RequestItem/index.tsx index 22a988cce..e989f2f6f 100644 --- a/src/components/RequestList/RequestItem/index.tsx +++ b/src/components/RequestList/RequestItem/index.tsx @@ -42,6 +42,7 @@ const messages = defineMessages('components.RequestList.RequestItem', { tmdbid: 'TMDB ID', tvdbid: 'TheTVDB ID', unknowntitle: 'Unknown Title', + removearr: 'Remove from {arr}', profileName: 'Profile', }); @@ -341,6 +342,18 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { revalidateList(); }; + const deleteMediaFile = async () => { + if (request.media) { + await fetch(`/api/v1/media/${request.media.id}/file`, { + method: 'DELETE', + }); + await fetch(`/api/v1/media/${request.media.id}`, { + method: 'DELETE', + }); + revalidateList(); + } + }; + const retryRequest = async () => { setRetrying(true); @@ -666,14 +679,28 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { )} {requestData.status !== MediaRequestStatus.PENDING && hasPermission(Permission.MANAGE_REQUESTS) && ( - deleteRequest()} - confirmText={intl.formatMessage(globalMessages.areyousure)} - className="w-full" - > - - {intl.formatMessage(messages.deleterequest)} - + <> + deleteRequest()} + confirmText={intl.formatMessage(globalMessages.areyousure)} + className="w-full" + > + + {intl.formatMessage(messages.deleterequest)} + + deleteMediaFile()} + confirmText={intl.formatMessage(globalMessages.areyousure)} + className="w-full" + > + + + {intl.formatMessage(messages.removearr, { + arr: request.type === 'movie' ? 'Radarr' : 'Sonarr', + })} + + + )} {requestData.status === MediaRequestStatus.PENDING && hasPermission(Permission.MANAGE_REQUESTS) && ( diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index c86c5d3e6..1642872b3 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -298,6 +298,7 @@ "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {play} other {plays}}", "components.ManageSlideOver.removearr": "Remove from {arr}", "components.ManageSlideOver.removearr4k": "Remove from 4K {arr}", + "components.RequestList.RequestItem.removearr": "Remove from {arr}", "components.ManageSlideOver.tvshow": "series", "components.MediaSlider.ShowMoreCard.seemore": "See More", "components.MovieDetails.MovieCast.fullcast": "Full Cast",