diff --git a/apps/internal-ui/src/features/agents/AgentDetailPage.tsx b/apps/internal-ui/src/features/agents/AgentDetailPage.tsx index 8105a70..b28fa29 100644 --- a/apps/internal-ui/src/features/agents/AgentDetailPage.tsx +++ b/apps/internal-ui/src/features/agents/AgentDetailPage.tsx @@ -5,6 +5,7 @@ import { LANGUAGES } from "@chatballs/shared"; import { api, ApiError } from "../../api/client"; import { ChannelGlyph } from "../../shared/badges"; +import { SelectField } from "../../shared/form-controls"; import { Icon } from "../../shared/icons"; import { EmptyState, ErrorScreen, LoadingState } from "../../shared/ui"; import { BackLink, Button, CopyButton } from "../../shared/ui-controls"; @@ -509,25 +510,16 @@ function AssignmentCard({ card, groups, canManage, busy, apply }: { ? setName(event.target.value)} onBlur={() => { if (dirty) void apply({ name: name.trim() }); }} /> : {card.name}} - + } + disabled={busy} + label={t("common.group")} + readOnly={!canManage} + readOnlyText={card.groupName ?? t("common.no_group")} + value={card.groupId === null ? "" : String(card.groupId)} + onChange={(next) => void apply({ groupId: next ? Number(next) : null })} + options={[["", t("common.no_group")], ...groups.map((group) => [String(group.id), group.name] as [string, string])]} + /> ); @@ -558,24 +550,16 @@ function ModelCard({ card, providers, canManage, busy, apply }: {

{t("common.model")}

{t("ai.provider_key_lives_under_settings")}

- + void apply({ providerIntegrationId: next ? Number(next) : null })} + options={[["", t("ai.not_selected")], ...providers.map((item) => [String(item.id), item.name] as [string, string])]} + />