diff --git a/src/components/media_modal/media_modal.js b/src/components/media_modal/media_modal.js index 0e9f6b11..c53eeccd 100644 --- a/src/components/media_modal/media_modal.js +++ b/src/components/media_modal/media_modal.js @@ -16,6 +16,8 @@ library.add( ) const onlyXAxis = ([x, y]) => [x, 0] +const SCALING_RESET_MIN = 1.1 +const SCALING_ENABLE_MOVE_THRESHOLD = 1 const MediaModal = { components: { @@ -90,11 +92,17 @@ const MediaModal = { } }, handleSwipePreview (offsets) { - this.$store.dispatch('swipeScaler/apply', { offsets: onlyXAxis(offsets) }) + this.$store.dispatch('swipeScaler/apply', { + offsets: this.scaling > SCALING_ENABLE_MOVE_THRESHOLD ? offsets : onlyXAxis(offsets) + }) }, handleSwipeEnd (sign) { + if (this.scaling > SCALING_ENABLE_MOVE_THRESHOLD) { + this.$store.dispatch('swipeScaler/finish') + return + } if (sign === 0) { - this.$store.dispatch('swipeScaler/revert') + this.$store.dispatch('swipeScaler/reset') } else if (sign > 0) { this.goNext() } else { @@ -106,7 +114,11 @@ const MediaModal = { this.$store.dispatch('swipeScaler/apply', { offsets, scaling }) }, handlePinchEnd () { - this.$store.dispatch('swipeScaler/finish') + if (this.scaling > SCALING_RESET_MIN) { + this.$store.dispatch('swipeScaler/finish') + } else { + this.$store.dispatch('swipeScaler/reset') + } }, handleKeyupEvent (e) { if (this.showing && e.keyCode === 27) { // escape