Combine to_selected_model and is_provider_authenticated

Richard Feldman created

Change summary

crates/agent_ui/src/agent_ui.rs | 41 +++++++++++++++++-----------------
1 file changed, 20 insertions(+), 21 deletions(-)

Detailed changes

crates/agent_ui/src/agent_ui.rs 🔗

@@ -361,53 +361,52 @@ fn init_language_model_settings(cx: &mut App) {
 fn update_active_language_model_from_settings(cx: &mut App) {
     let settings = AgentSettings::get_global(cx);
 
-    fn to_selected_model(selection: &LanguageModelSelection) -> language_model::SelectedModel {
-        language_model::SelectedModel {
-            provider: LanguageModelProviderId::from(selection.provider.0.clone()),
-            model: LanguageModelId::from(selection.model.clone()),
-        }
-    }
-
-    // Filter out models from providers that are not authenticated
-    fn is_provider_authenticated(
+    fn to_selected_model(
         selection: &LanguageModelSelection,
         registry: &LanguageModelRegistry,
         cx: &App,
-    ) -> bool {
+    ) -> Option<language_model::SelectedModel> {
         let provider_id = LanguageModelProviderId::from(selection.provider.0.clone());
-        registry
+
+        if registry
             .provider(&provider_id)
             .map_or(false, |provider| provider.is_authenticated(cx))
+        {
+            Some(language_model::SelectedModel {
+                provider: LanguageModelProviderId::from(selection.provider.0.clone()),
+                model: LanguageModelId::from(selection.model.clone()),
+            })
+        } else {
+            None
+        }
     }
 
+    // Filter out models from providers that are not authenticated
+    fn is_provider_authenticated(selection: &LanguageModelSelection) -> bool {}
+
     let registry = LanguageModelRegistry::global(cx);
     let registry_ref = registry.read(cx);
 
     let default = settings
         .default_model
         .as_ref()
-        .filter(|s| is_provider_authenticated(s, registry_ref, cx))
-        .map(to_selected_model);
+        .map(|s| to_selectad_model(s, registry_ref, cx));
     let inline_assistant = settings
         .inline_assistant_model
         .as_ref()
-        .filter(|s| is_provider_authenticated(s, registry_ref, cx))
-        .map(to_selected_model);
+        .map(|s| to_selected_model(s, registry_ref, cx));
     let commit_message = settings
         .commit_message_model
         .as_ref()
-        .filter(|s| is_provider_authenticated(s, registry_ref, cx))
-        .map(to_selected_model);
+        .map(|s| to_selected_model(s, registry_ref, cx));
     let thread_summary = settings
         .thread_summary_model
         .as_ref()
-        .filter(|s| is_provider_authenticated(s, registry_ref, cx))
-        .map(to_selected_model);
+        .map(|s| to_selected_model(s, registry_ref, cx));
     let inline_alternatives = settings
         .inline_alternatives
         .iter()
-        .filter(|s| is_provider_authenticated(s, registry_ref, cx))
-        .map(to_selected_model)
+        .map(|s| to_selected_model(s, registry_ref, cx))
         .collect::<Vec<_>>();
 
     registry.update(cx, |registry, cx| {