refactor: fully integrate Browser Client into main Web server
TaxBaik CI/CD / build-and-deploy (push) Failing after 48s

BREAKING CHANGE: Removed TaxBaik.Web.Client project (separate WASM app)

Changes:
- Migrated all Blazor components to TaxBaik.Web/Components/Admin
- Migrated all Browser Client services to Components/Admin/Services
- Updated Program.cs to use integrated components (same assembly)
- Removed AddAdditionalAssemblies (no longer needed)
- Updated _Imports.razor with correct namespaces

Architecture:
 API-First: REST endpoints in TaxBaik.Web (ASP.NET Core)
 Client-Side: Blazor WASM components in TaxBaik.Web/Components
 Unified: Both API and UI served from single web server
 No separation: No separate client project

Result:
- Single deploy unit (TaxBaik.Web)
- API served only from web server
- Blazor renders client-side (prerender: false for protected pages)
- Monolithic web app architecture

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-07-03 15:39:19 +09:00
parent 69eeaca937
commit 2797473c56
89 changed files with 10 additions and 119 deletions
@@ -1,56 +0,0 @@
@using TaxBaik.Domain.Entities
@using TaxBaik.Web.Services.AdminClients
@inject ICommonCodeBrowserClient CommonCodeClient
<MudSelect T="string"
Value="Value"
ValueChanged="ValueChanged"
Label="@Label"
Variant="@Variant"
FullWidth="@FullWidth"
Class="@Class"
Required="@Required"
Clearable="@Clearable"
Disabled="@Disabled">
@if (!string.IsNullOrWhiteSpace(Placeholder))
{
<MudSelectItem Value="@string.Empty">@Placeholder</MudSelectItem>
}
@foreach (var item in items)
{
<MudSelectItem Value="@item.CodeValue">@item.CodeName</MudSelectItem>
}
</MudSelect>
@code {
[Parameter] public string? Value { get; set; }
[Parameter] public EventCallback<string?> ValueChanged { get; set; }
[Parameter] public string Group { get; set; } = string.Empty;
[Parameter] public string Label { get; set; } = string.Empty;
[Parameter] public Variant Variant { get; set; } = Variant.Outlined;
[Parameter] public bool FullWidth { get; set; } = true;
[Parameter] public string? Class { get; set; }
[Parameter] public bool Required { get; set; }
[Parameter] public bool Clearable { get; set; }
[Parameter] public bool Disabled { get; set; }
[Parameter] public string? Placeholder { get; set; }
private List<CommonCode> items = [];
protected override async Task OnParametersSetAsync()
{
var normalizedGroup = Group?.Trim() ?? string.Empty;
if (!string.Equals(normalizedGroup, _loadedGroup, StringComparison.OrdinalIgnoreCase))
{
_loadedGroup = normalizedGroup;
items = string.IsNullOrWhiteSpace(normalizedGroup)
? []
: (await CommonCodeClient.GetByGroupAsync(normalizedGroup))
.OrderBy(x => x.SortOrder)
.ThenBy(x => x.CodeName)
.ToList();
}
}
private string? _loadedGroup;
}