fix(front): use large cropped images consistently

This commit is contained in:
ArneBo 2025-01-22 14:12:11 +01:00
parent 279696d593
commit 6f5b40f68e
6 changed files with 18 additions and 12 deletions

View File

@ -38,7 +38,7 @@ if (import.meta.env.PROD) {
const store = useStore() const store = useStore()
const imageUrl = computed(() => props.album.cover?.urls.original const imageUrl = computed(() => props.album.cover?.urls.original
? store.getters['instance/absoluteUrl'](props.album.cover?.urls.medium_square_crop) ? store.getters['instance/absoluteUrl'](props.album.cover?.urls.large_square_crop)
: `${import.meta.env.BASE_URL}embed-default-cover.jpeg` : `${import.meta.env.BASE_URL}embed-default-cover.jpeg`
) )
</script> </script>

View File

@ -31,14 +31,14 @@ if (import.meta.env.PROD) {
router.push({ name: 'library.artists.detail', params: { id: artist.id } }) router.push({ name: 'library.artists.detail', params: { id: artist.id } })
} }
const cover = computed(() => !props.artist.cover?.urls.original const cover = computed(() => !props.artist.cover?.urls.large_square_crop
? props.artist.albums.find(album => !!album.cover?.urls.original)?.cover ? props.artist.albums.find(album => !!album.cover?.urls.large_square_crop)?.cover
: props.artist.cover : props.artist.cover
) )
const store = useStore() const store = useStore()
const imageUrl = computed(() => cover.value?.urls.original const imageUrl = computed(() => cover.value?.urls.original
? store.getters['instance/absoluteUrl'](cover.value.urls.medium_square_crop) ? store.getters['instance/absoluteUrl'](cover.value.urls.large_square_crop)
: `${import.meta.env.BASE_URL}embed-default-cover.jpeg` : `${import.meta.env.BASE_URL}embed-default-cover.jpeg`
) )
</script> </script>

View File

@ -159,7 +159,7 @@ const remove = async () => {
<Layout flex> <Layout flex>
<img <img
v-if="object.cover && object.cover.urls.original" v-if="object.cover && object.cover.urls.original"
v-lazy="store.getters['instance/absoluteUrl'](object.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](object.cover.urls.large_square_crop)"
alt="" alt=""
class="channel-image" class="channel-image"
> >
@ -167,7 +167,7 @@ const remove = async () => {
v-else-if="object.artist_credit && object.artist_credit[0] && object.artist_credit[0].artist.cover" v-else-if="object.artist_credit && object.artist_credit[0] && object.artist_credit[0].artist.cover"
alt="" alt=""
class="channel-image" class="channel-image"
:src="object.artist_credit[0].artist.cover.urls.medium_square_crop" :src="object.artist_credit[0].artist.cover.urls.large_square_crop"
/> />
<img <img
v-else v-else

View File

@ -57,13 +57,13 @@ const wikipediaUrl = computed(() => `https://en.wikipedia.org/w/index.php?search
const musicbrainzUrl = computed(() => object.value?.mbid ? `https://musicbrainz.org/artist/${object.value.mbid}` : null) const musicbrainzUrl = computed(() => object.value?.mbid ? `https://musicbrainz.org/artist/${object.value.mbid}` : null)
const discogsUrl = computed(() => `https://discogs.com/search/?type=artist&title=${encodeURI(object.value?.name ?? '')}`) const discogsUrl = computed(() => `https://discogs.com/search/?type=artist&title=${encodeURI(object.value?.name ?? '')}`)
const publicLibraries = computed(() => libraries.value?.filter(library => library.privacy_level === 'everyone') ?? []) const publicLibraries = computed(() => libraries.value?.filter(library => library.privacy_level === 'everyone') ?? [])
const cover = computed(() => object.value?.cover?.urls.original const cover = computed(() => object.value?.cover?.urls.large_square_crop
? object.value.cover ? object.value.cover
: object.value?.albums.find(album => album.cover?.urls.original)?.cover : object.value?.albums.find(album => album.cover?.urls.large_square_crop)?.cover || `${import.meta.env.BASE_URL}embed-default-cover.jpeg`
) )
const imageUrl = computed(() => cover.value?.urls.original const imageUrl = computed(() => cover.value?.urls.large_square_crop
? store.getters['instance/absoluteUrl'] ? store.getters['instance/absoluteUrl']
(cover.value.urls.original) (cover.value.urls.large_square_crop)
: `${import.meta.env.BASE_URL}embed-default-cover.jpeg` : `${import.meta.env.BASE_URL}embed-default-cover.jpeg`
) )
@ -280,3 +280,9 @@ watch(() => props.id, fetchData, { immediate: true })
</template> </template>
</Layout> </Layout>
</template> </template>
<style scoped>
.channel-image {
border-radius: 50%;
}
</style>

View File

@ -137,7 +137,7 @@ watch(showDeleteModal, (newValue) => {
<Layout flex> <Layout flex>
<img <img
v-if="track.album && track.album.cover" v-if="track.album && track.album.cover"
v-lazy="store.getters['instance/absoluteUrl'](track.album.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](track.album.cover.urls.large_square_crop)"
alt="" alt=""
class="channel-image" class="channel-image"
> >

View File

@ -96,7 +96,7 @@ const recentActivity = ref(0)
<!-- Profile Picture --> <!-- Profile Picture -->
<img <img
v-if="object?.icon" v-if="object?.icon"
v-lazy="store.getters['instance/absoluteUrl'](object.icon.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](object.icon.urls.large_square_crop)"
alt="" alt=""
class="avatar" class="avatar"
/> />