diff --git a/src/Components/ResourcePageComponents/VideoPlayer.js b/src/Components/ResourcePageComponents/VideoPlayer.js index 940917df9190d882df8c4d5f77798cbe04b4bb93..57b1b06c0271db6a4d36133db6426159f7082255 100644 --- a/src/Components/ResourcePageComponents/VideoPlayer.js +++ b/src/Components/ResourcePageComponents/VideoPlayer.js @@ -19,58 +19,61 @@ along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/> import React from 'react' import styled from 'styled-components' -function GetEmbeddedLink (link) { +function GetEmbeddedLink(link) { var embed = undefined var link_id = undefined if (link.indexOf("youtube") !== -1) { //plain youtebe.com/ link - if(link.indexOf("embed/") !== -1) { //if it's already an embedded link, return it + if (link.indexOf("embed/") !== -1) { //if it's already an embedded link, return it return link } link = link.split("&")[0] //else remove features and other queries link_id = link.split("v=")[1] //get video id embed = "https://www.youtube.com/embed/" + link_id; //create embedded link - } - else if (link.indexOf("youtu.be") !== -1) { //if it's a youtu.be link - link = link.split("&")[0].split("?")[0] //remove queries and features if existent - link_id = link.split(".be/")[1] //get video id - embed = "https://www.youtube.com/embed/" + link_id; //create embedded link - } - else if (link.indexOf("vimeo") !== -1) { //if the 13th character = o (vimeo videos) - link_id = link.split("?")[0].split("/") - console.log(link_id) //key # = from 19th character on - embed = "https://player.vimeo.com/video/" + link_id.pop(); //Add vimeo link before key # - } - return embed + } + else if (link.indexOf("youtu.be") !== -1) { //if it's a youtu.be link + link = link.split("&")[0].split("?")[0] //remove queries and features if existent + link_id = link.split(".be/")[1] //get video id + embed = "https://www.youtube.com/embed/" + link_id; //create embedded link + } + else if (link.indexOf("vimeo") !== -1) { //if the 13th character = o (vimeo videos) + link_id = link.split("?")[0].split("/") + console.log(link_id) //key # = from 19th character on + embed = "https://player.vimeo.com/video/" + link_id.pop(); //Add vimeo link before key # + } + return embed } -export default function VideoPlayer (props) { +export default function VideoPlayer(props) { return ( <> - { - props.urlVerified ? - ( - <VideoContainer> - <iframe - title="Video Player" - src={GetEmbeddedLink(props.link)} - frameBorder="0" allowFullScreen className="video" - /> - </VideoContainer> - ) - : - ( - <VideoContainer> - <video controls className="video"> - <source src={props.videoUrl} type="video/webm"/> - <source src={props.videoUrl} type="video/mp4"/> - <p>Seu navegador não permite a exibição deste vídeo. É necessário baixar o vídeo para poder visualizá-lo.</p> - </video> - </VideoContainer> - - ) - } + { + props.urlVerified ? + ( + <VideoContainer> + <iframe + title="Video Player" + src={GetEmbeddedLink(props.link)} + frameBorder="0" allowFullScreen className="video" + /> + </VideoContainer> + ) + : + ( + props.videoType === "video/mp4" ? + <VideoContainer> + <video controls className="video"> + <source src={props.videoUrl} type="video/webm" /> + <source src={props.videoUrl} type="video/mp4" /> + </video> + </VideoContainer> + : + <ErrorParagraph> + Seu navegador não permite a exibição deste vídeo. É necessário baixar o vídeo para poder visualizá-lo. + </ErrorParagraph> + ) + } </> ) } @@ -89,3 +92,7 @@ const VideoContainer = styled.div` left : 0; } ` + +const ErrorParagraph = styled.p` + text-align: center; +` diff --git a/src/Components/TabPanels/PanelComponents/NoContent.js b/src/Components/TabPanels/PanelComponents/NoContent.js index cf1f405c52870033c676b9a05a244b3bed1a97e2..7c8c7141476c3c2793931b448168ce3db00ddc50 100644 --- a/src/Components/TabPanels/PanelComponents/NoContent.js +++ b/src/Components/TabPanels/PanelComponents/NoContent.js @@ -18,19 +18,20 @@ along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/> import React from 'react' import styled from 'styled-components' -import NoContentImage from '../../../img/img-16.png' +import defaultNoContent from '../../../img/img-16.png' -export default function NoContent(props) { + +export default function NoContent({text, image}) { return ( <DivTextoNoPublications> <InnerDiv> <ImgDiv> - <img alt="" src={NoContentImage} style={{ width: "130px", verticalAlign: "middle", border: "0" }} /> + <img alt="" src={image || defaultNoContent } style={{ width: "130px", verticalAlign: "middle", border: "0" }} /> </ImgDiv> <TextDiv> - <NoPubSpan>{props.text}</NoPubSpan> + <NoPubSpan>{text}</NoPubSpan> </TextDiv> </InnerDiv> </DivTextoNoPublications> diff --git a/src/Components/TabPanels/PanelComponents/TemplateColecao.js b/src/Components/TabPanels/PanelComponents/TemplateColecao.js index cb2146f74e315a2531a677f0bdc6a4acf8e523b8..b1526eb584834bb5c45f03436eef946c512b8512 100644 --- a/src/Components/TabPanels/PanelComponents/TemplateColecao.js +++ b/src/Components/TabPanels/PanelComponents/TemplateColecao.js @@ -24,6 +24,7 @@ import Title from './PanelTitle.js' import { WhiteContainer, StyledGrid } from '../StyledComponents.js' import { ButtonsAreaColecao } from './ButtonsArea' import LoadingSpinner from '../../LoadingSpinner.js' +import noCollFound from '../../../img/Pagina_vazia_colecao.png' export default function PanelTemplateColecao(props) { const RenderFollowedColCard = (card, followerBoolean) => { @@ -86,7 +87,10 @@ export default function PanelTemplateColecao(props) { : props.length === 0 ? ( - <NoContent text={props.noContentText} /> + <NoContent + text={props.noContentText} + image={noCollFound} + /> ) : ( diff --git a/src/Components/TabPanels/PanelComponents/TemplateRecurso.js b/src/Components/TabPanels/PanelComponents/TemplateRecurso.js index 6079a52a1a19c3d83531d25394203b1dc26695a9..d77f0208d3f072a5385a598d9d99c74e963cead2 100644 --- a/src/Components/TabPanels/PanelComponents/TemplateRecurso.js +++ b/src/Components/TabPanels/PanelComponents/TemplateRecurso.js @@ -24,6 +24,7 @@ import Title from './PanelTitle.js' import { WhiteContainer, StyledGrid } from '../StyledComponents.js' import { ButtonsAreaRecurso } from './ButtonsArea' import LoadingSpinner from '../../LoadingSpinner.js' +import noLearnObjFound from '../../../img/Pagina_vazia_Sem_publicar.png' export default function Template(props) { @@ -46,6 +47,7 @@ export default function Template(props) { ( <NoContent text={props.noContentText} + image={noLearnObjFound} /> ) :