diff --git a/Wave/Components/Pages/ManageUsers.razor b/Wave/Components/Pages/ManageUsers.razor
index c2c0f14..ff89070 100644
--- a/Wave/Components/Pages/ManageUsers.razor
+++ b/Wave/Components/Pages/ManageUsers.razor
@@ -2,6 +2,7 @@
@using Microsoft.AspNetCore.Identity
@using Wave.Data
@using Humanizer
+@using Wave.Utilities
@rendermode InteractiveServer
@attribute [Authorize(Policy = "RoleAssignPermissions")]
@@ -59,7 +60,7 @@
@code {
[CascadingParameter(Name = "TitlePrefix")]
private string TitlePrefix { get; set; } = default!;
- public ToastComponent Toast { get; set; } = null!;
+ public IMessageDisplay Toast { get; set; } = null!;
private string ModalId { get; } = "UserDialog";
[CascadingParameter]
diff --git a/Wave/Components/ToastComponent.razor b/Wave/Components/ToastComponent.razor
index 1c931db..ae23587 100644
--- a/Wave/Components/ToastComponent.razor
+++ b/Wave/Components/ToastComponent.razor
@@ -1,4 +1,7 @@
-
+@using Wave.Utilities
+@implements IMessageDisplay
+
+
@foreach (var message in Messages) {
Messages.Remove(message)">
@if (message.Title is null) {
@@ -12,24 +15,10 @@
@code {
- private List
Messages { get; } = [];
+ private List Messages { get; } = [];
- public void ShowInfo(string message, string? title = null) {
- Messages.Add(new Message(message, "alert-info", title, DateTimeOffset.UtcNow));
+ public void ShowMessage(IMessageDisplay.Message message) {
+ Messages.Add(message);
StateHasChanged();
}
- public void ShowSuccess(string message, string? title = null) {
- Messages.Add(new Message(message, "alert-success", title, DateTimeOffset.UtcNow));
- StateHasChanged();
- }
- public void ShowWarning(string message, string? title = null) {
- Messages.Add(new Message(message, "alert-warning", title, DateTimeOffset.UtcNow));
- StateHasChanged();
- }
- public void ShowError(string message, string? title = null) {
- Messages.Add(new Message(message, "alert-error", title, DateTimeOffset.UtcNow));
- StateHasChanged();
- }
-
- private sealed record Message(string Body, string Type, string? Title, DateTimeOffset Created);
}
diff --git a/Wave/Utilities/IMessageDisplay.cs b/Wave/Utilities/IMessageDisplay.cs
new file mode 100644
index 0000000..e6a997e
--- /dev/null
+++ b/Wave/Utilities/IMessageDisplay.cs
@@ -0,0 +1,16 @@
+namespace Wave.Utilities;
+
+public interface IMessageDisplay {
+ public void ShowMessage(Message message);
+
+ public void ShowInfo(string message, string? title = null)
+ => ShowMessage(new Message(message, "alert-info", title, DateTimeOffset.UtcNow));
+ public void ShowSuccess(string message, string? title = null)
+ => ShowMessage(new Message(message, "alert-success", title, DateTimeOffset.UtcNow));
+ public void ShowWarning(string message, string? title = null)
+ => ShowMessage(new Message(message, "alert-warning", title, DateTimeOffset.UtcNow));
+ public void ShowError(string message, string? title = null)
+ => ShowMessage(new Message(message, "alert-error", title, DateTimeOffset.UtcNow));
+
+ public sealed record Message(string Body, string Type, string? Title, DateTimeOffset Created);
+}
\ No newline at end of file