From ba981e7332b2cd7a013d5539fc1ff10824cb2a60 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Thu, 2 Jul 2026 23:58:45 +0900 Subject: [PATCH] fix: resolve admin interactivity by unifying to Server render mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- TaxBaik.Web/Components/Admin/App.razor | 2 +- TaxBaik.Web/Program.cs | 7 ++----- scripts/validate_admin_render.sh | 6 +++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/TaxBaik.Web/Components/Admin/App.razor b/TaxBaik.Web/Components/Admin/App.razor index 2598acc..cd8ce64 100644 --- a/TaxBaik.Web/Components/Admin/App.razor +++ b/TaxBaik.Web/Components/Admin/App.razor @@ -37,7 +37,7 @@ - + diff --git a/TaxBaik.Web/Program.cs b/TaxBaik.Web/Program.cs index 25c6615..7330d89 100644 --- a/TaxBaik.Web/Program.cs +++ b/TaxBaik.Web/Program.cs @@ -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(options => { options.DetailedErrors = true; @@ -391,8 +390,6 @@ app.MapStaticAssets(); // 인증은 Blazor AuthorizeRouteView → RedirectToLogin 에서 처리한다. app.MapRazorComponents() .AddInteractiveServerRenderMode() - .AddInteractiveWebAssemblyRenderMode() - .AddAdditionalAssemblies(typeof(TaxBaik.WasmClient._Imports).Assembly) .AllowAnonymous(); // 애플리케이션 시작/종료 로깅 diff --git a/scripts/validate_admin_render.sh b/scripts/validate_admin_render.sh index d6b6276..dcfee91 100644 --- a/scripts/validate_admin_render.sh +++ b/scripts/validate_admin_render.sh @@ -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