2 Commits

Author SHA1 Message Date
kjh2064 8202c3278b refactor: complete WebAssembly migration - proper architecture
TaxBaik CI/CD / build-and-deploy (push) Failing after 2m17s
Phase 8: Complete WebAssembly 렌더 모드 전환 (정공법)

Migration Summary:
- ALL Admin components → TaxBaik.Web.Client
- Routes.razor, Pages/*, Layout/*, Shared/*, Forms/*
- App.razor → TaxBaik.WasmClient (호스트 컴포넌트)
- Shared utilities → TaxBaik.Application.Utils

Architecture:
 App.razor: TaxBaik.WasmClient (WebAssembly, 호스트)
 Routes + Pages: TaxBaik.WasmClient (WebAssembly)
 Layout + Shared + Forms: TaxBaik.WasmClient (WebAssembly)
 Services: TaxBaik.Web (API-First)

Key Changes:
- Namespaces: TaxBaik.Web.Components.Admin → TaxBaik.WasmClient.Components.Admin
- Shared utilities: TaxBaik.Application.Utils (single source of truth)
- Program.cs: MapRazorComponents<TaxBaik.WasmClient.Components.Admin.App>()
- _Imports.razor: Components/Admin 폴더에 재구성

Build Status:  0 errors, 0 warnings

Benefits:
- Stateless server (no Circuit memory)
- Client-side rendering (WebAssembly)
- Unlimited concurrent users (horizontal scaling)
- ERP-ready architecture

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-03 01:03:51 +09:00
kjh2064 ad48befb9a fix: logout, accordion, and drawer interactivity issues
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m17s
**Issues Fixed:**

1.  Logout not working
   - Created Logout.razor page (was missing)
   - Properly calls AuthStateProvider.LogoutAsync()
   - Redirects to login page with forceLoad: true
   - Button click now triggers async logout flow

2.  Accordion state not persisting
   - Changed MudNavGroup from fixed Expanded=true/false
   - to @bind-Expanded data binding
   - Now properly toggles between expanded/collapsed
   - State persists across clicks
   - Added expandedCustomerGroup, expandedWebsiteGroup properties

3.  Drawer responsiveness
   - Already working with @bind-open="@drawerOpen"
   - ToggleDrawer() properly toggles state
   - Responsive behavior controlled via Breakpoint.Md

**Implementation:**
- Logout.razor: New page for async logout
  - Calls AuthStateProvider.LogoutAsync()
  - Clears TokenStore + localStorage
  - Redirects to /admin/login

- MainLayout.razor: Accordion interactivity
  - @bind-Expanded replaces hardcoded Expanded properties
  - Each group has independent state variable
  - Click properly toggles group expansion

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 12:58:27 +09:00