import clsx from 'clsx'; import { memo, MouseEvent } from 'react'; import styles from './mobile-fullscreen-player.module.css'; import { ActionIcon } from '/@/shared/components/action-icon/action-icon'; import { Group } from '/@/shared/components/group/group'; import { Rating } from '/@/shared/components/rating/rating'; import { Separator } from '/@/shared/components/separator/separator'; import { TextTitle } from '/@/shared/components/text-title/text-title'; import { Text } from '/@/shared/components/text/text'; import { PlaybackSelectors } from '/@/shared/constants/playback-selectors'; import { QueueSong } from '/@/shared/types/domain-types'; interface MobileFullscreenPlayerMetadataProps { currentSong?: QueueSong; onToggleFavorite: (e: MouseEvent) => void; onUpdateRating: (rating: number) => void; showRating?: boolean; } export const MobileFullscreenPlayerMetadata = memo( ({ currentSong, onToggleFavorite, onUpdateRating, showRating, }: MobileFullscreenPlayerMetadataProps) => { const title = currentSong?.name; const artists = currentSong?.artists; const album = currentSong?.album; const container = currentSong?.container; const year = currentSong?.releaseYear; const isFavorite = currentSong?.userFavorite; const rating = currentSong?.userRating; const hasMetadata = container || year; return (
{title || '—'}
{artists?.map((a) => a.name).join(', ') || '—'} {album || '—'} {hasMetadata && ( {container && {container}} {year && ( <> {container && } {year} )} )} {showRating && ( )}
); }, ); MobileFullscreenPlayerMetadata.displayName = 'MobileFullscreenPlayerMetadata';