mirror of
https://github.com/Boof2015/astra-mobile.git
synced 2026-08-19 20:20:18 +02:00
added desktop parity multi artist metadata
This commit is contained in:
@@ -262,20 +262,23 @@ export function NowPlayingOverlay() {
|
||||
[libraryTracks, track]
|
||||
);
|
||||
const artistName = track
|
||||
? resolveNavigationArtist(
|
||||
libraryTrack ?? { artist: track.artist, album_artist: track.albumArtist ?? null },
|
||||
? resolveNavigationArtist(
|
||||
libraryTrack ?? {
|
||||
artist: track.artist,
|
||||
artist_names: track.artistNames,
|
||||
album_artist: track.albumArtist ?? null,
|
||||
album_artist_names: track.albumArtistNames,
|
||||
},
|
||||
artistGroupingMode
|
||||
)
|
||||
: '';
|
||||
const artistCreditTokens = useMemo(() => {
|
||||
if (!track) return [];
|
||||
const collaborators = splitCollaborators(track.artist);
|
||||
return buildArtistNameTokens(
|
||||
collaborators.length > 0 ? collaborators : [track.artist]
|
||||
).map((token) => ({
|
||||
...token,
|
||||
separator: token.separator ? ', ' : null,
|
||||
}));
|
||||
const collaborators =
|
||||
track.artistNames && track.artistNames.length > 0
|
||||
? track.artistNames
|
||||
: splitCollaborators(track.artist);
|
||||
return buildArtistNameTokens(collaborators.length > 0 ? collaborators : [track.artist]);
|
||||
}, [track]);
|
||||
const albumKey = track?.albumIdentityKey ?? libraryTrack?.album_identity_key;
|
||||
|
||||
|
||||
@@ -24,3 +24,10 @@ test('builds separate clickable credits for collaborative track artists', () =>
|
||||
{ artist: 'ValkyR', separator: null },
|
||||
]);
|
||||
});
|
||||
|
||||
test('structured credits preserve commas and ampersands inside one artist name', () => {
|
||||
assert.deepEqual(buildArtistNameTokens(['Earth, Wind & Fire', 'The Emotions']), [
|
||||
{ artist: 'Earth, Wind & Fire', separator: ' & ' },
|
||||
{ artist: 'The Emotions', separator: null },
|
||||
]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user