diff --git a/app/MindWork AI Studio/Components/DataSourceSelection.razor b/app/MindWork AI Studio/Components/DataSourceSelection.razor index 3fcb1c83..4a145120 100644 --- a/app/MindWork AI Studio/Components/DataSourceSelection.razor +++ b/app/MindWork AI Studio/Components/DataSourceSelection.razor @@ -1,37 +1,6 @@ @using AIStudio.Settings @using AIStudio.Provider @inherits MSGComponentBase -@* - One row of the data source lists below. 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 this one 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. -*@ -@{ - RenderFragment dataSourceRow = source => - @ - - - - @source.Name - - @if (source is IInternalDataSource internalSource) - { - - @if (this.IsAwaitingReindex(source)) - { - - } - - - - } - - - ; -} @if (this.SelectionMode is DataSourceSelectionMode.SELECTION_MODE) {
@@ -123,7 +92,7 @@ @foreach (var source in this.GetListedDataSources()) { - @dataSourceRow(source) + } @@ -135,7 +104,7 @@ @foreach (var source in this.GetListedDataSources()) { - @dataSourceRow(source) + } @@ -217,22 +186,13 @@ else if (this.SelectionMode is DataSourceSelectionMode.CONFIGURATION_MODE) + @* + The configuration mode lists what was configured, without filtering it, so no + row here is ever waiting for an index. + *@ @foreach (var source in this.availableDataSources) { - - - - @source.Name - - @if (source is IInternalDataSource internalSource) - { - - - - - } - - + } diff --git a/app/MindWork AI Studio/Components/DataSourceSelectionRow.razor b/app/MindWork AI Studio/Components/DataSourceSelectionRow.razor new file mode 100644 index 00000000..837a1681 --- /dev/null +++ b/app/MindWork AI Studio/Components/DataSourceSelectionRow.razor @@ -0,0 +1,24 @@ +@using AIStudio.Settings +@using AIStudio.Provider +@inherits MSGComponentBase + + + + + + @this.DataSource.Name + + @if (this.DataSource is IInternalDataSource internalSource) + { + + @if (this.IsAwaitingReindex) + { + + } + + + + } + + + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/DataSourceSelectionRow.razor.cs b/app/MindWork AI Studio/Components/DataSourceSelectionRow.razor.cs new file mode 100644 index 00000000..51f602a4 --- /dev/null +++ b/app/MindWork AI Studio/Components/DataSourceSelectionRow.razor.cs @@ -0,0 +1,35 @@ +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;"; +} \ No newline at end of file