diff --git a/app/components/draft/QueueSection.tsx b/app/components/draft/QueueSection.tsx index b68193e..6fbb38e 100644 --- a/app/components/draft/QueueSection.tsx +++ b/app/components/draft/QueueSection.tsx @@ -1,4 +1,5 @@ -import { memo } from "react"; +import { memo, useCallback, useMemo } from "react"; +import { GripVertical } from "lucide-react"; import { Button } from "~/components/ui/button"; import { Badge } from "~/components/ui/badge"; import { AutodraftSettings } from "~/components/AutodraftSettings"; @@ -46,7 +47,7 @@ interface QueueSectionProps { } // Sortable queue item component -function SortableQueueItem({ +const SortableQueueItem = memo(function SortableQueueItem({ item, index, participantName, @@ -60,13 +61,14 @@ function SortableQueueItem({ participantName: string; sportName?: string; canPick: boolean; - onRemove: () => void; - onDraft?: () => void; + onRemove: (queueId: string) => void; + onDraft?: (participantId: string) => void; }) { const { attributes, listeners, setNodeRef, + setActivatorNodeRef, transform, transition, isDragging, @@ -82,29 +84,20 @@ function SortableQueueItem({
{participantName}
{sportName &&{sportName}
} @@ -116,7 +109,7 @@ function SortableQueueItem({ variant="default" size="sm" className="h-7 text-xs bg-electric text-background hover:bg-electric/90" - onClick={onDraft} + onClick={() => onDraft(item.participantId)} > Draft @@ -125,7 +118,7 @@ function SortableQueueItem({ variant="ghost" size="icon" className="h-7 w-7 text-destructive hover:text-destructive hover:bg-destructive/10" - onClick={onRemove} + onClick={() => onRemove(item.id)} title="Remove from queue" > × @@ -133,7 +126,7 @@ function SortableQueueItem({