feat(dashboard): rebuild /settings/organizations in new design system (no Kumo) - #163
Conversation
… (no Kumo) Rebuild the organizations subtree (list, create, members) onto the new design system (AppShell + Providers + plain Tailwind tokens), dropping all @cloudflare/kumo imports. - Page wrappers use <Providers><AppShell>; members content wrapped in <Suspense> for useSearchParams. - List: Card rows + ui/Badge (active) + ui/Button; no Kumo DataTable. - Create: Card + token inputs + ui/Button + token banner domain warning. - Members: plain <table> via local MemberListCard, ui/Badge roles, native select + token inputs invite form; reads ?org= and switches active org. - organization.inviteMember + invitations logic preserved 1:1. Verified: bunx biome check (clean), bunx astro check (0 errors), dev server 200 on all three routes. Co-Authored-By: Duyet Le <me@duyet.net> Co-Authored-By: duyetbot <bot@duyet.net>
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughAcross the organizations create, list, and members sections of the dashboard, Cloudflare Kumo UI components ( ChangesOrganizations UI: Kumo → internal primitives migration
Sequence Diagram(s)sequenceDiagram
rect rgba(99, 102, 241, 0.5)
Note over Browser,MembersContent: Page load with ?org= param
end
Browser->>MembersPage: Navigate to /members?org=xyz
MembersPage->>Providers: Render with Providers+AppShell
Providers->>AppShell: Render AppShell
AppShell->>MembersContent: Render via Suspense boundary
MembersContent->>useSearchParams: Read org param
MembersContent->>useOrganizationList: Destructure isLoaded, setActive
alt org param differs from active org
MembersContent->>ClerkSetActive: setActive({ organization: matched })
ClerkSetActive-->>MembersContent: Active org updated
end
MembersContent->>MembersContent: Render members/invitations tables
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes 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 docstrings
🧪 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 |
Summary
Rebuilds the
/dashboard/settings/organizationssubtree (list, create, members — 3 routes, 18 files) onto the new design system and drops all@cloudflare/kumoimports. Behavior is preserved 1:1 (ClerkuseOrganization,organization.inviteMember, invitations, roles, domain advisory).Changes
<Providers><AppShell>(replaces KumoDashboardShell). Members content wrapped in<Suspense>because it now usesuseSearchParams.organizations-list-content.tsx) —Cardrows +ui/Badge(active org) +ui/Button; replaced KumoLayerCard/Badge/Button/EmptyState/skeletons.Card+ token-styled inputs +ui/Button;DomainWarningis now a token banner (border-warn/40 bg-warn/10), replacing KumoBanner.MemberListCardrenders a plain<table>(border-edge, mono), replacing the KumoDataTabledependency. Roles useui/Badge. Invite form uses a native<select>+ token inputs.?org=support —members-content.tsxreads?org=viauseSearchParamsand switches the active org (useOrganizationList.setActive) so the selected org's members/invitations load, matching the list'smembers?org=<id>links.organization.inviteMember, invitationsrevalidate, and the revoke-invitation toast are preserved exactly.Verify
bunx biome check src/components/dashboard/organizations/— cleanbunx astro check— 0 errors200on/dashboard/settings/organizations/,.../create/,.../members/Co-Authored-By: Duyet Le me@duyet.net
Co-Authored-By: duyetbot bot@duyet.net
Summary by CodeRabbit