Skip to content

feat(ui): standardize the Teams page header - #36897

Merged
yuneng-berri merged 2 commits into
litellm_internal_stagingfrom
litellm_standard_page_header
Aug 20, 2026
Merged

feat(ui): standardize the Teams page header#36897
yuneng-berri merged 2 commits into
litellm_internal_stagingfrom
litellm_standard_page_header

Conversation

@yuneng-berri

@yuneng-berri yuneng-berri commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

TLDR

Problem this solves:

  • Team header used one-off spacing and typography
  • Shared header had no standard control-row contract

How it solves it:

  • Defines the canonical reusable PageHeader slots
  • Adopts the pattern on Teams as the pilot
  • Preserves other pages through an explicit legacy component

User Flow

Before: a proxy admin opening the Teams page sees a one-off header that does not match the proposed dashboard pattern

  1. They open https://litellm-domain/teams
  2. They see the Teams identity and description above the team tabs
  3. They use Create Team or switch between team tabs

After: the same proxy admin sees the standard page identity and control-row pattern without losing any Team behavior

  1. They open https://litellm-domain/teams
  2. They see the 24px title, icon-aligned description, 32px inset, and standard control spacing
  3. They use the same Create Team action and Team tabs

Relevant issues

Linear ticket

Pre-Submission checklist

  • I have added meaningful tests
  • My PR passes all CI/CD checks (e.g., lint, format, unit tests)
  • My PR's scope is as isolated as possible; it only solves 1 specific problem
  • I have received a Greptile Confidence Score of at least 4/5 before requesting a maintainer review (Greptile reviews automatically once the PR is opened; only comment @greptileai to re-request a review after pushing changes)

Delays in PR merge?

If you're seeing a delay in your PR being merged, ping the LiteLLM Team on Slack (#pr-review).

Screenshots / Proof of Fix

Before/after captures are retained outside the repository and must be attached through GitHub's upload interface.

Live verification:

  • Teams proxy-admin Playwright suite: 6 passed
  • Production dashboard build and TypeScript: passed
  • Focused PageHeader and Teams tests: 52 passed
  • Current-head CI: 52 passed, 24 skipped
  • Current-head Greptile: 5/5
  • Current-head Veria: no security issues

Type

New Feature

Caveats (if any)

  • Other pages remain visually unchanged during this pilot
  • Their legacy header is explicit for staged adoption

Final Attestation

  • The tests check the right things, including the edge cases, and regressions in the respective real-world customer use-cases are not possible after this PR

@greptile-apps

greptile-apps Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR introduces a standardized page-header contract and adopts it on Teams while preserving existing layouts through a legacy component.

  • Adds identity, primary-action, tabs, and utility slots to the shared PageHeader.
  • Moves the Teams create action into the tabs control row while retaining permission checks and detail-view spacing.
  • Migrates existing header consumers to LegacyPageHeader and adds focused component tests.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
ui/litellm-dashboard/src/components/shared/PageHeader.tsx Defines the standardized header identity and control-row composition, including embedded tab-shell support.
ui/litellm-dashboard/src/components/Teams.tsx Adopts the standardized header while preserving team-creation permission gating, modal behavior, tabs, and detail-view spacing.
ui/litellm-dashboard/src/components/shared/LegacyPageHeader.tsx Preserves the former header contract and presentation for pages outside the pilot migration.
ui/litellm-dashboard/src/components/Teams.test.tsx Updates coverage for the Teams control-row placement, role gating, tab styling, and detail-view inset.

Reviews (3): Last reviewed commit: "feat(ui): standardize the Teams page hea..." | Re-trigger Greptile

@yuneng-berri
yuneng-berri requested a review from a team August 14, 2026 07:04
@yuneng-berri

Copy link
Copy Markdown
Collaborator Author

@greptileai

@yuneng-berri

Copy link
Copy Markdown
Collaborator Author

@veria-ai review

@codecov

codecov Bot commented Aug 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@yuneng-berri
yuneng-berri force-pushed the litellm_standard_page_header branch from 370ee75 to 28c1e43 Compare August 14, 2026 07:43
@yuneng-berri

Copy link
Copy Markdown
Collaborator Author

@greptileai

@yuneng-berri

Copy link
Copy Markdown
Collaborator Author

@veria-ai review

…ader

Teams.tsx and Teams.test.tsx both conflicted with staging's antd -> shadcn
migration of the team create form.

Teams.tsx: took staging's rewritten import block and dropped `theme` from the
antd import, since this branch replaced `<Content style={{ padding: token... }}>`
with the Tailwind inset. Dropped both `const { Text } = Typography` (staging
removed its last use) and `const { token } = theme.useToken()` (this branch
removed its last use).

Teams.test.tsx: took this branch's PageHeader-shaped assertions over staging's
older tab-bar lookup, and restored the `within` import that staging had dropped.

Removed the `toHaveClass` snapshot of the antd tab-bar Tailwind classes and the
`.closest(".ant-tabs")` lookup: staging added local/no-antd-class-selectors as a
zero-violation error rule, and those assertions are inert in jsdom anyway. Every
behavioural assertion in that test is unchanged.
@yuneng-berri
yuneng-berri merged commit a0f367f into litellm_internal_staging Aug 20, 2026
67 checks passed
@yuneng-berri
yuneng-berri deleted the litellm_standard_page_header branch August 20, 2026 01:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants