diff --git a/app/MindWork AI Studio/Components/ProviderSelection.razor b/app/MindWork AI Studio/Components/ProviderSelection.razor index 70314dab..4d5b0887 100644 --- a/app/MindWork AI Studio/Components/ProviderSelection.razor +++ b/app/MindWork AI Studio/Components/ProviderSelection.razor @@ -1,18 +1,15 @@ @using AIStudio.Settings @inherits MSGComponentBase - @foreach (var provider in this.GetAvailableProviders()) + @foreach (var providerItem in this.GetAvailableProviderSelectionItems()) { - + - @provider - @{ - var capabilityIcons = this.GetCapabilityIcons(provider); - } - @if (capabilityIcons.Count > 0) + @providerItem.Provider + @if (providerItem.CapabilityIcons.Count > 0) { - @foreach (var capabilityIcon in capabilityIcons) + @foreach (var capabilityIcon in providerItem.CapabilityIcons) { @@ -23,4 +20,4 @@ } - + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ProviderSelection.razor.cs b/app/MindWork AI Studio/Components/ProviderSelection.razor.cs index d5e51b27..8a27acb9 100644 --- a/app/MindWork AI Studio/Components/ProviderSelection.razor.cs +++ b/app/MindWork AI Studio/Components/ProviderSelection.razor.cs @@ -49,6 +49,12 @@ public partial class ProviderSelection : MSGComponentBase await this.ProviderSettingsChanged.InvokeAsync(provider); } + private IEnumerable GetAvailableProviderSelectionItems() + { + foreach (var provider in this.GetAvailableProviders()) + yield return new(provider, this.GetCapabilityIcons(provider)); + } + private IReadOnlyList GetCapabilityIcons(AIStudio.Settings.Provider provider) { var capabilities = provider.GetModelCapabilities(); @@ -113,4 +119,6 @@ public partial class ProviderSelection : MSGComponentBase #endregion private readonly record struct CapabilityIcon(string Icon, string Tooltip); -} + + private readonly record struct ProviderSelectionItem(AIStudio.Settings.Provider Provider, IReadOnlyList CapabilityIcons); +} \ No newline at end of file