Refactor. Add data layer

This commit is contained in:
rossmill76 committed 2026-03-06 11:05:01 +00:00
1 parent 3b7e4e6ec5
commit b6b794f0b4
82 files changed
+2930 -2811

No files matched your search

+2 -40
View File
@@ -3,49 +3,11 @@
@rendermode InteractiveServer
<div class="toast-stack">
@foreach (var toast in toasts)
@foreach (var toast in _toasts)
{
<div class="toast-item @(toast.Dismissing ? "toast-dismiss" : "")">
<span class="toast-icon">⚠</span>
<span class="toast-message">@toast.Message</span>
</div>
}
</div>
@code {
private readonly List<ToastItem> toasts = [];
protected override void OnInitialized()
{
ToastService.OnShow += ShowToast;
}
private async void ShowToast(string message)
{
var toast = new ToastItem { Message = message };
toasts.Add(toast);
await InvokeAsync(StateHasChanged);
_ = DismissAfterDelay(toast);
}
private async Task DismissAfterDelay(ToastItem toast)
{
await Task.Delay(3500);
toast.Dismissing = true;
await InvokeAsync(StateHasChanged);
await Task.Delay(300);
toasts.Remove(toast);
await InvokeAsync(StateHasChanged);
}
public void Dispose()
{
ToastService.OnShow -= ShowToast;
}
private sealed class ToastItem
{
public string Message { get; set; } = "";
public bool Dismissing { get; set; }
}
}
</div>