import React from 'react' import PropTypes from 'prop-types' class ExtendedVideoPlayer extends React.PureComponent { handleLoadedData = () => { if (this.props.time) { this.video.currentTime = this.props.time } } componentDidMount () { this.video.addEventListener('loadeddata', this.handleLoadedData) } componentWillUnmount () { this.video.removeEventListener('loadeddata', this.handleLoadedData) } setRef = (c) => { this.video = c } handleClick = e => { e.stopPropagation() const handler = this.props.onClick if (handler) handler() } render () { const { src, muted, controls, alt } = this.props return (
) } } ExtendedVideoPlayer.propTypes = { src: PropTypes.string.isRequired, alt: PropTypes.string, width: PropTypes.number, height: PropTypes.number, time: PropTypes.number, controls: PropTypes.bool.isRequired, muted: PropTypes.bool.isRequired, onClick: PropTypes.func, } export default ExtendedVideoPlayer