@@ -9,6 +9,7 @@ import defineMessages from '@app/utils/defineMessages';
99import { MediaStatus } from '@server/constants/media' ;
1010import { MediaServerType } from '@server/constants/server' ;
1111import type { DownloadingItem } from '@server/lib/downloadtracker' ;
12+ import { useRouter } from 'next/router' ;
1213import { useIntl } from 'react-intl' ;
1314
1415const messages = defineMessages ( 'components.StatusBadge' , {
@@ -47,11 +48,13 @@ const StatusBadge = ({
4748 statusLabelOverride,
4849} : StatusBadgeProps ) => {
4950 const intl = useIntl ( ) ;
51+ const router = useRouter ( ) ;
5052 const { hasPermission } = useUser ( ) ;
5153 const settings = useSettings ( ) ;
5254
5355 let mediaLink : string | undefined ;
5456 let mediaLinkDescription : string | undefined ;
57+ let mediaLinkReplace = false ;
5558
5659 const calculateDownloadProgress = ( media : DownloadingItem ) => {
5760 return Math . round ( ( ( media ?. size - media ?. sizeLeft ) / media ?. size ) * 100 ) ;
@@ -95,6 +98,8 @@ const StatusBadge = ({
9598 } else if ( hasPermission ( Permission . MANAGE_REQUESTS ) ) {
9699 if ( mediaType && tmdbId ) {
97100 mediaLink = `/${ mediaType } /${ tmdbId } ?manage=1` ;
101+ mediaLinkReplace =
102+ router . asPath . split ( '?' ) [ 0 ] === `/${ mediaType } /${ tmdbId } ` ;
98103 mediaLinkDescription = intl . formatMessage ( messages . managemedia , {
99104 mediaType : intl . formatMessage (
100105 mediaType === 'movie' ? globalMessages . movie : globalMessages . tvshow
@@ -169,6 +174,7 @@ const StatusBadge = ({
169174 < Badge
170175 badgeType = "success"
171176 href = { mediaLink }
177+ replace = { mediaLinkReplace }
172178 className = { `${
173179 inProgress && 'relative !bg-gray-700/80 !px-0 hover:!bg-gray-700'
174180 } overflow-hidden`}
@@ -234,6 +240,7 @@ const StatusBadge = ({
234240 < Badge
235241 badgeType = "success"
236242 href = { mediaLink }
243+ replace = { mediaLinkReplace }
237244 className = { `${
238245 inProgress && 'relative !bg-gray-700/80 !px-0 hover:!bg-gray-700'
239246 } overflow-hidden`}
@@ -299,6 +306,7 @@ const StatusBadge = ({
299306 < Badge
300307 badgeType = "primary"
301308 href = { mediaLink }
309+ replace = { mediaLinkReplace }
302310 className = { `${
303311 inProgress && 'relative !bg-gray-700/80 !px-0 hover:!bg-gray-700'
304312 } overflow-hidden`}
@@ -353,7 +361,11 @@ const StatusBadge = ({
353361 case MediaStatus . PENDING :
354362 return (
355363 < Tooltip content = { mediaLinkDescription } >
356- < Badge badgeType = "warning" href = { mediaLink } >
364+ < Badge
365+ badgeType = "warning"
366+ href = { mediaLink }
367+ replace = { mediaLinkReplace }
368+ >
357369 { intl . formatMessage ( is4k ? messages . status4k : messages . status , {
358370 status : intl . formatMessage ( globalMessages . pending ) ,
359371 } ) }
@@ -364,7 +376,7 @@ const StatusBadge = ({
364376 case MediaStatus . BLOCKLISTED :
365377 return (
366378 < Tooltip content = { mediaLinkDescription } >
367- < Badge badgeType = "danger" href = { mediaLink } >
379+ < Badge badgeType = "danger" href = { mediaLink } replace = { mediaLinkReplace } >
368380 { intl . formatMessage ( is4k ? messages . status4k : messages . status , {
369381 status :
370382 statusLabelOverride ??
@@ -388,6 +400,7 @@ const StatusBadge = ({
388400 < Badge
389401 badgeType = "danger"
390402 href = { mediaLink }
403+ replace = { mediaLinkReplace }
391404 className = { `${
392405 inProgress && 'relative !bg-gray-700/80 !px-0 hover:!bg-gray-700'
393406 } overflow-hidden`}
0 commit comments