diff --git a/client/src/components/Chat/Menus/Endpoints/components/EndpointItem.tsx b/client/src/components/Chat/Menus/Endpoints/components/EndpointItem.tsx
index 6f73f76d79..c8cef36010 100644
--- a/client/src/components/Chat/Menus/Endpoints/components/EndpointItem.tsx
+++ b/client/src/components/Chat/Menus/Endpoints/components/EndpointItem.tsx
@@ -96,7 +96,7 @@ function EndpointMenuContent({
const localize = useLocalize();
const { agentsMap, assistantsMap, modelSpecs, selectedValues, endpointSearchValues } =
useModelSelectorContext();
- const { model: selectedModel, modelSpec: selectedSpec } = selectedValues;
+ const { modelSpec: selectedSpec } = selectedValues;
const searchValue = endpointSearchValues[endpoint.value] || '';
const endpointSpecs = useMemo(() => {
@@ -134,15 +134,9 @@ function EndpointMenuContent({
))}
{filteredModels
- ? renderEndpointModels(
- endpoint,
- endpoint.models || [],
- selectedModel,
- filteredModels,
- endpointIndex,
- )
+ ? renderEndpointModels(endpoint, endpoint.models || [], filteredModels, endpointIndex)
: endpoint.models &&
- renderEndpointModels(endpoint, endpoint.models, selectedModel, undefined, endpointIndex)}
+ renderEndpointModels(endpoint, endpoint.models, undefined, endpointIndex)}
>
);
}
@@ -157,7 +151,7 @@ export function EndpointItem({ endpoint, endpointIndex }: EndpointItemProps) {
setEndpointSearchValue,
endpointRequiresUserKey,
} = useModelSelectorContext();
- const { endpoint: selectedEndpoint } = selectedValues;
+ const { endpoint: selectedEndpoint, modelSpec: selectedSpec } = selectedValues;
const searchValue = endpointSearchValues[endpoint.value] || '';
const isUserProvided = useMemo(
@@ -179,7 +173,7 @@ export function EndpointItem({ endpoint, endpointIndex }: EndpointItemProps) {
);
- const isEndpointSelected = selectedEndpoint === endpoint.value;
+ const isEndpointSelected = !selectedSpec && selectedEndpoint === endpoint.value;
if (endpoint.hasModels) {
const placeholder =
diff --git a/client/src/components/Chat/Menus/Endpoints/components/EndpointModelItem.tsx b/client/src/components/Chat/Menus/Endpoints/components/EndpointModelItem.tsx
index 752788d63a..7cec4744d5 100644
--- a/client/src/components/Chat/Menus/Endpoints/components/EndpointModelItem.tsx
+++ b/client/src/components/Chat/Menus/Endpoints/components/EndpointModelItem.tsx
@@ -11,12 +11,18 @@ import { cn } from '~/utils';
interface EndpointModelItemProps {
modelId: string | null;
endpoint: Endpoint;
- isSelected: boolean;
}
-export function EndpointModelItem({ modelId, endpoint, isSelected }: EndpointModelItemProps) {
+export function EndpointModelItem({ modelId, endpoint }: EndpointModelItemProps) {
const localize = useLocalize();
- const { handleSelectModel } = useModelSelectorContext();
+ const { handleSelectModel, selectedValues } = useModelSelectorContext();
+ const {
+ endpoint: selectedEndpoint,
+ model: selectedModel,
+ modelSpec: selectedSpec,
+ } = selectedValues;
+ const isSelected =
+ !selectedSpec && selectedEndpoint === endpoint.value && selectedModel === modelId;
const { isFavoriteModel, toggleFavoriteModel, isFavoriteAgent, toggleFavoriteAgent } =
useFavorites();
@@ -147,7 +153,6 @@ export function EndpointModelItem({ modelId, endpoint, isSelected }: EndpointMod
export function renderEndpointModels(
endpoint: Endpoint | null,
models: Array<{ name: string; isGlobal?: boolean }>,
- selectedModel: string | null,
filteredModels?: string[],
endpointIndex?: number,
) {
@@ -161,7 +166,6 @@ export function renderEndpointModels(
key={`${endpoint.value}${indexSuffix}-${modelId}-${modelIndex}`}
modelId={modelId}
endpoint={endpoint}
- isSelected={selectedModel === modelId}
/>
),
);
diff --git a/client/src/components/Chat/Menus/Endpoints/components/SearchResults.tsx b/client/src/components/Chat/Menus/Endpoints/components/SearchResults.tsx
index 34985639c5..26831a577e 100644
--- a/client/src/components/Chat/Menus/Endpoints/components/SearchResults.tsx
+++ b/client/src/components/Chat/Menus/Endpoints/components/SearchResults.tsx
@@ -160,7 +160,9 @@ export function SearchResults({ results, localize, searchValue }: SearchResultsP
}
const isModelSelected =
- selectedEndpoint === endpoint.value && selectedModel === modelId;
+ !selectedSpec &&
+ selectedEndpoint === endpoint.value &&
+ selectedModel === modelId;
return (