feat(admin): wider workspaces view with plan + BYOB columns and a detail drawer - #961
Conversation
…lumns Rewrite the operator /admin Workspaces page from imperative DOM into an SSR-first React island using the shared shadcn Table, with a Sheet drawer for per-workspace detail. Add Plan and Storage (BYOB) columns to the list so an operator no longer has to expand a row to see them, and widen the admin shell to 1440px to match the account/workspace surfaces. GET /admin-ui/workspaces now returns plan + byob per row, both derived from the workspace record in one parallel KV read.
- Shared useAdminResource hook replaces the per-editor fetch/cancel/error effect - errMessage helper replaces the repeated error-message idiom - InviteForm -> members refetch via a parent nonce, dropping the window CustomEvent - Reuse ADMIN_DETAIL_HEADING and exported trimOrigin; use SELECT_SM; drop dead limit-value class - Width token on the #dashboard root (matching account-shell), not .shell - Honest comment on the per-workspace KV fan-out in the list handler
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
uploads-api | 0f4ed33 | Commit Preview URL Branch Preview URL |
Sep 12 2026, 12:23 AM |
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (2)
🚫 Excluded labels (none allowed) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
uploads-web | 0f4ed33 | Commit Preview URL Branch Preview URL |
Sep 12 2026, 12:23 AM |
What
Reworks the operator /admin → Workspaces view so plan and storage mode are visible at a glance and the page has room for a proper table.
#dashboardroot, the same seamaccount-shell.cssuses.@uploads/uiTable, with aSheetdrawer on the right for the full per-workspace detail (people, plan, limits, storage, GitHub links, invites, invite links). Every editing flow is carried over unchanged, including the plan-default override-skip and byte/unit logic.API
GET /admin-ui/workspacesnow returnsplanandbyobper row. Both derive from the workspace record (via the sharedgetPlanandisByoRecord) in one parallel KV read — the list previously enumerated keys only.plananswers free-vs-paid tier only; the Stripe-vs-comped distinction stays in the drawer's plan endpoint (which does the per-workspace subscription lookup).Notes
admin-workspaces.csswas removed.@uploads/weband@uploads/apiare changeset-ignored, so no changeset.mountIslandhelper is out of scope here.Verification
pnpm --filter @uploads/api typecheckand@uploads/web typecheck: 0 errorsNot verified with a live screenshot: a local admin-authed render needs the demo user elevated to
role: adminand the dev ports, which the main checkout was holding. The change is covered by types + tests; happy to capture a screenshot once a stack is free.