refactor(ui): compose organizer empty states directly - #646
Conversation
|
Warning Review limit reached
Next review available in: 14 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (18)
✨ 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 |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
LGTM — no actionable findings at exact head 67388dd against base f1f2431.\n\nIndependent review covered the complete 18-file diff:\n\n- Scope is bounded to the four mirrored component pairs and their consumer tests/docs. Production diffs change only the OrganizerEmptyState import/render blocks; route logic, domain state, form/RHF code, schemas, handlers, server functions, DnD, and payload construction are untouched.\n- The migration follows children-driven composition: explicit EmptyState.Root/Card surfaces and Icon/Title/Description/Actions parts, with no boolean mode or domain props.\n- The five sites per app preserve the adapter classes, plain/card selection, card -> padding wrapper -> Root nesting, copy, decorative icon treatment, callbacks, icons, and action omission. Invite Sources intentionally moves to h2 under the Invites h1; registration, event prerequisites, and venue remain h3, with venue beneath its existing Venues h2.\n- Start/Crew production files are byte-identical for all four pairs. Tests mirror apart from app-specific names/LAT refs and exercise both event prerequisite branches plus registration, optional source action, and venue dialog behavior.\n- Inventory is exact: original source usage was Start 14 + Crew 5 = 19; this slice migrates Start 5 + Crew 5 = 10; remaining production adapter usage is Start 9 across 6 files and Crew 0.\n- Unique LAT leaves resolve and lat check passes. Focused verification passed in each app: 4 files / 10 tests; both app type-checks, UI inventory check, and git diff --check passed.\n- Live review threads are empty. CodeRabbit is marked successful but reported rate limiting. At review time all builds, lints, both E2E shards, Crew demo E2E, GitGuardian, and branch-stack checks passed; only aggregate/downstream typecheck and Start-test jobs remained pending.\n\nGitNexus was refreshed to the exact head, but its MCP reader reported a LadybugDB storage-version mismatch, so the risk conclusion is grounded in the exact diff, call-site search, parity checks, focused tests, type-checks, LAT, and live GitHub state. |
Summary
OrganizerEmptyStateadapter render sites in the mirrored Start/Crew component cluster with direct children-driven@repo/uiEmptyStatecompositionScope
This slice covers only:
registration-questions-editorevent-division-mapper(both prerequisite branches)organizer/invites/invite-sources-listorganizer/schedule/venue-managerIt does not change route-level judges, shifts, waivers, cohosts, invites, or results consumers. No route logic, form schemas, handlers, server functions, payloads, or domain state changed.
Verification
lat checkpassedgit diff --checkpassedCrew full-suite baseline remains unchanged: 3 failed files / 2 failed tests / 3,182 passed. The failures are the pre-existing missing
refund-status-badgeandrevenue-stats-displayimports plus two staleevent-import-tabslabel assertions.Summary by cubic
Compose organizer empty states directly with
@repo/uiEmptyState, and add@repo/ui/metricfor consistent preview summaries in Crew. UI and behavior stay the same; headings are correct and metrics use a compact, consistent style.New Features
@repo/ui/metric(Root,Card,Inset,Label,Value) with tests and Storybook; exposed viaapps/*/src/components/ui/metric.tsx.metricprimitive.Refactors
OrganizerEmptyStatewithEmptyStatein:registration-questions-editor,event-division-mapper(both prerequisites),organizer/invites/invite-sources-list, andorganizer/schedule/venue-manager(Start and Crew).Metricin Crew summary UIs:crew-import-tabs,volunteer-import-flow, heats import preview,crew-copy-prior-event-panel, andcrew-template-panel.Written for commit d6316c1. Summary will update on new commits.