Skip to content

feat(ui): Teams page — list, create, delete + member management - #41

Merged
tunisiano187 merged 1 commit into
mainfrom
claude/teams-spa-ogkzS
Sep 6, 2026
Merged

tunisiano187 merged 1 commit into
mainfrom
claude/teams-spa-ogkzS

Conversation

@claude

@claude claude Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a full Teams management page to the React SPA, wiring up all existing /api/v1/teams endpoints.

Changes

ui/src/pages/Teams.tsx (new)

  • Expandable team list — click any row to see its members
  • Admin-only create team modal (name + optional description)
  • Admin-only delete team button (with confirmation)
  • Admin-only add-member form inline under each expanded team (username + role picker: viewer / analyst / operator / admin)
  • Admin-only remove-member per row
  • Role badges colour-coded by level (red = admin, amber = operator, blue = analyst, grey = viewer)

ui/src/hooks/useAuth.tsx

  • Extended AuthState to expose role fetched from GET /api/v1/auth/me
  • Role is populated on initial load and after login
  • Renamed from .ts.tsx (uses JSX context default)

ui/src/api/teams.ts

  • Full client: getTeams, getTeam, createTeam, deleteTeam, addMember, removeMember

ui/src/App.tsx + ui/src/components/Layout.tsx

  • /teams route added; Teams nav entry (👥) added at bottom of sidebar

server/static/ui/

  • Rebuilt bundle (45 modules, clean TypeScript, 0 errors)

Tests

531 backend tests passing. UI build clean.


🤖 Generated with Claude Code

https://claude.ai/code/session_01AbfhpQR6qzZAXcTacEcZvn


Generated by Claude Code

Adds a full Teams management UI to the React SPA:
- Teams.tsx: expandable team list with create/delete (admin only)
  - Click a team row to expand and see its member list
  - Add member form (username + role picker: viewer/analyst/operator/admin)
  - Remove member per-row (admin only), role badges colour-coded by level
  - Create team modal with name + optional description
  - All destructive actions (delete team, remove member) require admin role
- useAuth: expose 'role' field from /api/v1/auth/me so UI can gate admin actions
- teams.ts API client: full CRUD (getTeams, getTeam, createTeam, deleteTeam,
  addMember, removeMember) matching /api/v1/teams endpoints
- App.tsx: add /teams route
- Layout.tsx: add Teams nav entry (👥)
- Rebuilt static bundle

531 backend tests passing, UI builds clean (45 modules, 0 TS errors).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbfhpQR6qzZAXcTacEcZvn
@tunisiano187
tunisiano187 merged commit ca91be5 into main Sep 6, 2026
5 checks passed
@tunisiano187
tunisiano187 deleted the claude/teams-spa-ogkzS branch September 6, 2026 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants