refactor(utils): add convenience function to get artist's cover url
This commit is contained in:
parent
001a264d7e
commit
cae4d7c0f4
|
@ -1,4 +1,4 @@
|
||||||
import type { Track, Album, ArtistCredit, QueueItemSource } from '~/types'
|
import type { Track, SimpleArtist, Album, ArtistCredit, QueueItemSource } from '~/types'
|
||||||
import { useStore } from '~/store'
|
import { useStore } from '~/store'
|
||||||
import type { QueueTrack } from '~/composables/audio/queue'
|
import type { QueueTrack } from '~/composables/audio/queue'
|
||||||
|
|
||||||
|
@ -30,8 +30,7 @@ export function generateTrackCreditStringFromQueue (track: QueueTrack | QueueIte
|
||||||
|
|
||||||
export function getArtistCoverUrl (artistCredits: ArtistCredit[]): string | undefined {
|
export function getArtistCoverUrl (artistCredits: ArtistCredit[]): string | undefined {
|
||||||
for (const artistCredit of artistCredits) {
|
for (const artistCredit of artistCredits) {
|
||||||
const cover = artistCredit.artist.cover
|
const mediumSquareCrop = getSimpleArtistCoverUrl(artistCredit.artist, 'medium_square_crop')
|
||||||
const mediumSquareCrop = cover?.urls?.medium_square_crop
|
|
||||||
|
|
||||||
if (mediumSquareCrop) {
|
if (mediumSquareCrop) {
|
||||||
return store.getters['instance/absoluteUrl'](mediumSquareCrop)
|
return store.getters['instance/absoluteUrl'](mediumSquareCrop)
|
||||||
|
@ -39,3 +38,17 @@ export function getArtistCoverUrl (artistCredits: ArtistCredit[]): string | unde
|
||||||
}
|
}
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getSimpleArtistCover = ( artist: SimpleArtist ) =>
|
||||||
|
( field: 'original' | 'small_square_crop' | 'medium_square_crop' | 'large_square_crop' ) =>
|
||||||
|
artist.attachment_cover ?
|
||||||
|
( field in artist.attachment_cover ? artist.attachment_cover.urls[field] : null )
|
||||||
|
: null
|
||||||
|
|
||||||
|
/** Returns the absolute Url of this artist's cover on this instance
|
||||||
|
*
|
||||||
|
* @param artist: a simple artist
|
||||||
|
* @param field: the size you want
|
||||||
|
*/
|
||||||
|
export const getSimpleArtistCoverUrl = ( artist: SimpleArtist, field: 'original' | 'small_square_crop' | 'medium_square_crop' | 'large_square_crop' ) =>
|
||||||
|
store.getters['instance/absoluteUrl'](getSimpleArtistCover(artist)(field))
|
||||||
|
|
Loading…
Reference in New Issue