feat(admin-ui): Invites tab — wire FO-1b backend to admin React app - #247
Merged
Conversation
…P2 / task #217) Closes the gap between FO-1b (invite endpoints shipped) and a usable multi-human onboarding flow. Before this, the only way to add invites to an L2 was a manual curl POST to /admin/invites — no admin-UI path. Adds InvitesPage.tsx with: - Status-filtered list (pending / claimed / expired / revoked / all) - "+ Invite member" modal: email + role (enterprise_admin / l2_admin / user) + target_l2_id when role != enterprise_admin - Revoke action on pending invites - Status + role badges matching existing PersonasPage style tokens - Empty-state, loading-skeleton, error-banner patterns mirroring existing admin pages Types: InvitePublic, InvitesPublic, InviteRole, InviteStatus, CreateInviteRequest mirror the backend Pydantic shapes in invite_routes.py exactly. API: api.listInvites(status?), createInvite(body), revokeInvite(id). Route: /admin/invites mounted under the existing ProtectedRoute + Layout chrome. Out of scope (for the next PR): - Layout.tsx nav-link addition (depends on where the team wants Invites in the sidebar — left for the operator to slot in) - Component tests (mirroring PersonasPage.test.tsx pattern) Validated: pnpm tsc --noEmit + pnpm biome check both clean; production build successful (Vite bundle). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes task #217. P2 of MVP path.
Adds InvitesPage.tsx + types + api methods wiring the FO-1b /admin/invites endpoints into the admin React UI. Modal for create (email + role + target_l2_id), status-filtered list, revoke action, status/role badges matching existing PersonasPage style.
Test plan
🤖 Generated with Claude Code