Skip to content

Commit cebef26

Browse files
alenkaczclaude
andcommitted
fix: biome formatting and improve model loading state display
Biome formatting fixes: - Fix line breaks for long ternary expressions - Convert double quotes to single quotes for consistency - Format multi-line object property access UX improvements: - Clear model field when provider changes to show "Loading models..." placeholder - Use undefined instead of empty string for Select value to properly trigger placeholder - Prevents blank dropdown when switching providers during model loading Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent df53a3b commit cebef26

2 files changed

Lines changed: 33 additions & 23 deletions

File tree

frontend/src/components/pages/agents/details/ai-agent-configuration-tab.tsx

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -407,9 +407,7 @@ export const AIAgentConfigurationTab = () => {
407407

408408
const { data: modelsData, isLoading: isLoadingModels } = useListModelsQuery(
409409
{
410-
filter: selectedProvider
411-
? `provider = "${selectedProvider}" AND enabled = "true"`
412-
: 'enabled = "true"',
410+
filter: selectedProvider ? `provider = "${selectedProvider}" AND enabled = "true"` : 'enabled = "true"',
413411
},
414412
{ enabled: isUsingGateway && !!selectedProvider }
415413
);
@@ -732,9 +730,10 @@ export const AIAgentConfigurationTab = () => {
732730
const tagsMap = buildTagsMap(aiAgentData.aiAgent!.tags, displayData.tags);
733731
// When using gateway, keep the existing API key reference; otherwise use the selected secret
734732
const currentProvider = aiAgentData.aiAgent!.provider;
735-
const apiKeyRef = isUsingGateway && currentProvider
736-
? extractProviderInfo(currentProvider).apiKeyTemplate
737-
: `\${secrets.${displayData.apiKeySecret}}`;
733+
const apiKeyRef =
734+
isUsingGateway && currentProvider
735+
? extractProviderInfo(currentProvider).apiKeyTemplate
736+
: `\${secrets.${displayData.apiKeySecret}}`;
738737
const updatedProvider = createUpdatedProvider(displayData.provider.provider.case, apiKeyRef, displayData.baseUrl);
739738

740739
const gatewayConfig =
@@ -1198,9 +1197,7 @@ export const AIAgentConfigurationTab = () => {
11981197
// Get models for the new provider
11991198
const providerModels = isUsingGateway ? [] : MODEL_OPTIONS_BY_PROVIDER[value]?.models || [];
12001199
const firstModel =
1201-
providerModels.length > 0 && providerModels[0]
1202-
? providerModels[0].value
1203-
: displayData.model;
1200+
providerModels.length > 0 && providerModels[0] ? providerModels[0].value : displayData.model;
12041201

12051202
updateField({
12061203
provider: createUpdatedProvider(value, '', displayData.baseUrl || ''),
@@ -1211,7 +1208,7 @@ export const AIAgentConfigurationTab = () => {
12111208
value={displayData.provider?.provider.case}
12121209
>
12131210
<SelectTrigger>
1214-
<SelectValue placeholder={isLoadingProviders ? "Loading providers..." : "Select provider"}>
1211+
<SelectValue placeholder={isLoadingProviders ? 'Loading providers...' : 'Select provider'}>
12151212
{Boolean(displayData.provider?.provider.case) && (
12161213
<div className="flex items-center gap-2">
12171214
<img
@@ -1253,7 +1250,8 @@ export const AIAgentConfigurationTab = () => {
12531250
{/* Model - filtered by provider */}
12541251
<div className="space-y-2">
12551252
<Label htmlFor="model">Model</Label>
1256-
{displayData.provider?.provider.case === 'openaiCompatible' || (isUsingGateway && filteredModels.length === 0 && !isLoadingModels) ? (
1253+
{displayData.provider?.provider.case === 'openaiCompatible' ||
1254+
(isUsingGateway && filteredModels.length === 0 && !isLoadingModels) ? (
12571255
<Input
12581256
onChange={(e) => updateField({ model: e.target.value })}
12591257
placeholder="Enter model name (e.g., llama-3.1-70b)"
@@ -1266,7 +1264,7 @@ export const AIAgentConfigurationTab = () => {
12661264
value={displayData.model}
12671265
>
12681266
<SelectTrigger>
1269-
<SelectValue placeholder={isLoadingModels ? "Loading models..." : "Select model"}>
1267+
<SelectValue placeholder={isLoadingModels ? 'Loading models...' : 'Select model'}>
12701268
{Boolean(displayData.model) && detectProvider(displayData.model) ? (
12711269
<div className="flex items-center gap-2">
12721270
<img
@@ -1292,21 +1290,33 @@ export const AIAgentConfigurationTab = () => {
12921290
<SelectLabel>
12931291
<div className="flex items-center gap-2">
12941292
<img
1295-
alt={MODEL_OPTIONS_BY_PROVIDER[displayData.provider.provider.case as keyof typeof MODEL_OPTIONS_BY_PROVIDER]?.label}
1293+
alt={
1294+
MODEL_OPTIONS_BY_PROVIDER[
1295+
displayData.provider.provider.case as keyof typeof MODEL_OPTIONS_BY_PROVIDER
1296+
]?.label
1297+
}
12961298
className="h-4 w-4"
1297-
src={MODEL_OPTIONS_BY_PROVIDER[displayData.provider.provider.case as keyof typeof MODEL_OPTIONS_BY_PROVIDER]?.icon}
1299+
src={
1300+
MODEL_OPTIONS_BY_PROVIDER[
1301+
displayData.provider.provider.case as keyof typeof MODEL_OPTIONS_BY_PROVIDER
1302+
]?.icon
1303+
}
12981304
/>
1299-
<span>{MODEL_OPTIONS_BY_PROVIDER[displayData.provider.provider.case as keyof typeof MODEL_OPTIONS_BY_PROVIDER]?.label}</span>
1305+
<span>
1306+
{
1307+
MODEL_OPTIONS_BY_PROVIDER[
1308+
displayData.provider.provider.case as keyof typeof MODEL_OPTIONS_BY_PROVIDER
1309+
]?.label
1310+
}
1311+
</span>
13001312
</div>
13011313
</SelectLabel>
13021314
)}
1303-
{filteredModels.map(
1304-
(model: { value: string; name: string; description: string }) => (
1305-
<SelectItem key={model.value} value={model.value}>
1306-
{model.name}
1307-
</SelectItem>
1308-
)
1309-
)}
1315+
{filteredModels.map((model: { value: string; name: string; description: string }) => (
1316+
<SelectItem key={model.value} value={model.value}>
1317+
{model.name}
1318+
</SelectItem>
1319+
))}
13101320
</SelectGroup>
13111321
) : (
13121322
<div className="p-2">

frontend/src/components/ui/ai-agent/llm-config-section.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ export const LLMConfigSection: React.FC<LLMConfigSectionProps> = ({
316316
}
317317

318318
return (
319-
<Select disabled={isLoadingModels || hasNoProviders || hasNoModels} onValueChange={field.onChange} value={field.value}>
319+
<Select disabled={isLoadingModels || hasNoProviders || hasNoModels} onValueChange={field.onChange} value={field.value || undefined}>
320320
<SelectTrigger id="model">
321321
<SelectValue placeholder={
322322
hasNoProviders

0 commit comments

Comments
 (0)