diff --git a/src/routes/MetaDetails/StreamsList/Stream/Stream.js b/src/routes/MetaDetails/StreamsList/Stream/Stream.js index a5539198b..495eed42d 100644 --- a/src/routes/MetaDetails/StreamsList/Stream/Stream.js +++ b/src/routes/MetaDetails/StreamsList/Stream/Stream.js @@ -116,9 +116,13 @@ const Stream = ({ className, videoId, videoReleased, addonName, name, descriptio } }, [props.onClick, profile.settings, markVideoAsWatched]); - const copyMagneticLinkToClipboard = React.useCallback((event) => { + const streamLink = React.useMemo(() => { + return deepLinks?.externalPlayer?.download; + }, [deepLinks]); + + const copyStreamLink = React.useCallback((event) => { event.preventDefault(); - if (deepLinks?.externalPlayer?.download && navigator?.clipboard) { + if (streamLink && navigator?.clipboard) { navigator.clipboard.writeText(deepLinks.externalPlayer.download) .then(() => { toast.show({ @@ -143,7 +147,7 @@ const Stream = ({ className, videoId, videoReleased, addonName, name, descriptio }); } closeMenu(); - }, []); + }, [streamLink]); const renderThumbnailFallback = React.useCallback(() => ( @@ -186,21 +190,23 @@ const Stream = ({ className, videoId, videoReleased, addonName, name, descriptio ); }, - [] + [onClick] ); - const renderMenu = function renderMenu() { - return ( -
- - {deepLinks?.externalPlayer?.download && } -
- ); - }; + const renderMenu = React.useMemo( + () => { + return ( +
+ + {streamLink && } +
+ ); + }, [copyStreamLink, onClick] + ); return (