kopia lustrzana https://github.com/manuelkasper/sotlas-frontend
67 wiersze
1.6 KiB
JavaScript
67 wiersze
1.6 KiB
JavaScript
import photos from '../mixins/photos.js'
|
|
import Wikipedia from '../wikipedia.js'
|
|
|
|
export default {
|
|
mixins: [photos],
|
|
computed: {
|
|
coverPhoto () {
|
|
if (this.summit.photos) {
|
|
let coverPhoto = this.summit.photos.find(photo => photo.isCover)
|
|
if (coverPhoto) {
|
|
return {
|
|
src: this.photoSrc(coverPhoto, 'thumb'),
|
|
mediaLink: this.photoSrc(coverPhoto, 'large'),
|
|
attribution: coverPhoto.author
|
|
}
|
|
}
|
|
}
|
|
|
|
if (this.wikipediaPhoto) {
|
|
return this.wikipediaPhoto
|
|
}
|
|
|
|
return null
|
|
}
|
|
},
|
|
watch: {
|
|
summit: {
|
|
handler (newSummit, oldSummit) {
|
|
if (!newSummit.code) {
|
|
return
|
|
}
|
|
if (newSummit && oldSummit && newSummit.code === oldSummit.code && this.wikipediaPhoto !== null) {
|
|
return
|
|
}
|
|
|
|
this.wikipediaPhoto = null
|
|
|
|
if (!this.alwaysLoadWikipedia && this.summit.photos && this.summit.photos.some(photo => photo.isCover)) {
|
|
// We have our own photo; no need to load
|
|
return
|
|
}
|
|
|
|
let loadingSummit = this.summit
|
|
Wikipedia.loadSummitPhoto(this.summit, 320)
|
|
.then(photo => {
|
|
if (!photo) {
|
|
return
|
|
}
|
|
let preloadImg = new Image()
|
|
preloadImg.onload = () => {
|
|
if (this.summit && loadingSummit.code === this.summit.code) {
|
|
this.wikipediaPhoto = photo
|
|
}
|
|
}
|
|
preloadImg.src = photo.src
|
|
})
|
|
},
|
|
immediate: true
|
|
}
|
|
},
|
|
data () {
|
|
return {
|
|
wikipediaPhoto: null
|
|
}
|
|
}
|
|
}
|