changes
- implemented collapse/expand for the queue sections on both issues and pull requests
- codebase side panel collapse state now persists
https://github.com/user-attachments/assets/0fd1234b-3376-47b8-8ecc-e886067a926d
Summary by CodeRabbit
-
New Features
- Per-group collapse on Issues and Pulls with persistent state.
- Shared sticky group headers with collapse toggles.
- Dashboard counts deduplicated for more accurate totals.
-
Style
- Improved command palette spacing and item layout.
- Side panel collapse now persists across sessions.
- Loading skeletons simplified (staggered animations removed).
Activity
27🧹 Nitpick comments (1)
apps/dashboard/src/routes/_protected/pulls.tsx (1)
316-405: Consider extractingStickyGroupHeaderto a shared component.The
StickyGroupHeaderimplementation inpulls.tsxandissues.tsxis nearly identical. Extracting it to a shared component would reduce duplication and ensure consistent behavior across both pages.This can be deferred to a follow-up PR if preferred.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/dashboard/src/routes/_protected/pulls.tsx` around lines 316 - 405, Duplicate StickyGroupHeader exists in pulls.tsx and issues.tsx; extract it into a shared component to remove duplication. Create a new component (e.g., StickyGroupHeader) in a shared UI/components location, preserve the same props/signature (sectionRef, scrollContainerRef, stickyTop, icon, title, count, isEmpty, isCollapsed, onCollapsedChange) and the internal logic (headerRef, useEffect with updateStickyState, className handling and button JSX), export it, then replace the local implementations in both pulls.tsx and issues.tsx with imports that use the shared StickyGroupHeader so behavior and styling remain identical. Ensure prop types and Icon component type match the original to avoid type errors.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@apps/dashboard/src/routes/_protected/pulls.tsx`:
- Around line 316-405: Duplicate StickyGroupHeader exists in pulls.tsx and
issues.tsx; extract it into a shared component to remove duplication. Create a
new component (e.g., StickyGroupHeader) in a shared UI/components location,
preserve the same props/signature (sectionRef, scrollContainerRef, stickyTop,
icon, title, count, isEmpty, isCollapsed, onCollapsedChange) and the internal
logic (headerRef, useEffect with updateStickyState, className handling and
button JSX), export it, then replace the local implementations in both pulls.tsx
and issues.tsx with imports that use the shared StickyGroupHeader so behavior
and styling remain identical. Ensure prop types and Icon component type match
the original to avoid type errors.ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 7009cc60-a824-4512-a11f-39b46287d533
📥 Commits
Reviewing files that changed from the base of the PR and between ab164025aff95b9e81cf9e986363c11d444784f4 and 1333b9a614d80f9f225daffb7c8031f84fecf819.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (7)
apps/dashboard/src/components/layouts/dashboard-side-panel.tsxapps/dashboard/src/components/navigation/command-palette.tsxapps/dashboard/src/lib/collapsible-groups-storage.tsapps/dashboard/src/routes/_protected/issues.tsxapps/dashboard/src/routes/_protected/pulls.tsxpackage.jsonpatches/miniflare@4.20260409.0.patch
@theMackabu this is nice!
i'm just not a big fan on animating lists display, bc anim gets weirder as the list gets longer.
@theMackabu this is nice!
i'm just not a big fan on animating lists display, bc anim gets weirder as the list gets longer.
oh let me either remove or fix that, didn't consider long lists
let's remove the animation for now, sorry!
animation removed
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@apps/dashboard/src/components/details/detail-page.tsx`:
- Around line 86-92: DetailPageSkeletonLayout's API changed: it no longer
accepts mainItemCount nor exports StaggerItem; update consuming modules that
import StaggerItem and pass mainItemCount to instead pass the value as
sidebarSectionCount to DetailPageSkeletonLayout and remove any StaggerItem
usage/wrapping. Specifically, drop the StaggerItem import/JSX and directly
render the children previously wrapped by <StaggerItem>, and replace occurrences
like mainItemCount={N} on DetailPageSkeletonLayout with sidebarSectionCount={N};
update any references to the removed StaggerItem symbol accordingly so
type-checking/build succeed.🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 41d6b8c2-bff2-4cb7-a53a-23da9a63a6dd
📥 Commits
Reviewing files that changed from the base of the PR and between 3d15031fbdb4f5e7e28a9042d2acdd725867c2ae and fb028bee2b592b7f7cb0037e76fa5c728c3e5068.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (4)
apps/dashboard/src/components/compare/compare-page.tsxapps/dashboard/src/components/details/detail-page.tsxapps/dashboard/src/components/issues/detail/issue-detail-page.tsxapps/dashboard/src/components/pulls/detail/pull-detail-page.tsx
sorry! i made some changes conflicting with this, can you fix that? i will approved pr for now
type checks are failing
github prs seem to finally be working for me again LOL
@theMackabu can you fix checks?
📝 Walkthrough
Walkthrough
Persist side-panel and per-group collapse state to localStorage via new hooks; add shared StickyGroupHeader/StickyGroupContent (sticky detection, toggle, animations); deduplicate issue/pull counts with a new utility; remove staggered skeleton animations; minor styling and pnpm/miniflare patch.
Changes
apps/dashboard/src/components/layouts/dashboard-side-panel.tsx,apps/dashboard/src/lib/collapsible-groups-storage.tsdiffkit:side-panel-collapsed. AdduseCollapsedGroups(storageKey)hook storingRecord<string, boolean>in localStorage with validation and memoized updater.apps/dashboard/src/components/shared/sticky-group-header.tsxStickyGroupHeader(stuck detection, toggle, aria-expanded, chevron rotation) andStickyGroupContent(conditional rendering with AnimatePresence; chooses animation strategy by item count).apps/dashboard/src/routes/_protected/issues.tsx,apps/dashboard/src/routes/_protected/pulls.tsxuseCollapsedGroups(...); metric clicks un-collapse groups; render items insideStickyGroupContent; change total counts to deduplicated totals.apps/dashboard/src/components/layouts/dashboard-layout.tsx,apps/dashboard/src/lib/count-unique.tscountUniqueByIdand update dashboard layout to compute deduplicated pull/issue totals using it (replace summing of lengths).apps/dashboard/src/components/details/detail-page.tsx,apps/dashboard/src/components/compare/compare-page.tsx,apps/dashboard/src/components/issues/detail/issue-detail-page.tsx,apps/dashboard/src/components/pulls/detail/pull-detail-page.tsxStaggerItem/StaggerLoop) andmainItemCountusage; render static skeleton blocks directly.apps/dashboard/src/components/navigation/command-palette.tsxpackage.json,patches/miniflare@4.20260409.0.patchminiflare@4.20260409.0and patch that addsv8Flagswith--max-old-space-size=4096.Sequence Diagram(s)
Estimated code review effort
🎯 4 (Complex) | ⏱️ ~45 minutes
Possibly related PRs
compare-page.tsx; touches same compare UI file updated here.Suggested reviewers
🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings.
✨ Finishing Touches
🧪 Generate unit tests (beta)
Comment
@coderabbitai helpto get the list of available commands and usage tips.