Skip to content

Conversation

@marcodejongh
Copy link
Owner

  • Reorder queue display to show current and upcoming items at the top
  • Move history items (completed climbs) below a "History" divider
  • Auto-scroll to the current climb when the drawer opens

- Reorder queue display to show current and upcoming items at the top
- Move history items (completed climbs) below a "History" divider
- Auto-scroll to the current climb when the drawer opens
@vercel
Copy link

vercel bot commented Jan 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
boardsesh Building Building Preview, Comment Jan 3, 2026 6:11am

@claude
Copy link

claude bot commented Jan 3, 2026

Claude Review

Ready to merge - Minor issues noted below, but nothing blocking.

Issues

  1. Performance: O(n²) lookup in render loop - queue-list.tsx:163,189: queue.findIndex() is called inside .map() for both upcomingItems and historyItems, causing O(n²) complexity. Consider pre-computing a uuid→index map.

  2. Missing cleanup for timeout - queue-control-bar.tsx:47-49: The setTimeout in handleDrawerOpenChange is not cleaned up if the component unmounts before the timeout fires. Consider using useEffect with cleanup or storing the timeout ref.

  3. Style prop usage - queue-list.tsx:186: Uses inline style prop on Divider which contradicts CLAUDE.md guidelines ("Try to avoid use of the style property"). Consider using CSS modules or AntD's styles prop.

- Add cleanup for scroll timeout on component unmount
- Create queue-list.module.css for history divider styling
- Replace inline style with CSS class per project guidelines
@claude
Copy link

claude bot commented Jan 3, 2026

Claude Review

Ready to merge - Minor issues noted below, but nothing blocking.

Issues

  1. Performance: queue-list.tsx:164,190 - queue.findIndex() is called inside the render loop for each item. Consider creating a Map of uuid→index once before rendering both upcomingItems and historyItems to avoid O(n²) complexity with large queues.

  2. Minor race condition: queue-control-bar.tsx:57-59 - The timeout ref is set but if the component re-renders with open: true before the 100ms delay completes, the old timeout isn't cleared before setting a new one. Consider clearing it at the start of handleDrawerOpenChange:

    if (scrollTimeoutRef.current) {
      clearTimeout(scrollTimeoutRef.current);
    }

@marcodejongh marcodejongh merged commit 4940767 into main Jan 3, 2026
3 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants