mirror of
				https://github.com/MindWorkAI/AI-Studio.git
				synced 2025-11-04 10:20:21 +00:00 
			
		
		
		
	Refactored switch component
This commit is contained in:
		
							parent
							
								
									1ec86ec1a6
								
							
						
					
					
						commit
						3aeba836ff
					
				@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					<MudField Label="@this.Label" Variant="Variant.Outlined" Class="mb-3" Disabled="@this.Disabled">
 | 
				
			||||||
 | 
					    <MudSwitch T="bool" Value="@this.Value" ValueChanged="@this.ValueChanged" Color="@this.Color" Validation="@this.Validation" Disabled="@this.Disabled">
 | 
				
			||||||
 | 
					        @(this.Value ? this.LabelOn : this.LabelOff)
 | 
				
			||||||
 | 
					    </MudSwitch>
 | 
				
			||||||
 | 
					</MudField>
 | 
				
			||||||
@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					using Microsoft.AspNetCore.Components;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace AIStudio.Components.Blocks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public partial class MudTextSwitch : ComponentBase
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    [Parameter]
 | 
				
			||||||
 | 
					    public string Label { get; set; } = string.Empty;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    [Parameter]
 | 
				
			||||||
 | 
					    public bool Disabled { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [Parameter]
 | 
				
			||||||
 | 
					    public bool Value { get; set; }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    [Parameter]
 | 
				
			||||||
 | 
					    public EventCallback<bool> ValueChanged { get; set; }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    [Parameter]
 | 
				
			||||||
 | 
					    public Color Color { get; set; } = Color.Primary;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    [Parameter]
 | 
				
			||||||
 | 
					    public Func<bool, string?> Validation { get; set; } = _ => null;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    [Parameter]
 | 
				
			||||||
 | 
					    public string LabelOn { get; set; } = string.Empty;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    [Parameter]
 | 
				
			||||||
 | 
					    public string LabelOff { get; set; } = string.Empty;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,17 +1,8 @@
 | 
				
			|||||||
<MudPaper Class="pa-3 mb-8 border-dashed border rounded-lg">
 | 
					<MudPaper Class="pa-3 mb-8 border-dashed border rounded-lg">
 | 
				
			||||||
    <MudField Label="Read content from web?" Variant="Variant.Outlined" Class="mb-3" Disabled="@this.AgentIsRunning">
 | 
					    <MudTextSwitch Label="Read content from web?" Disabled="@this.AgentIsRunning" @bind-Value="@this.showWebContentReader" LabelOn="Show web content options" LabelOff="Hide web content options" />
 | 
				
			||||||
        <MudSwitch T="bool" @bind-Value="@this.showWebContentReader" Color="Color.Primary" Disabled="@this.AgentIsRunning">
 | 
					 | 
				
			||||||
            @(this.showWebContentReader ? "Show web content options" : "Hide web content options")
 | 
					 | 
				
			||||||
        </MudSwitch>
 | 
					 | 
				
			||||||
    </MudField>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @if (this.showWebContentReader)
 | 
					    @if (this.showWebContentReader)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        <MudField Label="Cleanup content by using a LLM agent?" Variant="Variant.Outlined" Class="mb-3" Disabled="@this.AgentIsRunning">
 | 
					        <MudTextSwitch Label="Cleanup content by using a LLM agent?" @bind-Value="@this.useContentCleanerAgent" Validation="@this.ValidateProvider" Disabled="@this.AgentIsRunning" LabelOn="The content is cleaned using an LLM agent: the main content is extracted, advertisements and other irrelevant things are attempted to be removed; relative links are attempted to be converted into absolute links so that they can be used." LabelOff="No content cleaning" />
 | 
				
			||||||
            <MudSwitch T="bool" @bind-Value="@this.useContentCleanerAgent" Color="Color.Primary" Validation="@this.ValidateProvider" Disabled="@this.AgentIsRunning">
 | 
					 | 
				
			||||||
                @(this.useContentCleanerAgent ? "The content is cleaned using an LLM agent: the main content is extracted, advertisements and other irrelevant things are attempted to be removed; relative links are attempted to be converted into absolute links so that they can be used." : "No content cleaning")
 | 
					 | 
				
			||||||
            </MudSwitch>
 | 
					 | 
				
			||||||
        </MudField>
 | 
					 | 
				
			||||||
        <MudStack Row="@true" AlignItems="@AlignItems.Baseline" Class="mb-3">
 | 
					        <MudStack Row="@true" AlignItems="@AlignItems.Baseline" Class="mb-3">
 | 
				
			||||||
            <MudTextField T="string" Label="URL from which to load the content" @bind-Value="@this.providedURL" Validation="@this.ValidateURL" Adornment="Adornment.Start" AdornmentIcon="@Icons.Material.Filled.Link" Placeholder="https://..." HelperText="Loads the content from your URL. Does not work when the content is hidden behind a paywall." Variant="Variant.Outlined" Immediate="@true" Disabled="@this.AgentIsRunning"/>
 | 
					            <MudTextField T="string" Label="URL from which to load the content" @bind-Value="@this.providedURL" Validation="@this.ValidateURL" Adornment="Adornment.Start" AdornmentIcon="@Icons.Material.Filled.Link" Placeholder="https://..." HelperText="Loads the content from your URL. Does not work when the content is hidden behind a paywall." Variant="Variant.Outlined" Immediate="@true" Disabled="@this.AgentIsRunning"/>
 | 
				
			||||||
            <MudButton Disabled="@(!this.IsReady || this.AgentIsRunning)" Variant="Variant.Filled" Size="Size.Large" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Download" OnClick="() => this.LoadFromWeb()">
 | 
					            <MudButton Disabled="@(!this.IsReady || this.AgentIsRunning)" Variant="Variant.Filled" Size="Size.Large" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Download" OnClick="() => this.LoadFromWeb()">
 | 
				
			||||||
 | 
				
			|||||||
@ -16,9 +16,7 @@
 | 
				
			|||||||
</MudButton>
 | 
					</MudButton>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<MudStack Row="@false" Class="mb-3">
 | 
					<MudStack Row="@false" Class="mb-3">
 | 
				
			||||||
    <MudSwitch T="bool" @bind-Value="@this.provideCompilerMessages" Color="Color.Primary">
 | 
					    <MudTextSwitch Label="Do you want to provide compiler messages?" @bind-Value="@this.provideCompilerMessages" LabelOn="Yes, provide compiler messages" LabelOff="No, there are no compiler messages" />
 | 
				
			||||||
        @(this.provideCompilerMessages ? "Provide compiler messages" : "Provide no compiler messages")
 | 
					 | 
				
			||||||
    </MudSwitch>
 | 
					 | 
				
			||||||
    @if (this.provideCompilerMessages)
 | 
					    @if (this.provideCompilerMessages)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        <MudTextField T="string" @bind-Text="@this.compilerMessages" Validation="@this.ValidatingCompilerMessages" AdornmentIcon="@Icons.Material.Filled.Error" Adornment="Adornment.Start" Label="Compiler messages" Variant="Variant.Outlined" Lines="6" AutoGrow="@true" MaxLines="12" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
 | 
					        <MudTextField T="string" @bind-Text="@this.compilerMessages" Validation="@this.ValidatingCompilerMessages" AdornmentIcon="@Icons.Material.Filled.Error" Adornment="Adornment.Start" Label="Compiler messages" Variant="Variant.Outlined" Lines="6" AutoGrow="@true" MaxLines="12" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
 | 
				
			||||||
 | 
				
			|||||||
@ -8,12 +8,7 @@
 | 
				
			|||||||
    <ReadWebContent @bind-Content="@this.inputText" ProviderSettings="@this.providerSettings" @bind-AgentIsRunning="@this.isAgentRunning" Preselect="@(this.SettingsManager.ConfigurationData.PreselectTranslationOptions && this.SettingsManager.ConfigurationData.PreselectWebContentReaderForTranslation)" PreselectContentCleanerAgent="@(this.SettingsManager.ConfigurationData.PreselectTranslationOptions && this.SettingsManager.ConfigurationData.PreselectContentCleanerAgentForTranslation)"/>
 | 
					    <ReadWebContent @bind-Content="@this.inputText" ProviderSettings="@this.providerSettings" @bind-AgentIsRunning="@this.isAgentRunning" Preselect="@(this.SettingsManager.ConfigurationData.PreselectTranslationOptions && this.SettingsManager.ConfigurationData.PreselectWebContentReaderForTranslation)" PreselectContentCleanerAgent="@(this.SettingsManager.ConfigurationData.PreselectTranslationOptions && this.SettingsManager.ConfigurationData.PreselectContentCleanerAgentForTranslation)"/>
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<MudField Label="Live translation" Variant="Variant.Outlined" Class="mb-3">
 | 
					<MudTextSwitch Label="Live translation" @bind-Value="@this.liveTranslation" LabelOn="Live translation" LabelOff="No live translation"/>
 | 
				
			||||||
    <MudSwitch T="bool" @bind-Value="@this.liveTranslation" Color="Color.Primary">
 | 
					 | 
				
			||||||
        @(this.liveTranslation ? "Live translation" : "No live translation")
 | 
					 | 
				
			||||||
    </MudSwitch>
 | 
					 | 
				
			||||||
</MudField>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@if (this.liveTranslation)
 | 
					@if (this.liveTranslation)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    <MudTextField T="string" Disabled="@this.isAgentRunning" @bind-Text="@this.inputText" Validation="@this.ValidatingText" AdornmentIcon="@Icons.Material.Filled.DocumentScanner" Adornment="Adornment.Start" Label="Your input" Variant="Variant.Outlined" Lines="6" AutoGrow="@true" MaxLines="12" Class="mb-3" Immediate="@true" DebounceInterval="1_000" OnDebounceIntervalElapsed="() => this.TranslateText(force: false)" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
 | 
					    <MudTextField T="string" Disabled="@this.isAgentRunning" @bind-Text="@this.inputText" Validation="@this.ValidatingText" AdornmentIcon="@Icons.Material.Filled.DocumentScanner" Adornment="Adornment.Start" Label="Your input" Variant="Variant.Outlined" Lines="6" AutoGrow="@true" MaxLines="12" Class="mb-3" Immediate="@true" DebounceInterval="1_000" OnDebounceIntervalElapsed="() => this.TranslateText(force: false)" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user