- 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 |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| draft | ||
| scoring | ||
| sport-season | ||
| sports | ||
| standings | ||
| ui | ||
| AutodraftSettings.tsx | ||
| DraftGrid.tsx | ||
| DraftSidebar.tsx | ||
| navbar.tsx | ||
| NavigationProgress.tsx | ||
| NotificationSettings.tsx | ||
| ParticipantSelector.tsx | ||
| StandingsTable.tsx | ||