added desktop parity multi artist metadata

This commit is contained in:
Boof2015
2026-07-28 13:30:01 -04:00
parent 646862a0e6
commit ce4e173231
28 changed files with 1849 additions and 46 deletions
+12 -9
View File
@@ -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 },
]);
});