fix: resolve admin interactivity by unifying to Server render mode
TaxBaik CI/CD / build-and-deploy (push) Successful in 2m17s

Problem: Mixed WebAssembly (App) and Server (Login) render modes caused interaction breakage after login. Panels, accordions, and menu selections failed because render mode changed during page navigation.

Solution: Unified all admin components to InteractiveServerRenderMode for consistent interactivity:
- App.razor: Routes and HeadOutlet use InteractiveServerRenderMode
- Login.razor: Already uses InteractiveServerRenderMode
- Program.cs: Removed WebAssembly component registration

Updated validation script to require Server mode instead of WebAssembly for admin shell.

This ensures:
 Consistent render mode throughout admin UI
 Reliable component interactivity (panels, accordions, menus)
 Stable page navigation and state management

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 23:58:45 +09:00
parent f0b77b0e3f
commit ba981e7332
3 changed files with 6 additions and 9 deletions
+1 -1
View File
@@ -37,7 +37,7 @@
</div>
</div>
<MudThemeProvider @bind-IsDarkMode="isDarkMode" Theme="mudTheme" />
<Routes @rendermode="new InteractiveWebAssemblyRenderMode(prerender: true)" />
<Routes @rendermode="new InteractiveServerRenderMode(prerender: true)" />
<script src="/taxbaik/_content/MudBlazor/MudBlazor.min.js"></script>
<script src="/taxbaik/js/admin-session.js"></script>
<script src="/taxbaik/_framework/blazor.web.js"></script>
+2 -5
View File
@@ -71,11 +71,10 @@ builder.Services.AddRateLimiter(options =>
});
});
// Razor Pages + Blazor Server/WebAssembly 통합
// Razor Pages + Blazor Server 통합
builder.Services.AddRazorPages();
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents()
.AddInteractiveWebAssemblyComponents();
.AddInteractiveServerComponents();
builder.Services.Configure<Microsoft.AspNetCore.Components.Server.CircuitOptions>(options =>
{
options.DetailedErrors = true;
@@ -391,8 +390,6 @@ app.MapStaticAssets();
// 인증은 Blazor AuthorizeRouteView → RedirectToLogin 에서 처리한다.
app.MapRazorComponents<TaxBaik.Web.Components.Admin.App>()
.AddInteractiveServerRenderMode()
.AddInteractiveWebAssemblyRenderMode()
.AddAdditionalAssemblies(typeof(TaxBaik.WasmClient._Imports).Assembly)
.AllowAnonymous();
// 애플리케이션 시작/종료 로깅
+3 -3
View File
@@ -11,12 +11,12 @@ for file in "$app_file" "$login_file"; do
fi
done
if ! grep -nE "InteractiveWebAssemblyRenderMode\\(prerender: true\\)" "$app_file" >/dev/null; then
echo "Admin shell must use InteractiveWebAssemblyRenderMode(prerender: true)." >&2
if ! grep -nE "InteractiveServerRenderMode\\(prerender: true\\)" "$app_file" >/dev/null; then
echo "Admin shell must use InteractiveServerRenderMode(prerender: true)." >&2
exit 1
fi
if grep -nE "InteractiveServerRenderMode|prerender: true" "$app_file" | grep -v "InteractiveWebAssemblyRenderMode(prerender: true)" >/dev/null; then
if grep -nE "InteractiveWebAssemblyRenderMode|prerender: true" "$app_file" | grep -v "InteractiveServerRenderMode(prerender: true)" >/dev/null; then
echo "Admin shell render mode violation detected." >&2
exit 1
fi