import { resizeImage } from '@/web/utils/common' import { cx } from '@emotion/css' import { useNavigate } from 'react-router-dom' import { prefetchAlbum } from '@/web/api/hooks/useAlbum' import { prefetchPlaylist } from '@/web/api/hooks/usePlaylist' import { Virtuoso } from 'react-virtuoso' import { CSSProperties } from 'react' const CoverRow = ({ albums, playlists, title, className, }: { title?: string className?: string albums?: Album[] playlists?: Playlist[] containerClassName?: string containerStyle?: CSSProperties }) => { const navigate = useNavigate() const goTo = (id: number) => { if (albums) navigate(`/album/${id}`) if (playlists) navigate(`/playlist/${id}`) } const prefetch = (id: number) => { if (albums) prefetchAlbum({ id }) if (playlists) prefetchPlaylist({ id }) } type Item = Album | Playlist const items: Item[] = albums || playlists || [] const rows = items.reduce((rows: Item[][], item: Item, index: number) => { const rowIndex = Math.floor(index / 4) if (rows.length < rowIndex + 1) { rows.push([item]) } else { rows[rowIndex].push(item) } return rows }, []) return (