|
|
@ -92,6 +92,7 @@ export default class Video extends React.PureComponent {
|
|
|
|
width: PropTypes.number,
|
|
|
|
width: PropTypes.number,
|
|
|
|
height: PropTypes.number,
|
|
|
|
height: PropTypes.number,
|
|
|
|
sensitive: PropTypes.bool,
|
|
|
|
sensitive: PropTypes.bool,
|
|
|
|
|
|
|
|
revealed: PropTypes.bool,
|
|
|
|
startTime: PropTypes.number,
|
|
|
|
startTime: PropTypes.number,
|
|
|
|
onOpenVideo: PropTypes.func,
|
|
|
|
onOpenVideo: PropTypes.func,
|
|
|
|
onCloseVideo: PropTypes.func,
|
|
|
|
onCloseVideo: PropTypes.func,
|
|
|
@ -111,7 +112,7 @@ export default class Video extends React.PureComponent {
|
|
|
|
fullscreen: false,
|
|
|
|
fullscreen: false,
|
|
|
|
hovered: false,
|
|
|
|
hovered: false,
|
|
|
|
muted: false,
|
|
|
|
muted: false,
|
|
|
|
revealed: !this.props.sensitive || displaySensitiveMedia,
|
|
|
|
revealed: this.props.revealed === undefined ? (!this.props.sensitive || displaySensitiveMedia) : this.props.revealed,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
setPlayerRef = c => {
|
|
|
|
setPlayerRef = c => {
|
|
|
@ -255,7 +256,7 @@ export default class Video extends React.PureComponent {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
render () {
|
|
|
|
render () {
|
|
|
|
const { preview, src, inline, startTime, onOpenVideo, onCloseVideo, intl, alt, letterbox, fullwidth, detailed } = this.props;
|
|
|
|
const { preview, src, inline, startTime, onOpenVideo, onCloseVideo, intl, alt, letterbox, fullwidth, detailed, sensitive } = this.props;
|
|
|
|
const { containerWidth, currentTime, duration, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state;
|
|
|
|
const { containerWidth, currentTime, duration, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state;
|
|
|
|
const progress = (currentTime / duration) * 100;
|
|
|
|
const progress = (currentTime / duration) * 100;
|
|
|
|
const playerStyle = {};
|
|
|
|
const playerStyle = {};
|
|
|
@ -270,6 +271,13 @@ export default class Video extends React.PureComponent {
|
|
|
|
playerStyle.height = height;
|
|
|
|
playerStyle.height = height;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let warning;
|
|
|
|
|
|
|
|
if (sensitive) {
|
|
|
|
|
|
|
|
warning = <FormattedMessage id='status.sensitive_warning' defaultMessage='Sensitive content' />;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
warning = <FormattedMessage id='status.media_hidden' defaultMessage='Media hidden' />;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<div className={classNames('video-player', { inactive: !revealed, detailed, inline: inline && !fullscreen, fullscreen, letterbox, 'full-width': fullwidth })} style={playerStyle} ref={this.setPlayerRef} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>
|
|
|
|
<div className={classNames('video-player', { inactive: !revealed, detailed, inline: inline && !fullscreen, fullscreen, letterbox, 'full-width': fullwidth })} style={playerStyle} ref={this.setPlayerRef} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>
|
|
|
|
<video
|
|
|
|
<video
|
|
|
@ -292,7 +300,7 @@ export default class Video extends React.PureComponent {
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
|
|
<button type='button' className={classNames('video-player__spoiler', { active: !revealed })} onClick={this.toggleReveal}>
|
|
|
|
<button type='button' className={classNames('video-player__spoiler', { active: !revealed })} onClick={this.toggleReveal}>
|
|
|
|
<span className='video-player__spoiler__title'><FormattedMessage id='status.sensitive_warning' defaultMessage='Sensitive content' /></span>
|
|
|
|
<span className='video-player__spoiler__title'>{warning}</span>
|
|
|
|
<span className='video-player__spoiler__subtitle'><FormattedMessage id='status.sensitive_toggle' defaultMessage='Click to view' /></span>
|
|
|
|
<span className='video-player__spoiler__subtitle'><FormattedMessage id='status.sensitive_toggle' defaultMessage='Click to view' /></span>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
|
|
|
|
|
|
|
|