import React, { useState } from 'react'; import { Checkbox } from '@renderer/components/ui/checkbox'; import { Label } from '@renderer/components/ui/label'; import { EffortLevelSelector } from '@renderer/components/team/dialogs/EffortLevelSelector'; import { LimitContextCheckbox } from '@renderer/components/team/dialogs/LimitContextCheckbox'; import { getTeamModelLabel, TeamModelSelector, } from '@renderer/components/team/dialogs/TeamModelSelector'; import { getTeamColorSet } from '@renderer/constants/teamColors'; import { useTheme } from '@renderer/hooks/useTheme'; import { getMemberColorByName } from '@shared/constants/memberColors'; import { ChevronDown, ChevronRight, Info } from 'lucide-react'; import { Button } from '../../ui/button'; import type { EffortLevel, TeamProviderId } from '@shared/types'; interface LeadModelRowProps { providerId: TeamProviderId; model: string; effort?: EffortLevel; limitContext: boolean; onProviderChange: (providerId: TeamProviderId) => void; onModelChange: (model: string) => void; onEffortChange: (effort: string) => void; onLimitContextChange: (value: boolean) => void; syncModelsWithTeammates: boolean; onSyncModelsWithTeammatesChange: (value: boolean) => void; warningText?: string | null; disableGeminiOption?: boolean; } export const LeadModelRow = ({ providerId, model, effort, limitContext, onProviderChange, onModelChange, onEffortChange, onLimitContextChange, syncModelsWithTeammates, onSyncModelsWithTeammatesChange, warningText, disableGeminiOption = false, }: LeadModelRowProps): React.JSX.Element => { const { isLight } = useTheme(); const [modelExpanded, setModelExpanded] = useState(false); const leadColorSet = getTeamColorSet(getMemberColorByName('lead')); const modelButtonLabel = model.trim() ? getTeamModelLabel(model.trim()) : 'Default'; return (
); };