mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-22 07:15:47 +00:00
fix(ui): split album and track artists (OpenSubsonic) (#696)
* fix(ui): split OpenSubsonic album and track artists in header and player Album detail header uses albumArtists from album or child songs; player bar, mobile player, and mini player use structured track artists with per-id links. Adds deriveAlbumHeaderArtistRefs helper and OpenArtistRefInline. Fixes #552 * docs: changelog and credits for OpenSubsonic artist links (PR #696)
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import { emit } from '@tauri-apps/api/event';
|
||||
import CachedImage from '../CachedImage';
|
||||
import { OpenArtistRefInline } from '../OpenArtistRefInline';
|
||||
import type { MiniTrackInfo } from '../../utils/miniPlayerBridge';
|
||||
|
||||
interface Props {
|
||||
@@ -26,9 +28,20 @@ export function MiniMeta({ track, miniCoverSrc, miniCoverKey }: Props) {
|
||||
<div className="mini-player__title" title={track?.title}>
|
||||
{track?.title ?? '—'}
|
||||
</div>
|
||||
{track?.artist && (
|
||||
{track?.artists && track.artists.length > 0 ? (
|
||||
<div className="mini-player__artist" title={track.artists.map(a => a.name).filter(Boolean).join(' · ')}>
|
||||
<OpenArtistRefInline
|
||||
refs={track.artists}
|
||||
fallbackName={track.artist}
|
||||
onGoArtist={id => { void emit('mini:navigate', { to: `/artist/${id}` }); }}
|
||||
as="none"
|
||||
linkTag="span"
|
||||
linkClassName="mini-player__artist-link"
|
||||
/>
|
||||
</div>
|
||||
) : track?.artist ? (
|
||||
<div className="mini-player__artist" title={track.artist}>{track.artist}</div>
|
||||
)}
|
||||
) : null}
|
||||
{track?.album && (
|
||||
<div className="mini-player__album" title={track.album}>{track.album}</div>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user