diff --git a/src/AliasVault.WebApp/Auth/Pages/Login.razor b/src/AliasVault.WebApp/Auth/Pages/Login.razor index 58a36038e..31c1f725e 100644 --- a/src/AliasVault.WebApp/Auth/Pages/Login.razor +++ b/src/AliasVault.WebApp/Auth/Pages/Login.razor @@ -1,14 +1,15 @@ @page "/user/login" @attribute [AllowAnonymous] @layout Auth.Layout.MainLayout -@using System.Text.Json -@using AliasVault.Shared.Models -@using AliasVault.WebApp.Auth.Components -@using AliasVault.WebApp.Auth.Services + @inject HttpClient Http @inject AuthenticationStateProvider AuthStateProvider @inject NavigationManager NavigationManager @inject AuthService AuthService +@using System.Text.Json +@using AliasVault.Shared.Models +@using AliasVault.WebApp.Auth.Components +@using AliasVault.WebApp.Auth.Services

Sign in to AliasVault diff --git a/src/AliasVault.WebApp/Auth/Pages/Register.razor b/src/AliasVault.WebApp/Auth/Pages/Register.razor index 024b32523..083bca2fe 100644 --- a/src/AliasVault.WebApp/Auth/Pages/Register.razor +++ b/src/AliasVault.WebApp/Auth/Pages/Register.razor @@ -1,16 +1,15 @@ @page "/user/register" @attribute [AllowAnonymous] @layout Auth.Layout.MainLayout -@using System.Text.Json -@using AliasVault.Shared.Models -@using AliasVault.WebApp.Auth.Components -@using AliasVault.WebApp.Auth.Services @inject HttpClient Http @inject AuthenticationStateProvider AuthStateProvider @inject ILocalStorageService LocalStorage @inject NavigationManager NavigationManager @inject AuthService AuthService - +@using System.Text.Json +@using AliasVault.Shared.Models +@using AliasVault.WebApp.Auth.Components +@using AliasVault.WebApp.Auth.Services

Create a Free Account diff --git a/src/AliasVault.WebApp/Components/Email/RecentEmails.razor b/src/AliasVault.WebApp/Components/Email/RecentEmails.razor index b39067ed6..2440e1cb1 100644 --- a/src/AliasVault.WebApp/Components/Email/RecentEmails.razor +++ b/src/AliasVault.WebApp/Components/Email/RecentEmails.razor @@ -58,10 +58,8 @@ else @code { [Parameter] public string EmailPrefix { get; set; } = string.Empty; - [Parameter] public List MailboxEmails { get; set; } = new List(); - public bool IsLoading { get; set; } = true; protected override async Task OnAfterRenderAsync(bool firstRender) @@ -90,5 +88,4 @@ else IsLoading = false; StateHasChanged(); } - } diff --git a/src/AliasVault.WebApp/Pages/Aliases/Delete.razor b/src/AliasVault.WebApp/Pages/Aliases/Delete.razor index de8bcf171..a2e60d2eb 100644 --- a/src/AliasVault.WebApp/Pages/Aliases/Delete.razor +++ b/src/AliasVault.WebApp/Pages/Aliases/Delete.razor @@ -19,7 +19,7 @@ @if (IsLoading) { - + } else { diff --git a/src/AliasVault.WebApp/Pages/Aliases/View.razor b/src/AliasVault.WebApp/Pages/Aliases/View.razor index de11a830a..2164fa633 100644 --- a/src/AliasVault.WebApp/Pages/Aliases/View.razor +++ b/src/AliasVault.WebApp/Pages/Aliases/View.razor @@ -64,7 +64,7 @@ else
- +
diff --git a/src/AliasVault.WebApp/Pages/Home.razor b/src/AliasVault.WebApp/Pages/Home.razor index fb59f522d..2b86a9826 100644 --- a/src/AliasVault.WebApp/Pages/Home.razor +++ b/src/AliasVault.WebApp/Pages/Home.razor @@ -51,8 +51,16 @@ StateHasChanged(); // Load the aliases from the webapi via AliasService. - Aliases = await AliasService.GetListAsync(); + var aliasListEntries = await AliasService.GetListAsync(); + if (aliasListEntries is null) + { + // Error loading aliases. + IsLoading = false; + StateHasChanged(); + return; + } + Aliases = aliasListEntries; IsLoading = false; StateHasChanged(); } diff --git a/src/AliasVault.WebApp/Program.cs b/src/AliasVault.WebApp/Program.cs index aa0ff9208..698dc46d4 100644 --- a/src/AliasVault.WebApp/Program.cs +++ b/src/AliasVault.WebApp/Program.cs @@ -1,37 +1,42 @@ -using Microsoft.AspNetCore.Components.Web; -using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +//----------------------------------------------------------------------- +// +// Copyright (c) lanedirt. All rights reserved. +// Licensed under the MIT license. See LICENSE.md file in the project root for full license information. +// +//----------------------------------------------------------------------- + +using AliasVault.WebApp; +using AliasVault.WebApp.Auth.Providers; +using AliasVault.WebApp.Auth.Services; +using AliasVault.WebApp.Services; using Blazored.LocalStorage; using Microsoft.AspNetCore.Components.Authorization; -using AliasVault.WebApp; -using AliasVault.WebApp.Services; -using AliasVault.WebApp.Auth.Services; -using AliasVault.WebApp.Auth.Providers; +using Microsoft.AspNetCore.Components.Web; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.Configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); - builder.RootComponents.Add("#app"); builder.RootComponents.Add("head::after"); - -builder.Services.AddTransient(); -builder.Services.AddScoped(); -builder.Services.AddHttpClient("AliasVault.Api") - .AddHttpMessageHandler(); - +builder.Services.AddHttpClient("AliasVault.Api").AddHttpMessageHandler(); builder.Services.AddScoped(sp => { var httpClientFactory = sp.GetRequiredService(); var httpClient = httpClientFactory.CreateClient("AliasVault.Api"); - httpClient.BaseAddress = new Uri(builder.Configuration["ApiUrl"]); + if (builder.Configuration["ApiUrl"] is null) + { + throw new InvalidOperationException("The 'ApiUrl' configuration value is required."); + } + + httpClient.BaseAddress = new Uri(builder.Configuration["ApiUrl"]!); return httpClient; }); - +builder.Services.AddTransient(); +builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddSingleton(); - builder.Services.AddAuthorizationCore(); builder.Services.AddBlazoredLocalStorage(); - await builder.Build().RunAsync();