feat(frontend): expandable member lists on team rows - #13569
Conversation
Product ask: see who is in a team from the Teams tab without opening the manage panel. Each row gains a chevron disclosure (sibling of the kebab - Radix single-button collapsible triggers can't nest the menu) that lazily fetches the roster on first expand, sharing the manage panel's query cache. Read-only compact rows (avatar, name, email, Admin badge); private teams the caller can't inspect show a muted join hint instead of an error surface. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm3mCG9okfdGtAXtFaDF9A
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
/batch |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 4739cd6. Configure here.
| {isMembersOpen ? ( | ||
| <TeamMembersPreview orgId={orgId} team={team} /> | ||
| ) : null} | ||
|
|
There was a problem hiding this comment.
Leave omits member preview cleanup
Medium Severity
Leaving a team via the manage panel only closes that panel and refetches the team list; it does not collapse the new member preview when that row was expanded. The preview can stay mounted with cached roster data even after the user left, unlike delete which clears openMemberTeamIds.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 4739cd6. Configure here.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## fix/org-ui-product-feedback #13569 +/- ##
===============================================================
+ Coverage 75.69% 75.71% +0.01%
===============================================================
Files 2666 2668 +2
Lines 201662 201693 +31
Branches 19494 19484 -10
===============================================================
+ Hits 152650 152706 +56
+ Misses 44750 44729 -21
+ Partials 4262 4258 -4
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|


Note
Top of the org-UI stack (#13496 → … → #13566 → this). Review the top commit only. Pairs with the roster-visibility gate added to #13541 — expanding a private team you can't inspect shows a muted join hint driven by that 403/404.
Why / What / How
Why: Product ask — on the Teams tab you should be able to expand "Engineering (1 member)" and see who's in it, without opening the manage panel.
What: Each team row gains a chevron disclosure. Expanding lazily fetches the roster (same hook + query key as the manage panel — cache shared, no double fetch) and renders read-only compact member rows: avatar, name, email, neutral Admin badge. Loading = skeleton rows; private teams the caller can't inspect render "Private — join this team to see its members" inline (no toast/ErrorCard); other failures get a muted fallback. Multi-open, default collapsed.
How: Chevron disclosure button as a sibling of the kebab (the design-system Collapsible/Accordion use a single full-width Radix trigger button which can't host the kebab without button-in-button nesting; interaction/visuals mirror the molecule). New
TeamMembersPreview/sub-component + hook per conventions.Checklist 📋
For code changes:
pnpm lint/pnpm typesclean; org settings suites 42/42, exit 0 (4 new scenarios: lazy fetch, roster render, admin badges, private hint)For configuration changes: n/a
🤖 Generated with Claude Code
https://claude.ai/code/session_01Jm3mCG9okfdGtAXtFaDF9A
Note
Low Risk
Org-settings UI only; reuses existing list-members API and query cache with no new auth or data-model changes.
Overview
Adds chevron disclosure on each team row in org settings so users can see who’s on a team without opening Manage. Rows stay collapsed by default; several rows can be open at once, separate from the manage panel.
Expanding mounts
TeamMembersPreview, which lazily loads the roster via the same workspace-members query as the manage panel (shared cache). The UI shows skeletons while loading, compact read-only rows (avatar, name, email, Admin badge), and for 403/404 a muted “Private — join this team to see its members.” hint inline instead of toasts or error cards.Integration tests cover lazy fetch, roster display, admin badges, and the private-team hint.
Reviewed by Cursor Bugbot for commit 4739cd6. Bugbot is set up for automated code reviews on this repo. Configure here.