mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
Fix validator and ApiOptions model state not updating to allow selection of newly refreshed models
This commit is contained in:
parent
ea4bfcb24a
commit
6b15ecec55
2 changed files with 19 additions and 8 deletions
|
|
@ -16,8 +16,10 @@ import {
|
|||
import { vscode } from "@src/utils/vscode"
|
||||
import { validateApiConfiguration, validateModelId } from "@src/utils/validate"
|
||||
import { useAppTranslation } from "@src/i18n/TranslationContext"
|
||||
|
||||
import { useRouterModels } from "@src/components/ui/hooks/useRouterModels"
|
||||
import { useSelectedModel } from "@src/components/ui/hooks/useSelectedModel"
|
||||
import { useExtensionState } from "@src/context/ExtensionStateContext"
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@src/components/ui"
|
||||
|
||||
import {
|
||||
|
|
@ -122,7 +124,12 @@ const ApiOptions = ({
|
|||
info: selectedModelInfo,
|
||||
} = useSelectedModel(apiConfiguration)
|
||||
|
||||
const { data: routerModels, refetch: refetchRouterModels } = useRouterModels()
|
||||
const { routerModels: contextRouterModels } = useExtensionState()
|
||||
const { data: queryRouterModels, refetch: refetchRouterModels } = useRouterModels()
|
||||
|
||||
// Router providers use context system, others use React Query system
|
||||
const isRouterProvider = ["openrouter", "requesty", "glama", "unbound", "litellm"].includes(selectedProvider)
|
||||
const routerModels = isRouterProvider ? contextRouterModels : queryRouterModels
|
||||
|
||||
// Update `apiModelId` whenever `selectedModelId` changes.
|
||||
useEffect(() => {
|
||||
|
|
|
|||
|
|
@ -34,22 +34,26 @@ import {
|
|||
|
||||
import { useRouterModels } from "./useRouterModels"
|
||||
import { useOpenRouterModelProviders } from "./useOpenRouterModelProviders"
|
||||
import { useExtensionState } from "@src/context/ExtensionStateContext"
|
||||
|
||||
export const useSelectedModel = (apiConfiguration?: ProviderSettings) => {
|
||||
const provider = apiConfiguration?.apiProvider || "anthropic"
|
||||
const openRouterModelId = provider === "openrouter" ? apiConfiguration?.openRouterModelId : undefined
|
||||
|
||||
const routerModels = useRouterModels()
|
||||
const { routerModels: contextRouterModels } = useExtensionState()
|
||||
const queryRouterModels = useRouterModels()
|
||||
const openRouterModelProviders = useOpenRouterModelProviders(openRouterModelId)
|
||||
|
||||
// Router providers use context system, others use React Query system
|
||||
const isRouterProvider = ["openrouter", "requesty", "glama", "unbound", "litellm"].includes(provider)
|
||||
const routerModels = isRouterProvider ? contextRouterModels : queryRouterModels.data
|
||||
|
||||
const { id, info } =
|
||||
apiConfiguration &&
|
||||
typeof routerModels.data !== "undefined" &&
|
||||
typeof openRouterModelProviders.data !== "undefined"
|
||||
apiConfiguration && typeof routerModels !== "undefined" && typeof openRouterModelProviders.data !== "undefined"
|
||||
? getSelectedModel({
|
||||
provider,
|
||||
apiConfiguration,
|
||||
routerModels: routerModels.data,
|
||||
routerModels,
|
||||
openRouterModelProviders: openRouterModelProviders.data,
|
||||
})
|
||||
: { id: anthropicDefaultModelId, info: undefined }
|
||||
|
|
@ -58,8 +62,8 @@ export const useSelectedModel = (apiConfiguration?: ProviderSettings) => {
|
|||
provider,
|
||||
id,
|
||||
info,
|
||||
isLoading: routerModels.isLoading || openRouterModelProviders.isLoading,
|
||||
isError: routerModels.isError || openRouterModelProviders.isError,
|
||||
isLoading: queryRouterModels.isLoading || openRouterModelProviders.isLoading,
|
||||
isError: queryRouterModels.isError || openRouterModelProviders.isError,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue