pleroma-fe/src/components/link-preview/link-preview.js

47 lines
993 B
JavaScript
Raw Normal View History

import { mapGetters } from 'vuex'
2019-01-28 00:47:30 +11:00
const LinkPreview = {
name: 'LinkPreview',
props: [
2019-01-28 07:33:36 +11:00
'card',
'size',
'nsfw'
],
data () {
return {
imageLoaded: false
}
},
2019-01-28 07:33:36 +11:00
computed: {
useImage () {
// Currently BE shoudn't give cards if tagged NSFW, this is a bit paranoid
// as it makes sure to hide the image if somehow NSFW tagged preview can
// exist.
return this.card.image && !this.censored && this.size !== 'hide'
},
censored () {
return this.nsfw && this.hideNsfwConfig
2019-01-28 07:33:36 +11:00
},
useDescription () {
return this.card.description && /\S/.test(this.card.description)
},
hideNsfwConfig () {
return this.mergedConfig.hideNsfw
},
...mapGetters([
'mergedConfig'
])
},
created () {
if (this.useImage) {
const newImg = new Image()
newImg.onload = () => {
this.imageLoaded = true
}
newImg.src = this.card.image
}
2019-01-28 07:33:36 +11:00
}
2019-01-28 00:47:30 +11:00
}
export default LinkPreview