import { resizeImage } from '@/web/utils/common' import { css, cx } from '@emotion/css' import { memo } from 'react' import { useNavigate } from 'react-router-dom' import Image from './Image' import { prefetchArtist } from '@/web/api/hooks/useArtist' const Artist = ({ artist }: { artist: Artist }) => { const navigate = useNavigate() const to = () => { navigate(`/artist/${artist.id}`) } return (
prefetchArtist({ id: artist.id })} >
{artist.name}
) } const Placeholder = ({ row }: { row: number }) => { return (
{[...new Array(row * 5).keys()].map(i => (
NAME
))}
) } const ArtistRow = ({ artists, title, className, placeholderRow, }: { artists: Artist[] | undefined title?: string className?: string placeholderRow?: number }) => { return (
{/* Title */} {title && (

{title}

)} {/* Artists */} {artists && (
{artists.map(artist => (
))}
)} {/* Placeholder */} {placeholderRow && !artists && }
) } const memoizedArtistRow = memo(ArtistRow) memoizedArtistRow.displayName = 'ArtistRow' export default memoizedArtistRow