From ebb8b27f85a4b47a2a7c7fb95e8d09469cacb2a2 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Fri, 16 Aug 2024 12:24:40 +0200 Subject: [PATCH] Update DbStatusIndicator.razor (#164) --- .../Main/Layout/DbStatusIndicator.razor | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/AliasVault.Client/Main/Layout/DbStatusIndicator.razor b/src/AliasVault.Client/Main/Layout/DbStatusIndicator.razor index 790ed7782..ac527c05a 100644 --- a/src/AliasVault.Client/Main/Layout/DbStatusIndicator.razor +++ b/src/AliasVault.Client/Main/Layout/DbStatusIndicator.razor @@ -14,14 +14,8 @@ } - - @code { private bool Loading { get; set; } = false; - private string Message { get; set; } = ""; private string LoadingIndicatorMessage { get; set; } = ""; private bool DatabaseLoading { get; set; } = false; @@ -29,21 +23,36 @@ protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); - DbService.GetState().StateChanged += OnDatabaseStateChanged; + + UpdateLoadingIndicatorMessage(); } private async void OnDatabaseStateChanged(object? sender, DbServiceState.DatabaseState newState) { await InvokeAsync(StateHasChanged); + + UpdateLoadingIndicatorMessage(); + if (newState.Status == DbServiceState.DatabaseStatus.SavingToServer) { // Show loading indicator for at least 0.5 seconds even if the save operation is faster. - Message = "Saving..."; await ShowLoadingIndicatorAsync(); } + } - LoadingIndicatorMessage = Message + " - " + newState.LastUpdated; + private void UpdateLoadingIndicatorMessage() + { + var currentState = DbService.GetState().CurrentState; + + var message = currentState.Status.ToString(); + if (currentState.Message != string.Empty) + { + message = currentState.Message; + } + + LoadingIndicatorMessage = "Vault status: " + message + " - " + currentState.LastUpdated; + StateHasChanged(); } private async Task ShowLoadingIndicatorAsync()