import player from '@/web/states/player' import { css, cx } from '@emotion/css' import { useSnapshot } from 'valtio' import Image from '@/web/components/Image' import Icon from '@/web/components/Icon' import useCoverColor from '@/web/hooks/useCoverColor' import { resizeImage } from '@/web/utils/common' import { motion, PanInfo } from 'framer-motion' import { useLockBodyScroll } from 'react-use' import { useState } from 'react' import useUserLikedTracksIDs, { useMutationLikeATrack, } from '@/web/api/hooks/useUserLikedTracksIDs' import uiStates from '@/web/states/uiStates' import { ease } from '@/web/utils/const' const LikeButton = () => { const { track } = useSnapshot(player) const { data: likedIDs } = useUserLikedTracksIDs() const isLiked = !!likedIDs?.ids?.find(id => id === track?.id) const likeATrack = useMutationLikeATrack() return ( ) } const PlayerMobile = () => { const { track, state } = useSnapshot(player) const bgColor = useCoverColor(track?.al?.picUrl ?? '') const [locked, setLocked] = useState(false) useLockBodyScroll(locked) const { mobileShowPlayingNext } = useSnapshot(uiStates) const onDragEnd = ( event: MouseEvent | TouchEvent | PointerEvent, info: PanInfo ) => { console.log(JSON.stringify(info)) const { x, y } = info.offset const offset = 100 if (y > -100) { if (x > offset) player.prevTrack() if (x < -offset) player.nextTrack() } setLocked(false) } return (