using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using MudBlazor.Services; using TaxBaik.Application.Services; using TaxBaik.Web.Services; using TaxBaik.Web.Services.AdminClients; var builder = WebAssemblyHostBuilder.CreateDefault(args); // MudBlazor (WASM 측 인터랙티브 컴포넌트용) builder.Services.AddMudServices(config => { config.SnackbarConfiguration.HideTransitionDuration = 400; config.SnackbarConfiguration.ShowTransitionDuration = 300; config.PopoverOptions.ThrowOnDuplicateProvider = false; }); // API Base Url 동적 구성 (호스트 기준 /taxbaik/api/) var apiBaseUrl = builder.HostEnvironment.BaseAddress.TrimEnd('/') + "/taxbaik/api/"; // HTTP Client for API (with automatic token refresh) builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddHttpClient(client => { client.BaseAddress = new Uri(apiBaseUrl); }).AddHttpMessageHandler(); // 각 Browser API Client 등록 builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler(); // Blazor 인증 (WASM 측 클라이언트) builder.Services.AddScoped(); builder.Services.AddScoped(sp => sp.GetRequiredService()); builder.Services.AddScoped(); builder.Services.AddCascadingAuthenticationState(); builder.Services.AddAuthorizationCore(); await builder.Build().RunAsync();