diff --git a/studio/frontend/src/components/assistant-ui/model-selector.tsx b/studio/frontend/src/components/assistant-ui/model-selector.tsx index b8ad25f955..7bfdab0168 100644 --- a/studio/frontend/src/components/assistant-ui/model-selector.tsx +++ b/studio/frontend/src/components/assistant-ui/model-selector.tsx @@ -195,17 +195,19 @@ function ModelSelectorContent({ const hasSelection = Boolean(value); const chatOnly = usePlatformStore((s) => s.isChatOnly()); const hasExternal = externalModels.length > 0; - const chatOnlyTabsDefault = useMemo( () => (value && externalModels.some((m) => m.id === value) ? "external" : "hub"), [value, externalModels], ); - const studioTabsDefault = useMemo((): "hub" | "lora" | "external" => { - if (value && externalModels.some((m) => m.id === value)) return "external"; - if (value && loraModels.some((l) => l.id === value)) return "lora"; + if (value && externalModels.some((model) => model.id === value)) { + return "external"; + } + if (value && loraModels.some((model) => model.id === value)) { + return "lora"; + } return "hub"; - }, [value, externalModels, loraModels]); + }, [externalModels, loraModels, value]); return ( { const needle = normalizeForSearch(query.trim()); - const byProvider = new Map(); + const byProvider = new Map< + string, + { providerName: string; models: ExternalModelOption[] } + >(); for (const model of externalModels) { const searchText = normalizeForSearch( `${model.name} ${model.providerName} ${model.id}`, @@ -505,7 +510,7 @@ function ExternalModelPicker({ grouped.map((group) => (
- onSelect(model.id, { source: "external", isLora: false })} + onClick={() => + onSelect(model.id, { + source: "external", + isLora: false, + }) + } className={cn( "flex w-full items-center rounded-md px-2.5 py-1.5 text-left text-sm transition-colors hover:bg-accent", value === model.id && "bg-accent/60",