import { formatDate, formatDuration, resizeImage } from '@/web/utils/common' import { css, cx } from '@emotion/css' import Icon from '@/web/components/Icon' import dayjs from 'dayjs' import { useMemo } from 'react' import Image from './Image' const TrackListHeader = ({ album, playlist, onPlay, }: { album?: Album playlist?: Playlist onPlay: () => void }) => { const albumDuration = useMemo(() => { const duration = album?.songs?.reduce((acc, cur) => acc + cur.dt, 0) || 0 return formatDuration(duration, 'en', 'hh[hr] mm[min]') }, [album?.songs]) const cover = album?.picUrl || playlist?.coverImgUrl || '' return (
Cover {/* Blur bg */}
{album?.name || playlist?.name}
{album?.artist.name || playlist?.creator.nickname}
{!!album && ( <> {album?.mark === 1056768 && ( )}{' '} {dayjs(album?.publishTime || 0).year()} · {album?.songs.length}{' '} Tracks, {albumDuration} )} {!!playlist && ( <> Updated at {formatDate(playlist?.updateTime || 0, 'en')} ·{' '} {playlist.trackCount} Tracks )}
{album?.description || playlist?.description}
) } export default TrackListHeader