Restyle project view (sidebar + dashboard) to match mockup - #107
Conversation
Port the approved mockup (docs/mockups/project-view.html) into the dashboard screen, same information architecture. Worktrees are now collapsible group headers (chevron · status dot · name · branch · count) with agents/services as full-width uniform rows beneath; empty worktrees collapse to a single "empty" header row. Lifted dark-slate surfaces, high-contrast text, hairline borders, and a single green status accent. Navigation, selection, service actions, and all loading/error/empty states are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Port the mockup's sidebar pattern: underline Dashboard/Views tabs, collapsible worktree group rows (chevron · status dot · name · mono branch) with indented agent/service child rows that keep the selected highlight and inline service actions. Empty worktrees collapse behind a "N empty worktrees" disclosure while the main checkout stays pinned/visible. Lifted slate surfaces and high-contrast text throughout. Extract the restyle status dot to a shared StatusDotMini in status-dot.tsx and reuse it in the dashboard (drops the local duplicate). Navigation, selection, service actions, and all loading/error/empty states unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 20 minutes and 53 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughDashboard and sidebar UI components are unified under a new compact row-based design system. A reusable ChangesDashboard and Sidebar Design System Refactor
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
app/components/ProjectSidebar.tsx (1)
464-477: 💤 Low valueConsider adding
accessibilityLabelfor the empty worktrees disclosure.The pressable lacks an explicit accessibility label; screen readers will read the nested text but an explicit label like
"Toggle empty worktrees"improves the experience.Suggested improvement
<Pressable onPress={() => setShowEmpty((s) => !s)} className="flex-row items-center gap-2 rounded-md px-2 py-1.5 active:bg-[`#232429`]" + accessibilityLabel={`${showEmpty ? "Hide" : "Show"} ${emptyRest.length} empty worktree${emptyRest.length > 1 ? "s" : ""}`} >🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/components/ProjectSidebar.tsx` around lines 464 - 477, Add an explicit accessibility label and state to the Pressable that toggles empty worktrees: update the Pressable (the element using onPress={() => setShowEmpty((s) => !s)}) to include accessibilityLabel="Toggle empty worktrees" and set accessibilityRole="button" plus accessibilityState={{ expanded: showEmpty }} so screen readers get a clear label and expanded/collapsed state; keep the existing visual text and Chevron rendering unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@app/components/ProjectSidebar.tsx`:
- Around line 464-477: Add an explicit accessibility label and state to the
Pressable that toggles empty worktrees: update the Pressable (the element using
onPress={() => setShowEmpty((s) => !s)}) to include accessibilityLabel="Toggle
empty worktrees" and set accessibilityRole="button" plus accessibilityState={{
expanded: showEmpty }} so screen readers get a clear label and
expanded/collapsed state; keep the existing visual text and Chevron rendering
unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: bb32506a-ae65-4b83-9799-c2bd6e77f696
📒 Files selected for processing (3)
app/app/(main)/(tabs)/(dashboard)/index.tsxapp/components/ProjectSidebar.tsxapp/components/status-dot.tsx
Addresses CodeRabbit nitpick — adds accessibilityRole/State/Label so screen readers announce the show/hide control and its expanded state. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
@coderabbitai addressed your nitpick: empty-worktrees disclosure now has |
|
Tip For best results, initiate chat on the files or code changes.
|
Restyle project view (sidebar + dashboard) to match mockup
What
Implements the approved project-view redesign (reference:
docs/mockups/project-view.html), porting the Linear/Cloudflare-style look into the real app. Same information architecture — this is a visual restyle plus two additive interactions (collapsible groups, empties disclosure). Builds on the full-width layout migration (#105).Dashboard —
app/(main)/(tabs)/(dashboard)/index.tsx(d93d0c5)Sidebar —
components/ProjectSidebar.tsx(f17e955)StatusDotMini(components/status-dot.tsx) reused by the dashboard.Behavior
Navigation, session selection, service actions, and all loading/error/empty states are unchanged — verified by code audit on both files. Collapsible groups + empties disclosure are additive (no existing nav removed; empty worktrees had no clickable children).
Verification
yarn typecheck+ lint clean on all changed files (pre-existingcli-auth.tsxlint error is untouched/unrelated).flex-1 min-w-0+ truncation; the app shell's mobile collapse was verified in Full-width layout migration + project-view redesign reference #105. Per-page mobile polish is intentionally deferred (each page gets its own facelift pass).🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Style