diff --git a/app/MindWork AI Studio/Components/Pages/Chat.razor b/app/MindWork AI Studio/Components/Pages/Chat.razor index f9367ad..1feff68 100644 --- a/app/MindWork AI Studio/Components/Pages/Chat.razor +++ b/app/MindWork AI Studio/Components/Pages/Chat.razor @@ -22,6 +22,6 @@ - + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Pages/Chat.razor.cs b/app/MindWork AI Studio/Components/Pages/Chat.razor.cs index 5607260..738b435 100644 --- a/app/MindWork AI Studio/Components/Pages/Chat.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/Chat.razor.cs @@ -20,6 +20,8 @@ public partial class Chat : ComponentBase [Inject] public Random RNG { get; set; } = null!; + + private static readonly Dictionary USER_INPUT_ATTRIBUTES = new(); private AIStudio.Settings.Provider selectedProvider; private ChatThread? chatThread; @@ -38,6 +40,9 @@ public partial class Chat : ComponentBase // Ensure that the settings are loaded: await this.SettingsManager.LoadSettings(); + // Configure the spellchecking for the user input: + this.SettingsManager.InjectSpellchecking(USER_INPUT_ATTRIBUTES); + // For now, we just create a new chat thread. // Later we want the chats to be persisted // across page loads and organize them in diff --git a/app/MindWork AI Studio/Components/Pages/Settings.razor b/app/MindWork AI Studio/Components/Pages/Settings.razor index 5335beb..66a2739 100644 --- a/app/MindWork AI Studio/Components/Pages/Settings.razor +++ b/app/MindWork AI Studio/Components/Pages/Settings.razor @@ -51,6 +51,7 @@ Options + diff --git a/app/MindWork AI Studio/Settings/Data.cs b/app/MindWork AI Studio/Settings/Data.cs index 465ebe6..1c629b8 100644 --- a/app/MindWork AI Studio/Settings/Data.cs +++ b/app/MindWork AI Studio/Settings/Data.cs @@ -31,4 +31,9 @@ public sealed class Data /// Shortcuts to send the input to the AI. /// public SendBehavior ShortcutSendBehavior { get; set; } = SendBehavior.MODIFER_ENTER_IS_SENDING; + + /// + /// Should we enable spellchecking for all input fields? + /// + public bool EnableSpellchecking { get; set; } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/ProviderDialog.razor b/app/MindWork AI Studio/Settings/ProviderDialog.razor index 0fac746..62fdad3 100644 --- a/app/MindWork AI Studio/Settings/ProviderDialog.razor +++ b/app/MindWork AI Studio/Settings/ProviderDialog.razor @@ -14,6 +14,7 @@ AdornmentIcon="@Icons.Material.Filled.Lightbulb" AdornmentColor="Color.Info" Validation="@this.ValidatingInstanceName" + UserAttributes="@INSTANCE_NAME_ATTRIBUTES" /> @* ReSharper disable once CSharpWarnings::CS8974 *@ diff --git a/app/MindWork AI Studio/Settings/ProviderDialog.razor.cs b/app/MindWork AI Studio/Settings/ProviderDialog.razor.cs index 3cfd257..113fa3e 100644 --- a/app/MindWork AI Studio/Settings/ProviderDialog.razor.cs +++ b/app/MindWork AI Studio/Settings/ProviderDialog.razor.cs @@ -56,6 +56,8 @@ public partial class ProviderDialog : ComponentBase [Inject] private IJSRuntime JsRuntime { get; set; } = null!; + private static readonly Dictionary INSTANCE_NAME_ATTRIBUTES = new(); + /// /// The list of used instance names. We need this to check for uniqueness. /// @@ -76,6 +78,9 @@ public partial class ProviderDialog : ComponentBase protected override async Task OnInitializedAsync() { + // Configure the spellchecking for the instance name input: + this.SettingsManager.InjectSpellchecking(INSTANCE_NAME_ATTRIBUTES); + // Load the used instance names: this.UsedInstanceNames = this.SettingsManager.ConfigurationData.Providers.Select(x => x.InstanceName.ToLowerInvariant()).ToList(); diff --git a/app/MindWork AI Studio/Settings/SettingsManager.cs b/app/MindWork AI Studio/Settings/SettingsManager.cs index 50765cd..4353056 100644 --- a/app/MindWork AI Studio/Settings/SettingsManager.cs +++ b/app/MindWork AI Studio/Settings/SettingsManager.cs @@ -121,4 +121,6 @@ public sealed class SettingsManager var settingsJson = JsonSerializer.Serialize(this.ConfigurationData); await File.WriteAllTextAsync(settingsPath, settingsJson); } + + public void InjectSpellchecking(Dictionary attributes) => attributes["spellcheck"] = this.ConfigurationData.EnableSpellchecking ? "true" : "false"; } \ No newline at end of file