diff --git a/webview-ui/src/components/settings/ApiOptions.tsx b/webview-ui/src/components/settings/ApiOptions.tsx index a93945c..cbf12c5 100644 --- a/webview-ui/src/components/settings/ApiOptions.tsx +++ b/webview-ui/src/components/settings/ApiOptions.tsx @@ -31,6 +31,7 @@ import { ExtensionMessage } from "../../../../src/shared/ExtensionMessage" import { useExtensionState } from "../../context/ExtensionStateContext" import { vscode } from "../../utils/vscode" import VSCodeButtonLink from "../common/VSCodeButtonLink" +import OpenRouterModelPicker from "./OpenRouterModelPicker" interface ApiOptionsProps { showModelOptions: boolean @@ -529,6 +530,8 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage }: ApiOptionsProps) => {

)} + {selectedProvider === "openrouter" && showModelOptions && } + {selectedProvider !== "openrouter" && selectedProvider !== "openai" && selectedProvider !== "ollama" && diff --git a/webview-ui/src/components/settings/OpenRouterModelPicker.tsx b/webview-ui/src/components/settings/OpenRouterModelPicker.tsx index 1d73ad6..13fd6f9 100644 --- a/webview-ui/src/components/settings/OpenRouterModelPicker.tsx +++ b/webview-ui/src/components/settings/OpenRouterModelPicker.tsx @@ -2,6 +2,8 @@ import { VSCodeDropdown, VSCodeOption } from "@vscode/webview-ui-toolkit/react" import React, { useMemo } from "react" import { useExtensionState } from "../../context/ExtensionStateContext" import { ModelInfoView, normalizeApiConfiguration } from "./ApiOptions" +import { useMount } from "react-use" +import { vscode } from "../../utils/vscode" interface OpenRouterModelPickerProps {} @@ -10,14 +12,21 @@ const OpenRouterModelPicker: React.FC = () => { const handleModelChange = (event: any) => { const newModelId = event.target.value - // get info - setApiConfiguration({ ...apiConfiguration, openRouterModelId: newModelId }) + setApiConfiguration({ + ...apiConfiguration, + openRouterModelId: newModelId, + openRouterModelInfo: openRouterModels[newModelId], + }) } const { selectedModelId, selectedModelInfo } = useMemo(() => { return normalizeApiConfiguration(apiConfiguration) }, [apiConfiguration]) + useMount(() => { + vscode.postMessage({ type: "refreshOpenRouterModels" }) + }) + return (