using MesaFabApproval.Client; using MesaFabApproval.Client.Utilities; using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using MudBlazor.Services; using MesaFabApproval.Client.Services; using Microsoft.AspNetCore.Components.Authorization; using System.Net.Http.Headers; using MudBlazor; using Blazored.SessionStorage; WebAssemblyHostBuilder builder = WebAssemblyHostBuilder.CreateDefault(args); string _apiBaseUrl = builder.Configuration["FabApprovalApiBaseUrl"] ?? throw new NullReferenceException("FabApprovalApiBaseUrl not found in config"); builder.Services.AddBlazoredSessionStorage(); builder.Services.AddTransient(); builder.Services .AddHttpClient("API", client => { client.BaseAddress = new Uri(_apiBaseUrl); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("*/*")); }) .AddHttpMessageHandler(); builder.Services.AddMemoryCache(); builder.Services.AddMudServices(config => { config.SnackbarConfiguration.PositionClass = Defaults.Classes.Position.BottomCenter; config.SnackbarConfiguration.PreventDuplicates = true; config.SnackbarConfiguration.MaxDisplayedSnackbars = 5; config.SnackbarConfiguration.SnackbarVariant = Variant.Filled; config.SnackbarConfiguration.ShowCloseIcon = true; config.SnackbarConfiguration.VisibleStateDuration = 5000; config.SnackbarConfiguration.HideTransitionDuration = 500; config.SnackbarConfiguration.ShowTransitionDuration = 500; }); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(sp => sp.GetRequiredService()); builder.Services.AddAuthorizationCore(); builder.RootComponents.Add("#app"); builder.RootComponents.Add("head::after"); await builder.Build().RunAsync();