import { resizeImage } from '@/web/utils/common' import { cx } from '@emotion/css' import { useNavigate } from 'react-router-dom' import Image from './Image' import { prefetchAlbum } from '@/web/api/hooks/useAlbum' import { prefetchPlaylist } from '@/web/api/hooks/usePlaylist' import { memo, useCallback } from 'react' const Album = ({ album }: { album: Album }) => { const navigate = useNavigate() const goTo = () => { console.log('dsada') navigate(`/album/${album.id}`) } const prefetch = () => { prefetchAlbum({ id: album.id }) } return ( ) } const Playlist = ({ playlist }: { playlist: Playlist }) => { const navigate = useNavigate() const goTo = useCallback(() => { navigate(`/playlist/${playlist.id}`) }, [navigate, playlist.id]) const prefetch = useCallback(() => { prefetchPlaylist({ id: playlist.id }) }, [playlist.id]) return ( ) } const CoverRow = ({ albums, playlists, title, className, }: { title?: string className?: string albums?: Album[] playlists?: Playlist[] }) => { return (
{/* Title */} {title && (

{title}

)} {/* Items */}
{albums?.map(album => ( ))} {playlists?.map(playlist => ( ))}
) } const memoizedCoverRow = memo(CoverRow) memoizedCoverRow.displayName = 'CoverRow' export default memoizedCoverRow