- Build a participantMap (Map<id, participant>) with useMemo so each queue item lookup is O(1) instead of O(n) per render - Memoize queueIds array for SortableContext to avoid churn - Wrap handleDragEnd in useCallback so DndContext gets a stable reference - Wrap SortableQueueItem in memo so it skips re-renders when props haven't changed (important since the parent re-renders every second during a live draft from timer-update socket events) - Pass onRemoveFromQueue and onMakePick directly as props instead of creating new arrow functions per item per render; SortableQueueItem now calls them with the relevant id itself https://claude.ai/code/session_01HPtNkL5m9xhYgtzWaGViSC |
||
|---|---|---|
| .. | ||
| AuthRecoveryOverlay.tsx | ||
| AvailableParticipantsSection.tsx | ||
| ConnectionOverlay.tsx | ||
| DraftGridSection.tsx | ||
| DraftSummaryView.tsx | ||
| ParticipantSelectionDialog.tsx | ||
| picks-utils.ts | ||
| QueueSection.tsx | ||
| RecentPicksSection.tsx | ||
| SidebarRecentPicks.tsx | ||
| TeamRosterView.tsx | ||
| TeamsDraftedGrid.tsx | ||