import React from "react"; import { useDraggable, useDroppable } from "@dnd-kit/core"; import { CSS } from "@dnd-kit/utilities"; import { PlayerCardVisual } from "./PlayerCardVisual"; // Import the visual component we just made export const DraggablePlayer = ({ player, isBench, benchIndex, isActiveDrag, isValidTarget, captainId, viceId, handleCapChange, playerCardGWs, fixtures, activeGW, onPlayerClick, onUndo, isHighlighted, onSolverUndo, activeChipType, }) => { const disableBenchGkDrag = Boolean( isBench && benchIndex === 0 && player.Pos === "G" && !player.isBlank, ); const { attributes, listeners, setNodeRef, transform, isDragging } = useDraggable({ id: player.ID, data: { player, isBench }, disabled: Boolean(player.isBlank), }); const { setNodeRef: setDropRef, isOver } = useDroppable({ id: player.ID, data: { player, isBench }, }); const style = { transform: CSS.Translate.toString(transform), zIndex: isDragging ? 50 : 20, opacity: isDragging ? 0.6 : isActiveDrag && !isValidTarget ? 0.3 : 1, filter: isOver && isValidTarget && !isDragging ? "brightness(1.5)" : "none", willChange: isDragging ? "transform" : "auto", WebkitUserSelect: "none", userSelect: "none", WebkitTouchCallout: "none", touchAction: "none", WebkitUserSelect: "none", WebkitTransform: CSS.Translate.toString(transform), WebkitTapHighlightColor: "transparent", transformOrigin: "center center", WebkitUserDrag: "none", userDrag: "none", }; return (
{ setNodeRef(node); setDropRef(node); }} style={style} {...listeners} {...attributes} draggable="false" onDragStart={(e) => e.preventDefault()} className={`touch-none select-none rounded-xl transition-[box-shadow,filter] duration-200 ${isDragging ? "cursor-grabbing" : "cursor-grab"} ${isHighlighted ? "transfer-highlight-card ring-2 ring-cyan-400/40" : ""} [&_*]:touch-none [&_*]:[-webkit-user-drag:none]`} >
); };