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 + + }