diff --git a/app/MindWork AI Studio/Layout/MainLayout.razor.cs b/app/MindWork AI Studio/Layout/MainLayout.razor.cs index 08e963cb..c95a69d4 100644 --- a/app/MindWork AI Studio/Layout/MainLayout.razor.cs +++ b/app/MindWork AI Studio/Layout/MainLayout.razor.cs @@ -102,7 +102,7 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, IDis // Register this component with the message bus: this.MessageBus.RegisterComponent(this); - this.MessageBus.ApplyFilters(this, [], [ Event.UPDATE_AVAILABLE, Event.CONFIGURATION_CHANGED, Event.COLOR_THEME_CHANGED, Event.SHOW_ERROR ]); + this.MessageBus.ApplyFilters(this, [], [ Event.UPDATE_AVAILABLE, Event.CONFIGURATION_CHANGED, Event.COLOR_THEME_CHANGED, Event.SHOW_ERROR, Event.SHOW_WARNING, Event.SHOW_SUCCESS, ]); // Set the snackbar for the update service: UpdateService.SetBlazorDependencies(this.Snackbar); @@ -174,11 +174,23 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, IDis this.StateHasChanged(); break; + case Event.SHOW_SUCCESS: + if (data is Success success) + success.Show(this.Snackbar); + + break; + case Event.SHOW_ERROR: if (data is Error error) error.Show(this.Snackbar); break; + + case Event.SHOW_WARNING: + if (data is Warning warning) + warning.Show(this.Snackbar); + + break; } } diff --git a/app/MindWork AI Studio/Tools/Error.cs b/app/MindWork AI Studio/Tools/Error.cs index 77f8d7c2..a9e3af81 100644 --- a/app/MindWork AI Studio/Tools/Error.cs +++ b/app/MindWork AI Studio/Tools/Error.cs @@ -15,6 +15,21 @@ public readonly record struct Error(string Icon, string Message) } } +public readonly record struct Warning(string Icon, string Message) +{ + public void Show(ISnackbar snackbar) + { + var icon = this.Icon; + snackbar.Add(this.Message, Severity.Warning, config => + { + config.Icon = icon; + config.IconSize = Size.Large; + config.HideTransitionDuration = 600; + config.VisibleStateDuration = 12_000; + }); + } +} + public readonly record struct Success(string Icon, string Message) { public void Show(ISnackbar snackbar) diff --git a/app/MindWork AI Studio/Tools/Event.cs b/app/MindWork AI Studio/Tools/Event.cs index 6e2e3a93..ab6fb318 100644 --- a/app/MindWork AI Studio/Tools/Event.cs +++ b/app/MindWork AI Studio/Tools/Event.cs @@ -10,6 +10,7 @@ public enum Event COLOR_THEME_CHANGED, PLUGINS_RELOADED, SHOW_ERROR, + SHOW_WARNING, SHOW_SUCCESS, // Update events: diff --git a/app/MindWork AI Studio/Tools/MessageBus.cs b/app/MindWork AI Studio/Tools/MessageBus.cs index 3d48a7bb..73344f2e 100644 --- a/app/MindWork AI Studio/Tools/MessageBus.cs +++ b/app/MindWork AI Studio/Tools/MessageBus.cs @@ -68,6 +68,8 @@ public sealed class MessageBus public Task SendError(Error error) => this.SendMessage(null, Event.SHOW_ERROR, error); + public Task SendWarning(Warning warning) => this.SendMessage(null, Event.SHOW_WARNING, warning); + public Task SendSuccess(Success success) => this.SendMessage(null, Event.SHOW_SUCCESS, success); public void DeferMessage(ComponentBase? sendingComponent, Event triggeredEvent, T? data = default)