using AIStudio.Provider;
using AIStudio.Settings;
using Microsoft.AspNetCore.Components;
namespace AIStudio.Components;
///
/// One row of a data source list: what the source is called, how confidential it is, and whether it
/// can be used right now.
///
///
/// A data source waiting for its index stays in the list instead of disappearing from it, but
/// cannot be picked, and the tooltip says why. The tool selection next to it in the chat answers
/// the same question the same way.
///
/// The tooltip sits around the list item rather than inside it: a disabled item has its pointer
/// events switched off and would swallow the hover.
///
public partial class DataSourceSelectionRow : MSGComponentBase
{
///
/// The data source this row stands for.
///
[Parameter]
public required IDataSource DataSource { get; set; }
///
/// Whether this data source has to be indexed anew before it can answer a search.
///
[Parameter]
public bool IsAwaitingReindex { get; set; }
private string GetConfidenceIconStyle(IInternalDataSource dataSource) => $"{dataSource.ConfidenceLevel.SetColorStyle(this.SettingsManager)} flex-shrink: 0;";
}