diff options
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/media_modal/media_modal.js | 16 | ||||
| -rw-r--r-- | src/components/media_modal/media_modal.vue | 4 |
2 files changed, 15 insertions, 5 deletions
diff --git a/src/components/media_modal/media_modal.js b/src/components/media_modal/media_modal.js index 91601515..95c3b4a9 100644 --- a/src/components/media_modal/media_modal.js +++ b/src/components/media_modal/media_modal.js @@ -24,24 +24,34 @@ const MediaModal = { return this.currentMedia ? fileTypeService.fileType(this.currentMedia.mimetype) : null } }, + created () { + document.addEventListener('keyup', e => { + if (e.keyCode === 27 && this.showing) { // escape + this.hide() + } + }) + }, methods: { hide () { this.$store.dispatch('closeMediaViewer') }, onVideoDataLoad (e) { + if (!e.srcElement) { + return + } if (typeof e.srcElement.webkitAudioDecodedByteCount !== 'undefined') { // non-zero if video has audio track if (e.srcElement.webkitAudioDecodedByteCount > 0) { - this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly + this.loopVideo = this.$store.state.config.loopVideo && !this.$store.state.config.loopVideoSilentOnly } } else if (typeof e.srcElement.mozHasAudio !== 'undefined') { // true if video has audio track if (e.srcElement.mozHasAudio) { - this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly + this.loopVideo = this.$store.state.config.loopVideo && !this.$store.state.config.loopVideoSilentOnly } } else if (typeof e.srcElement.audioTracks !== 'undefined') { if (e.srcElement.audioTracks.length > 0) { - this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly + this.loopVideo = this.$store.state.config.loopVideo && !this.$store.state.config.loopVideoSilentOnly } } } diff --git a/src/components/media_modal/media_modal.vue b/src/components/media_modal/media_modal.vue index 6e291ac5..c8b4c306 100644 --- a/src/components/media_modal/media_modal.vue +++ b/src/components/media_modal/media_modal.vue @@ -7,8 +7,8 @@ :src="currentMedia.url" @click.stop="" controls autoplay - :loop="loopVideo" - @loadeddata="onVideoDataLoad"> + @loadeddata="onVideoDataLoad" + :loop="loopVideo"> </video> </div> </template> |
