From cfad069d41e23daacd88fe0755c00b4465d18245 Mon Sep 17 00:00:00 2001 From: Mia Winter Date: Wed, 14 Feb 2024 20:59:42 +0100 Subject: [PATCH] Reworked message system, implemented in ManageUsers and EmailSignup --- Wave/Components/AlertComponent.razor | 45 +++++++++++++++++++++++++ Wave/Components/Layout/MainLayout.razor | 9 +++++ Wave/Components/Pages/EmailSignup.razor | 21 ++++-------- Wave/Components/Pages/ManageUsers.razor | 4 +-- Wave/Components/ToastComponent.razor | 23 +++++++++---- Wave/Program.cs | 1 + Wave/Services/MessageService.cs | 19 +++++++++++ Wave/Utilities/IMessageDisplay.cs | 17 ++++++---- 8 files changed, 110 insertions(+), 29 deletions(-) create mode 100644 Wave/Components/AlertComponent.razor create mode 100644 Wave/Services/MessageService.cs diff --git a/Wave/Components/AlertComponent.razor b/Wave/Components/AlertComponent.razor new file mode 100644 index 0000000..fcaf06c --- /dev/null +++ b/Wave/Components/AlertComponent.razor @@ -0,0 +1,45 @@ +@using Wave.Utilities +@implements IDisposable +@inject IMessageDisplay Messages + +@if (Message is {} message) { + +} + +@code { + [Parameter] + public bool CanDelete { get; set; } + + private IMessageDisplay.Message? Message { get; set; } + + protected override void OnInitialized() { + Messages.OnMessage += OnMessage; + } + + private bool OnMessage(IMessageDisplay.Message message) { + Message = message; + StateHasChanged(); + return true; + } + + public void Dispose() { + Messages.OnMessage -= OnMessage; + } +} diff --git a/Wave/Components/Layout/MainLayout.razor b/Wave/Components/Layout/MainLayout.razor index b3260d8..9eabb2b 100644 --- a/Wave/Components/Layout/MainLayout.razor +++ b/Wave/Components/Layout/MainLayout.razor @@ -28,7 +28,14 @@
+ @Body + @if (HttpContext is null || HttpContext?.GetEndpoint()? + .Metadata.GetMetadata()? + .Mode is not null) { + // for some reason that's how you test for interactive render modes + + }