diff options
| author | xj9 <xj9@heropunch.io> | 2017-03-08 20:23:10 -0700 |
|---|---|---|
| committer | xj9 <xj9@heropunch.io> | 2017-03-08 20:23:10 -0700 |
| commit | 502757da28d573641a48197c284b7e40dfc8154e (patch) | |
| tree | ec3d6eee6bbabe36e6ee444d757289db8207929b /src/components/attachment/attachment.js | |
| parent | 049c74f8e87e0aa19ee416bb72c987296a3e2dc9 (diff) | |
improvements on fature/better-nsfw-image-loading
- loading indicator
- avoid hitting the cache if we already know the image was loaded
- more responsive toggle
Diffstat (limited to 'src/components/attachment/attachment.js')
| -rw-r--r-- | src/components/attachment/attachment.js | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/components/attachment/attachment.js b/src/components/attachment/attachment.js index c3f52f57..7715add5 100644 --- a/src/components/attachment/attachment.js +++ b/src/components/attachment/attachment.js @@ -11,7 +11,9 @@ const Attachment = { return { nsfwImage, hideNsfwLocal: this.$store.state.config.hideNsfw, - showHidden: false + showHidden: false, + loading: false, + img: document.createElement('img') } }, computed: { @@ -20,6 +22,13 @@ const Attachment = { }, hidden () { return this.nsfw && this.hideNsfwLocal && !this.showHidden + }, + autoHeight () { + if (this.type === 'image' && this.nsfw) { + return { + 'min-height': '311px' + } + } } }, methods: { @@ -29,10 +38,15 @@ const Attachment = { } }, toggleHidden () { - let img = document.createElement('img') - img.src = this.attachment.url - img.onload = () => { - this.showHidden = !this.showHidden + if (this.img.onload) { + this.img.onload() + } else { + this.loading = true + this.img.src = this.attachment.url + this.img.onload = () => { + this.loading = false + this.showHidden = !this.showHidden + } } } } |
