aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshpuld <shp@cock.li>2019-01-16 17:27:23 +0200
committershpuld <shp@cock.li>2019-01-16 17:27:23 +0200
commite1c3691a72551926a292ed11d8fb0c723ead1552 (patch)
tree350edf40847c28fdf64b5ae63300e9ab9ca5e7ba
parent17735943d5cdde1eb852d36f1c3bb699d23f7eb6 (diff)
Add escape button support
-rw-r--r--src/components/media_modal/media_modal.js16
-rw-r--r--src/components/media_modal/media_modal.vue4
-rw-r--r--src/modules/media_viewer.js1
3 files changed, 15 insertions, 6 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>
diff --git a/src/modules/media_viewer.js b/src/modules/media_viewer.js
index 27714bae..a24b408d 100644
--- a/src/modules/media_viewer.js
+++ b/src/modules/media_viewer.js
@@ -28,7 +28,6 @@ const mediaViewer = {
},
setCurrent ({ commit, state }, current) {
const index = state.media.indexOf(current)
- console.log(index, current)
commit('setCurrent', index || 0)
},
closeMediaViewer ({ commit }) {