diff --git a/apps/desktop/src/components/settings/ai/stt/configure.tsx b/apps/desktop/src/components/settings/ai/stt/configure.tsx index eaf8960cd2..ddaf165d7a 100644 --- a/apps/desktop/src/components/settings/ai/stt/configure.tsx +++ b/apps/desktop/src/components/settings/ai/stt/configure.tsx @@ -118,12 +118,12 @@ function HyprProviderCard({ { + if (!current_stt_provider || !current_stt_model) return ""; + + const providerModels = + configuredProviders[current_stt_provider as ProviderId]?.models ?? []; + const isModelValid = providerModels.some( + (model) => model.id === current_stt_model && model.isDownloaded, + ); + + return isModelValid ? current_stt_model : ""; + }; + const form = useForm({ defaultValues: { provider: current_stt_provider || "", - model: current_stt_model || "", + model: getValidatedModel(), }, listeners: { onChange: ({ formApi }) => { @@ -73,6 +87,17 @@ export function SelectProviderAndModel() { }, }); + const handleClearModel = useCallback(() => { + handleSelectModel(""); + form.setFieldValue("model", ""); + }, [handleSelectModel, form]); + + useValidateSttModel( + current_stt_provider, + current_stt_model, + handleClearModel, + ); + return (

Model being used

@@ -170,34 +195,46 @@ export function SelectProviderAndModel() { } const allModels = configuredProviders?.[providerId]?.models ?? []; - const models = allModels.filter((model) => { - if (model.id === "cloud") { - return true; - } - if (model.id.startsWith("Quantized")) { - return model.isDownloaded; - } - return true; - }); + + const modelsToShow = + providerId === "hyprnote" + ? allModels + : allModels.filter((model) => { + if (model.id === "cloud") { + return true; + } + return model.isDownloaded; + }); return (