"use client"; import * as React from "react"; import { useState } from "react"; import * as TooltipPrimitive from "@radix-ui/react-tooltip"; import { cn } from "@/lib/utils"; import { useMediaQuery } from "@/hooks/use-media-query"; const TooltipProvider = TooltipPrimitive.Provider; const Tooltip = TooltipPrimitive.Root; const TooltipArrow = TooltipPrimitive.Arrow; const TooltipTrigger = TooltipPrimitive.Trigger; const TooltipPortal = TooltipPrimitive.Portal; const TooltipContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, sideOffset = 4, ...props }, ref) => ( )); TooltipContent.displayName = TooltipPrimitive.Content.displayName; export { Tooltip, TooltipTrigger, TooltipContent, TooltipPortal, TooltipProvider, TooltipArrow, }; export const ClickableTooltip = ({ children, content, className = "" }) => { const [open, setOpen] = useState(false); const { isMobile } = useMediaQuery(); const handleClick = (e) => { e.preventDefault(); setOpen(!open); }; return ( e.preventDefault()} // 阻止指针进入事件 onPointerLeave={(e) => e.preventDefault()} // 阻止指针离开事件 onPointerMove={(e) => e.preventDefault()} // 阻止指针移动事件 onFocus={(e) => e.preventDefault()} // 阻止焦点事件 onBlur={(e) => e.preventDefault()} >
{children}
{content}
); };