diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-09-04 18:50:45 +0200 |
---|---|---|
committer | ThibG <thib@sitedethib.com> | 2018-09-05 11:58:56 +0200 |
commit | d8b2f15b23773880ffd5cee52b8c9a78c2e2bc53 (patch) | |
tree | 48d6cf1a87e6924fea8a594c1e74654e4e4ced5f /app/javascript | |
parent | a9ed9d3572da2737aa36a236d1aa89391fbba934 (diff) |
Pause video playback if toot is collapsed or CWs folded (fixes #146)
Diffstat (limited to 'app/javascript')
-rw-r--r-- | app/javascript/flavours/glitch/components/status.js | 1 | ||||
-rw-r--r-- | app/javascript/flavours/glitch/features/video/index.js | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js index 9f47abfef..f3709f653 100644 --- a/app/javascript/flavours/glitch/components/status.js +++ b/app/javascript/flavours/glitch/components/status.js @@ -430,6 +430,7 @@ export default class Status extends ImmutablePureComponent { sensitive={status.get('sensitive')} letterbox={settings.getIn(['media', 'letterbox'])} fullwidth={settings.getIn(['media', 'fullwidth'])} + preventPlayback={isCollapsed || !isExpanded} onOpenVideo={this.handleOpenVideo} />)} </Bundle> diff --git a/app/javascript/flavours/glitch/features/video/index.js b/app/javascript/flavours/glitch/features/video/index.js index 7e284a0bc..44aba797c 100644 --- a/app/javascript/flavours/glitch/features/video/index.js +++ b/app/javascript/flavours/glitch/features/video/index.js @@ -101,6 +101,7 @@ export default class Video extends React.PureComponent { fullwidth: PropTypes.bool, detailed: PropTypes.bool, inline: PropTypes.bool, + preventPlayback: PropTypes.bool, intl: PropTypes.object.isRequired, }; @@ -215,6 +216,12 @@ export default class Video extends React.PureComponent { document.removeEventListener('MSFullscreenChange', this.handleFullscreenChange, true); } + componentDidUpdate (prevProps) { + if (this.video && this.state.revealed && this.props.preventPlayback && !prevProps.preventPlayback) { + this.video.pause(); + } + } + handleFullscreenChange = () => { this.setState({ fullscreen: isFullscreen() }); } |