From 17a71aea727ecedd1208c6e2a8c4f0c0748b5c1d Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Wed, 8 Apr 2026 09:32:40 +0100 Subject: [PATCH] refactor(site/src/pages/AgentsPage): extract BackButton and AdminBadge (#24130) --- .../AgentsPage/AgentSettingsUsagePageView.tsx | 14 ++------- .../AgentsPage/components/AdminBadge.tsx | 5 ++-- .../AgentsPage/components/BackButton.tsx | 17 +++++++++++ .../ChatModelAdminPanel/ModelForm.tsx | 30 +++---------------- .../ChatModelAdminPanel/ProviderForm.tsx | 13 ++------ .../components/MCPServerAdminPanel.tsx | 11 ++----- 6 files changed, 31 insertions(+), 59 deletions(-) create mode 100644 site/src/pages/AgentsPage/components/BackButton.tsx diff --git a/site/src/pages/AgentsPage/AgentSettingsUsagePageView.tsx b/site/src/pages/AgentsPage/AgentSettingsUsagePageView.tsx index d975085857..78bab31c68 100644 --- a/site/src/pages/AgentsPage/AgentSettingsUsagePageView.tsx +++ b/site/src/pages/AgentsPage/AgentSettingsUsagePageView.tsx @@ -1,5 +1,4 @@ import dayjs from "dayjs"; -import { ChevronLeftIcon } from "lucide-react"; import type { FC } from "react"; import { getErrorMessage } from "#/api/errors"; import type * as TypesGen from "#/api/typesGenerated"; @@ -25,6 +24,7 @@ import { useClickableTableRow } from "#/hooks/useClickableTableRow"; import { formatTokenCount } from "#/utils/analytics"; import { formatCostMicros } from "#/utils/currency"; import { AdminBadge } from "./components/AdminBadge"; +import { BackButton } from "./components/BackButton"; import { ChatCostSummaryView } from "./components/ChatCostSummaryView"; import { SectionHeader } from "./components/SectionHeader"; @@ -202,17 +202,7 @@ export const AgentSettingsUsagePageView: FC< ); if (selectedUserId) { - const backButton = ( - - ); + const backButton = ; if (isSelectedUserLoading) { return ( diff --git a/site/src/pages/AgentsPage/components/AdminBadge.tsx b/site/src/pages/AgentsPage/components/AdminBadge.tsx index 96c59f6e8a..c3af10cac0 100644 --- a/site/src/pages/AgentsPage/components/AdminBadge.tsx +++ b/site/src/pages/AgentsPage/components/AdminBadge.tsx @@ -1,5 +1,6 @@ import { ShieldIcon } from "lucide-react"; import type { FC } from "react"; +import { Badge } from "#/components/Badge/Badge"; import { Tooltip, TooltipContent, @@ -11,10 +12,10 @@ export const AdminBadge: FC = () => ( - + Admin - + Only visible to deployment administrators. diff --git a/site/src/pages/AgentsPage/components/BackButton.tsx b/site/src/pages/AgentsPage/components/BackButton.tsx new file mode 100644 index 0000000000..dce4b56b0d --- /dev/null +++ b/site/src/pages/AgentsPage/components/BackButton.tsx @@ -0,0 +1,17 @@ +import { ChevronLeftIcon } from "lucide-react"; +import type { FC } from "react"; + +interface BackButtonProps { + onClick: () => void; +} + +export const BackButton: FC = ({ onClick }) => ( + +); diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelForm.tsx b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelForm.tsx index 776fb9d004..88af0fa346 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelForm.tsx +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/ModelForm.tsx @@ -1,7 +1,6 @@ import { useFormik } from "formik"; import { ChevronDownIcon, - ChevronLeftIcon, ChevronRightIcon, InfoIcon, PencilIcon, @@ -41,6 +40,7 @@ import { } from "#/components/Tooltip/Tooltip"; import { cn } from "#/utils/cn"; import { getFormHelpers } from "#/utils/formUtils"; +import { BackButton } from "../BackButton"; import type { ProviderState } from "./ChatModelAdminPanel"; import { GeneralModelConfigFields, @@ -262,14 +262,7 @@ export const ModelForm: FC = ({ if (!selectedProviderState || modelConfigsUnavailable) { return (
- +

{isEditing ? "Edit Model" : "Add Model"}

@@ -283,14 +276,7 @@ export const ModelForm: FC = ({ if (!canManageModels && !isEditing) { return (
- +

Add Model

@@ -316,15 +302,7 @@ export const ModelForm: FC = ({ return (
{/* Back */} - - {/* Header - editable display name */} + {/* Header - editable display name */}
{selectedProviderState && ( = ({ return (
{/* Back */} - - + {/* Provider header, editable name */}
diff --git a/site/src/pages/AgentsPage/components/MCPServerAdminPanel.tsx b/site/src/pages/AgentsPage/components/MCPServerAdminPanel.tsx index 2355c85018..35e2fdefba 100644 --- a/site/src/pages/AgentsPage/components/MCPServerAdminPanel.tsx +++ b/site/src/pages/AgentsPage/components/MCPServerAdminPanel.tsx @@ -1,7 +1,6 @@ import { useFormik } from "formik"; import { CheckCircleIcon, - ChevronLeftIcon, ChevronRightIcon, CircleIcon, PlusIcon, @@ -41,6 +40,7 @@ import { TooltipTrigger, } from "#/components/Tooltip/Tooltip"; import { cn } from "#/utils/cn"; +import { BackButton } from "./BackButton"; import { ProviderField as Field } from "./ChatModelAdminPanel/ProviderForm"; import { SectionHeader } from "./SectionHeader"; @@ -355,14 +355,7 @@ const ServerForm: FC = ({ return (
{/* Back */} - + {/* Header with icon + editable name + enabled toggle */}