hide rich media preview image in case of broken image

This commit is contained in:
taehoon 2019-08-04 14:15:43 -04:00
parent 17dc7357d5
commit bb9cee84a3
2 changed files with 15 additions and 1 deletions

View File

@ -5,6 +5,11 @@ const LinkPreview = {
'size', 'size',
'nsfw' 'nsfw'
], ],
data () {
return {
imageLoaded: false
}
},
computed: { computed: {
useImage () { useImage () {
// Currently BE shoudn't give cards if tagged NSFW, this is a bit paranoid // Currently BE shoudn't give cards if tagged NSFW, this is a bit paranoid
@ -15,6 +20,15 @@ const LinkPreview = {
useDescription () { useDescription () {
return this.card.description && /\S/.test(this.card.description) return this.card.description && /\S/.test(this.card.description)
} }
},
created () {
if (this.useImage) {
const newImg = new Image()
newImg.onload = () => {
this.imageLoaded = true
}
newImg.src = this.card.image
}
} }
} }

View File

@ -7,7 +7,7 @@
rel="noopener" rel="noopener"
> >
<div <div
v-if="useImage" v-if="useImage && imageLoaded"
class="card-image" class="card-image"
:class="{ 'small-image': size === 'small' }" :class="{ 'small-image': size === 'small' }"
> >