diff --git a/src/renderer/js/component/media/index.js b/src/renderer/js/component/media/index.js index a23d35fda9f..4713a1e7bc5 100644 --- a/src/renderer/js/component/media/index.js +++ b/src/renderer/js/component/media/index.js @@ -13,7 +13,7 @@ import { import { makeSelectCostInfoForUri } from "redux/selectors/cost_info"; import { selectShowNsfw } from "redux/selectors/settings"; import Media from "./view"; -import { selectPlayingUri } from "redux/selectors/content"; +import { selectPlayingUri, selectOverlayable } from "redux/selectors/content"; const select = (state, props) => ({ costInfo: makeSelectCostInfoForUri(props.uri)(state), @@ -23,6 +23,7 @@ const select = (state, props) => ({ isLoading: makeSelectLoadingForUri(props.uri)(state), isDownloading: makeSelectDownloadingForUri(props.uri)(state), playingUri: selectPlayingUri(state), + overlayable: selectOverlayable(state), contentType: makeSelectContentTypeForUri(props.uri)(state), }); diff --git a/src/renderer/js/component/media/view.jsx b/src/renderer/js/component/media/view.jsx index 2453e7748ea..fc80e1fa131 100644 --- a/src/renderer/js/component/media/view.jsx +++ b/src/renderer/js/component/media/view.jsx @@ -54,27 +54,43 @@ class Media extends React.PureComponent { } determineClasses(isPlaying, mediaType) { - const { isLoading, isDownloading } = this.props; + const { isLoading, isDownloading, overlay, overlayable } = this.props; let classes = []; classes.push(this.isNSFW() ? "video--obscured " : ""); - if (isLoading || isDownloading) classes.push("video-embedded", "video"); + if (isLoading || isDownloading) classes.push("media-embedded", "video"); if (mediaType === "video") { - classes.push("video-embedded", "video"); + classes.push("media-embedded", "video"); classes.push(isPlaying ? "video--active" : "video--hidden"); } else if (mediaType === "application") { - classes.push("video-embedded"); - } else { - if (!isPlaying) classes.push("video-embedded"); + classes.push("media-embedded"); + } else if (!isPlaying) { + classes.push("media-embedded"); } + if (overlay && overlayable) { + classes.push("overlay"); - return classes.join(" "); + // We remove media-embedded on the overlay + if (classes.indexOf("media-embedded") != -1) { + classes.splice(classes.indexOf("media-embedded"), 1); + } + } + + return classes.join(" ").trim(); } render() { - const { metadata, playingUri, fileInfo, contentType, uri } = this.props; + const { + metadata, + playingUri, + fileInfo, + contentType, + uri, + overlay, + overlayable, + } = this.props; const isPlaying = playingUri === uri; const isReadyToPlay = fileInfo && fileInfo.written_bytes > 0; @@ -83,6 +99,10 @@ class Media extends React.PureComponent { fileInfo && fileInfo.file_name ); + if (overlay && !overlayable) { + return null; + } + return (
) : ( -