diff --git a/apps/server/AliasVault.Client/Main/Components/Email/RecentEmails.razor b/apps/server/AliasVault.Client/Main/Components/Email/RecentEmails.razor index 975bff571..709bc419a 100644 --- a/apps/server/AliasVault.Client/Main/Components/Email/RecentEmails.razor +++ b/apps/server/AliasVault.Client/Main/Components/Email/RecentEmails.razor @@ -2,6 +2,7 @@ @using System.Text.Json @using AliasVault.Shared.Models.Spamok @using AliasVault.Shared.Models.WebApi +@using AliasVault.Client.Main.Services @inherits ComponentBase @inject IHttpClientFactory HttpClientFactory @inject HttpClient HttpClient @@ -11,6 +12,7 @@ @inject EmailService EmailService @using AliasVault.Shared.Core @inject ILogger Logger +@inject MinDurationLoadingService LoadingService @implements IAsyncDisposable @if (EmailModalVisible) @@ -30,15 +32,53 @@ {
} - @if (IsLoading) { - +
+
+
+
+ + + + + + + + + @for (int i = 0; i < 2; i++) + { + + + + + } + +
+ Subject + + Date +
+ +
+
+
+ +
+
+
+
+
+
+
} else if (!string.IsNullOrEmpty(Error)) { @@ -106,13 +146,9 @@ private EmailApiModel Email { get; set; } = new(); private bool EmailModalVisible { get; set; } private string Error { get; set; } = string.Empty; - - private bool IsLoading { get; set; } = true; - + private bool IsLoading => LoadingService.IsLoading("recentemails"); private bool IsSpamOk { get; set; } = false; - private const int ACTIVE_TAB_REFRESH_INTERVAL = 2000; // 2 seconds - private CancellationTokenSource? _pollingCts; private DotNetObjectReference? _dotNetRef; private bool _isPageVisible = true; @@ -261,11 +297,11 @@ /// private async Task ManualRefresh() { - IsLoading = true; + LoadingService.StartLoading("recentemails", 500, StateHasChanged); StateHasChanged(); CloseEmailModal(); await LoadRecentEmailsAsync(); - IsLoading = false; + LoadingService.FinishLoading("recentemails", StateHasChanged); StateHasChanged(); } @@ -429,7 +465,6 @@ } MailboxEmails = await EmailService.DecryptEmailList(MailboxEmails); - Error = string.Empty; }