import { resizeImage } from '@/web/utils/common' import { player } from '@/web/store' import { useSnapshot } from 'valtio' import useTracks from '@/web/api/hooks/useTracks' import { css, cx } from '@emotion/css' import { AnimatePresence, motion } from 'framer-motion' import Image from './Image' import Wave from './Wave' const PlayingNext = ({ className }: { className?: string }) => { const playerSnapshot = useSnapshot(player) const { data: tracks } = useTracks({ ids: playerSnapshot.trackList }) return ( <>
PLAYING NEXT
{tracks?.songs?.map((track, index) => ( { if (e.detail === 2) player.playTrack(track.id) }} > {/* Cover */} Cover {/* Track info */}
{track.name}
{track.ar.map(a => a.name).join(', ')}
{/* Wave icon */} {playerSnapshot.trackIndex === index ? ( ) : (
{String(index + 1).padStart(2, '0')}
)}
))} {(tracks?.songs?.length || 0) >= 4 && (
)}
) } export default PlayingNext