Improved single-input dialog

This commit is contained in:
Thorsten Sommer 2026-02-16 13:36:18 +01:00
parent 4562ed1c6a
commit 69060df9b6
Signed by untrusted user who does not match committer: tsommer
GPG Key ID: 371BBA77A02C0108
3 changed files with 29 additions and 4 deletions

View File

@ -1,11 +1,21 @@
@inherits MSGComponentBase
<MudDialog>
<MudDialog DefaultFocus="DefaultFocus.FirstChild">
<DialogContent>
<MudText Typo="Typo.body1">
@this.Message
</MudText>
<MudForm @ref="this.form" Class="mt-4">
<MudTextField T="string" @bind-Text="@this.UserInput" Variant="Variant.Outlined" AutoGrow="@false" Lines="1" Label="@this.GetInputHeaderText" AutoFocus="@true" UserAttributes="@USER_INPUT_ATTRIBUTES" Validation="@this.ValidateUserInput" />
<MudTextField T="string"
@bind-Text="@this.UserInput"
Variant="Variant.Outlined"
AutoGrow="@false"
Lines="1"
Label="@this.GetInputHeaderText"
AutoFocus="@true"
Immediate="@true"
OnKeyDown="@this.HandleUserInputKeyDown"
UserAttributes="@USER_INPUT_ATTRIBUTES"
Validation="@this.ValidateUserInput" />
</MudForm>
</DialogContent>
<DialogActions>
@ -16,4 +26,4 @@
@this.ConfirmText
</MudButton>
</DialogActions>
</MudDialog>
</MudDialog>

View File

@ -1,6 +1,7 @@
using AIStudio.Components;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
namespace AIStudio.Dialogs;
@ -57,6 +58,19 @@ public partial class SingleInputDialog : MSGComponentBase
private void Cancel() => this.MudDialog.Cancel();
private async Task HandleUserInputKeyDown(KeyboardEventArgs keyEvent)
{
var key = keyEvent.Key.ToLowerInvariant();
var code = keyEvent.Code.ToLowerInvariant();
if (key is not "enter" && code is not "enter" and not "numpadenter")
return;
if (keyEvent is { AltKey: true } or { CtrlKey: true } or { MetaKey: true })
return;
await this.Confirm();
}
private async Task Confirm()
{
await this.form.Validate();
@ -65,4 +79,4 @@ public partial class SingleInputDialog : MSGComponentBase
this.MudDialog.Close(DialogResult.Ok(this.UserInput));
}
}
}

View File

@ -6,6 +6,7 @@
- Added support for using multiple enterprise configurations simultaneously. Enabled organizations to apply configurations based on employee affiliations, such as departments and working groups. See the enterprise configuration documentation for details.
- Improved the document analysis assistant (in beta) by hiding the export functionality by default. Enable the administration options in the app settings to show and use the export functionality. This streamlines the usage for regular users.
- Improved the workspaces experience by using a different color for the delete button to avoid confusion.
- Improved single-input dialogs (e.g., renaming chats) so pressing `Enter` confirmed immediately and the input field focused automatically when the dialog opened.
- Improved the plugins page by adding an action to open the plugin source link. The action opens website URLs in an external browser, supports `mailto:` links for direct email composition.
- Improved the system language detection for locale values such as `C` and variants like `de_DE.UTF-8`, enabling AI Studio to apply the matching UI language more reliably.
- Fixed an issue where manually saving chats in workspace manual-storage mode could appear unreliable during response streaming. The save button is now disabled while streaming to prevent partial saves.