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