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 type { QueueTrack } from '~/composables/audio/queue'
|
||||
|
||||
|
@ -30,8 +30,7 @@ export function generateTrackCreditStringFromQueue (track: QueueTrack | QueueIte
|
|||
|
||||
export function getArtistCoverUrl (artistCredits: ArtistCredit[]): string | undefined {
|
||||
for (const artistCredit of artistCredits) {
|
||||
const cover = artistCredit.artist.cover
|
||||
const mediumSquareCrop = cover?.urls?.medium_square_crop
|
||||
const mediumSquareCrop = getSimpleArtistCoverUrl(artistCredit.artist, 'medium_square_crop')
|
||||
|
||||
if (mediumSquareCrop) {
|
||||
return store.getters['instance/absoluteUrl'](mediumSquareCrop)
|
||||
|
@ -39,3 +38,17 @@ export function getArtistCoverUrl (artistCredits: ArtistCredit[]): string | unde
|
|||
}
|
||||
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