2022-08-03 23:48:39 +08:00
|
|
|
import useUserArtists, {
|
|
|
|
useMutationLikeAArtist,
|
|
|
|
} from '@/web/api/hooks/useUserArtists'
|
|
|
|
import Icon from '@/web/components/Icon'
|
|
|
|
import player from '@/web/states/player'
|
|
|
|
import { useParams } from 'react-router-dom'
|
|
|
|
|
2022-06-25 13:47:07 +08:00
|
|
|
const Actions = () => {
|
2022-08-03 23:48:39 +08:00
|
|
|
const { data: likedArtists } = useUserArtists()
|
|
|
|
const params = useParams()
|
|
|
|
const id = Number(params.id) || 0
|
|
|
|
const isLiked = !!likedArtists?.data?.find(artist => artist.id === id)
|
|
|
|
const likeArtist = useMutationLikeAArtist()
|
|
|
|
|
2022-06-25 13:47:07 +08:00
|
|
|
return (
|
|
|
|
<div className='mt-11 flex items-end justify-between lg:z-10 lg:mt-6'>
|
|
|
|
<div className='flex items-end'>
|
2022-08-03 23:48:39 +08:00
|
|
|
{/* Menu */}
|
|
|
|
<button className='mr-2.5 flex h-14 w-14 items-center justify-center rounded-full text-white/40 transition duration-400 hover:text-white/70 dark:bg-white/10 hover:dark:bg-white/30'>
|
|
|
|
<Icon name='more' className='h-7 w-7' />
|
|
|
|
</button>
|
|
|
|
|
|
|
|
{/* Like */}
|
|
|
|
<button
|
|
|
|
onClick={() => likeArtist.mutateAsync(id)}
|
|
|
|
className='flex h-14 w-14 items-center justify-center rounded-full text-white/40 transition duration-400 hover:text-white/70 dark:bg-white/10 hover:dark:bg-white/30'
|
|
|
|
>
|
|
|
|
<Icon
|
|
|
|
name={isLiked ? 'heart' : 'heart-outline'}
|
|
|
|
className='h-7 w-7'
|
|
|
|
/>
|
|
|
|
</button>
|
2022-06-25 13:47:07 +08:00
|
|
|
</div>
|
2022-08-03 23:48:39 +08:00
|
|
|
|
|
|
|
{/* Listen */}
|
|
|
|
<button
|
|
|
|
onClick={() => player.playArtistPopularTracks(id)}
|
|
|
|
className='h-14 rounded-full px-10 text-18 font-medium text-white dark:bg-brand-700'
|
|
|
|
>
|
|
|
|
Listen
|
|
|
|
</button>
|
2022-06-25 13:47:07 +08:00
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Actions
|