recognize video links (#1357)
This commit is contained in:
		
							parent
							
								
									adcf048f4e
								
							
						
					
					
						commit
						6f68a700ce
					
				@ -22,6 +22,7 @@ export function decodeOriginalUrl (imgproxyUrl) {
 | 
			
		||||
function ImageOriginal ({ src, topLevel, rel, tab, children, onClick, ...props }) {
 | 
			
		||||
  const me = useMe()
 | 
			
		||||
  const [showImage, setShowImage] = useState(false)
 | 
			
		||||
  const [showVideo, setShowVideo] = useState(false)
 | 
			
		||||
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    if (me?.privates?.imgproxyOnly && tab !== 'preview') return
 | 
			
		||||
@ -29,10 +30,15 @@ function ImageOriginal ({ src, topLevel, rel, tab, children, onClick, ...props }
 | 
			
		||||
    const img = new window.Image()
 | 
			
		||||
    img.onload = () => setShowImage(true)
 | 
			
		||||
    img.src = src
 | 
			
		||||
    const video = document.createElement('video')
 | 
			
		||||
    video.onloadeddata = () => setShowVideo(true)
 | 
			
		||||
    video.src = src
 | 
			
		||||
 | 
			
		||||
    return () => {
 | 
			
		||||
      img.onload = null
 | 
			
		||||
      img.src = ''
 | 
			
		||||
      video.onloadeddata = null
 | 
			
		||||
      video.src = ''
 | 
			
		||||
    }
 | 
			
		||||
  }, [src, showImage])
 | 
			
		||||
 | 
			
		||||
@ -45,6 +51,8 @@ function ImageOriginal ({ src, topLevel, rel, tab, children, onClick, ...props }
 | 
			
		||||
        onError={() => setShowImage(false)}
 | 
			
		||||
      />
 | 
			
		||||
    )
 | 
			
		||||
  } else if (showVideo) {
 | 
			
		||||
    return <video src={src} controls />
 | 
			
		||||
  } else {
 | 
			
		||||
    // user is not okay with loading original url automatically or there was an error loading the image
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -128,21 +128,24 @@
 | 
			
		||||
    margin-bottom: .5rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text img {
 | 
			
		||||
.text img, .text video {
 | 
			
		||||
    display: block;
 | 
			
		||||
    margin-top: .5rem;
 | 
			
		||||
    margin-bottom: .5rem;
 | 
			
		||||
    max-width: 100%;
 | 
			
		||||
    cursor: zoom-in;
 | 
			
		||||
    height: auto;
 | 
			
		||||
    max-height: 25vh;
 | 
			
		||||
    object-fit: contain;
 | 
			
		||||
    object-position: left top;
 | 
			
		||||
    min-width: 50%;
 | 
			
		||||
    aspect-ratio: var(--aspect-ratio);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text img.topLevel {
 | 
			
		||||
.text img {
 | 
			
		||||
    cursor: zoom-in;
 | 
			
		||||
    object-fit: contain;
 | 
			
		||||
    object-position: left top;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text img.topLevel, .text video.topLevel {
 | 
			
		||||
    margin-top: .75rem;
 | 
			
		||||
    margin-bottom: .75rem;
 | 
			
		||||
    max-height: 35vh;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user