import { formatDuration } from '@/web/utils/common' import { css, cx } from '@emotion/css' import player from '@/web/states/player' import { useSnapshot } from 'valtio' import Wave from './Wave' import Icon from '@/web/components/Icon' import useIsMobile from '@/web/hooks/useIsMobile' import useUserLikedTracksIDs, { useMutationLikeATrack } from '@/web/api/hooks/useUserLikedTracksIDs' import toast from 'react-hot-toast' import { memo, useEffect, useMemo, useState } from 'react' import contextMenus, { openContextMenu } from '@/web/states/contextMenus' import regexifyString from 'regexify-string' import { NavLink } from 'react-router-dom' const Actions = ({ track }: { track: Track }) => { const { data: likedTracksIDs } = useUserLikedTracksIDs() const likeATrack = useMutationLikeATrack() // 当右键菜单开启时,让按钮组在鼠标移走了后也能继续显示 const [isContextMenuOpen, setIsContextMenuOpen] = useState(false) const menu = useSnapshot(contextMenus) useEffect(() => { if (menu.type !== 'track' || !menu.dataSourceID) { setIsContextMenuOpen(false) } }, [menu.dataSourceID, menu.type]) return (