import React from 'react' import { useMediaQuery } from '@material-ui/core' import { Link } from 'react-router-dom' import clsx from 'clsx' import { QualityInfo } from '../common' import { decisionService } from '../transcode' import useStyle from './styles' import { useDrag } from 'react-dnd' import { DraggableTypes } from '../consts' const AudioTitle = React.memo(({ audioInfo, gainInfo, isMobile }) => { const classes = useStyle() const className = classes.audioTitle const isDesktop = useMediaQuery('(min-width:810px)') const song = audioInfo.song const [, dragSongRef] = useDrag( () => ({ type: DraggableTypes.SONG, item: { ids: [song?.id] }, options: { dropEffect: 'copy' }, }), [song], ) if (!song) { return '' } const qi = { suffix: song.suffix, bitRate: song.bitRate, rgAlbumGain: song.rgAlbumGain, rgAlbumPeak: song.rgAlbumPeak, rgTrackGain: song.rgTrackGain, rgTrackPeak: song.rgTrackPeak, } const decision = decisionService.getCachedDecision(audioInfo.trackId) const transcodeProps = decision ? { transcodeStream: decision.transcodeStream || null, isDirectPlay: decision.canDirectPlay, } : {} const subtitle = song.tags?.['subtitle'] const title = song.title + (subtitle ? ` (${subtitle})` : '') const linkTo = audioInfo.isRadio ? `/radio/${audioInfo.trackId}/show` : song.playlistId ? `/playlist/${song.playlistId}/show` : `/album/${song.albumId}/show` return ( {title} {isDesktop && ( )} {isMobile ? ( <> {song.artist} {song.album} {song.year ? ` - ${song.year}` : ''} ) : ( {song.artist} -{' '} {song.album} {song.year ? ` - ${song.year}` : ''} )} ) }) AudioTitle.displayName = 'AudioTitle' export default AudioTitle