import React, { useState } from 'react'; import { AnthropicFastModeSelector } from '@renderer/components/team/dialogs/AnthropicFastModeSelector'; import { CodexFastModeSelector } from '@renderer/components/team/dialogs/CodexFastModeSelector'; import { ProviderBrandLogo } from '@renderer/components/common/ProviderBrandLogo'; import { EffortLevelSelector } from '@renderer/components/team/dialogs/EffortLevelSelector'; import { LimitContextCheckbox } from '@renderer/components/team/dialogs/LimitContextCheckbox'; import { getProviderScopedTeamModelLabel, getTeamProviderLabel, TeamModelSelector, } from '@renderer/components/team/dialogs/TeamModelSelector'; import { Checkbox } from '@renderer/components/ui/checkbox'; import { Label } from '@renderer/components/ui/label'; import { getTeamColorSet } from '@renderer/constants/teamColors'; import { useTheme } from '@renderer/hooks/useTheme'; import { cn } from '@renderer/lib/utils'; import { agentAvatarUrl } from '@renderer/utils/memberHelpers'; import { isAnthropicHaikuTeamModel } from '@renderer/utils/teamModelCatalog'; import { resolveTeamLeadColorName } from '@shared/utils/teamMemberColors'; import { AlertTriangle, ChevronDown, ChevronRight, Info } from 'lucide-react'; import { Button } from '../../ui/button'; import type { EffortLevel, TeamFastMode, TeamProviderId } from '@shared/types'; interface LeadModelRowProps { providerId: TeamProviderId; model: string; effort?: EffortLevel; fastMode?: TeamFastMode; providerFastModeDefault?: boolean; limitContext: boolean; onProviderChange: (providerId: TeamProviderId) => void; onModelChange: (model: string) => void; onEffortChange: (effort: string) => void; onFastModeChange?: (fastMode: TeamFastMode) => void; onLimitContextChange: (value: boolean) => void; syncModelsWithTeammates: boolean; onSyncModelsWithTeammatesChange: (value: boolean) => void; warningText?: string | null; fastModeNotice?: string | null; disableGeminiOption?: boolean; modelIssueText?: string | null; } export const LeadModelRow = ({ providerId, model, effort, fastMode = 'inherit', providerFastModeDefault = false, limitContext, onProviderChange, onModelChange, onEffortChange, onFastModeChange, onLimitContextChange, syncModelsWithTeammates, onSyncModelsWithTeammatesChange, warningText, fastModeNotice, disableGeminiOption = false, modelIssueText, }: LeadModelRowProps): React.JSX.Element => { const { isLight } = useTheme(); const [modelExpanded, setModelExpanded] = useState(false); const leadColorSet = getTeamColorSet(resolveTeamLeadColorName()); const modelButtonLabel = model.trim() ? getProviderScopedTeamModelLabel(providerId, model.trim()) : 'Default'; const modelButtonAriaLabel = `${getTeamProviderLabel(providerId)} provider, ${modelButtonLabel}`; const hasModelIssue = Boolean(modelIssueText); return (
); };