'use client'; import { useRef, useState } from 'react'; import tarokkaCards from '@/constants/tarokkaCards'; import getCardInfo from '@/tools/getCardInfo'; import { Layout, TarokkaGameCard } from '@/types'; const cardBack = tarokkaCards.find((card) => card.back)!; type CardProps = { dm: boolean; card: TarokkaGameCard; position: Layout; flipAction: () => void; }; export default function Card({ dm, card, position, flipAction }: CardProps) { const { aria, card: cardName, description, flipped, url } = card; const [showTooltip, setShowTooltip] = useState(false); const [tooltipPos, setTooltipPos] = useState({ x: 0, y: 0 }); const longPressTimeout = useRef(null); const delayTimeout = useRef(null); const handleMouseMove = (e: React.MouseEvent) => { setTooltipPos({ x: e.clientX, y: e.clientY }); }; const handleMouseEnter = () => { delayTimeout.current = setTimeout(() => { setShowTooltip(true); }, 1000); }; const handleMouseLeave = () => { clearTimeout(delayTimeout.current!); setShowTooltip(false); }; const handleTouchStart = () => { longPressTimeout.current = setTimeout(() => { setShowTooltip(true); }, 1000); }; const handleTouchEnd = () => { clearTimeout(longPressTimeout.current!); setShowTooltip(false); }; const handleClick = () => { if (dm) { flipAction(); } }; const getTooltip = () => { const text = getCardInfo(card, position, dm); return ( <> {text.map((t, i) => (

{t}

{i < text.length - 1 &&
}
))} ); }; return ( <>
Card Back
{aria}
{getTooltip()}
); }