-
Notifications
You must be signed in to change notification settings - Fork 43
/
Video.js
54 lines (45 loc) · 1.32 KB
/
Video.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import React from 'react'
import PropTypes from 'prop-types'
import styles from './styles'
import VideoJS from 'react-video-wrapper'
class Video extends React.Component {
render () {
let {media, gif, autoPlay} = this.props, videoSrc = ''
media[0].video_info.variants.forEach( v => {
if (v.url.indexOf('.mp4') > -1) {
videoSrc = v.url
}
})
let VideoComponent = (
<video src={videoSrc} controls={!gif} autoPlay={gif || autoPlay} loop={gif} style={styles.video}>
{'Your browser does not support the '}<code>{'video '}</code>{'element.'}
</video>
)
if (typeof videojs !== 'undefined') {
VideoComponent = (
<VideoJS src={videoSrc} controls={!gif} autoPlay={gif || autoPlay} loop={gif} style={styles.video}>
{'Your browser does not support the '}<code>{'video '}</code>{'element.'}
</VideoJS>
)
}
return (
<div className="AdaptiveMedia" style={styles.AdaptiveMedia}>
{VideoComponent}
{gif ?
<div className="AdaptiveMedia-badge" style={styles.AdaptiveMediaBadge}>
GIF
</div> : null}
</div>
)
}
}
Video.propTypes = {
'media': PropTypes.array,
'gif': PropTypes.bool
}
Video.defaultProps = {
'media': [],
'gif': false
}
Video.displayName = 'Video'
export default Video