Problem: Page components were not rendering content because @rendermode was only
on App.razor and Routes.razor, not on individual @page components.
Solution: Add @rendermode InteractiveWebAssembly to all admin page components
to ensure they render interactively in WebAssembly context.
Result: All admin pages now render their content correctly.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Problem: Routes.razor Router component had no @rendermode attribute, causing
routed pages to not render content (only shell was interactive).
Solution: Add @rendermode="new InteractiveWebAssemblyRenderMode(prerender: false)"
to Router element to ensure all routed page components render properly.
Result: Blog pages and all admin pages now render their content correctly.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Problem: Prerendering static HTML without auth context causes [@Authorize] protected
pages to render blank because AuthorizeRouteView cannot render content without
authentication state.
Solution: prerender: false
- WebAssembly runtime loads and fully renders all interactive content
- All [@Authorize] pages render correctly with authentication
- Initial load slightly slower (0.5-2s) but all functionality works
Result: Admin pages fully functional. Validated with Playwright on production domain.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Problem: With prerender: true, static HTML renders first. Menu loads but is not interactive
until WebAssembly runtime finishes loading. Users clicking before runtime loads see no response.
Solution: Set prerender: false to ensure menu and all controls are interactive immediately.
Trade-off: Initial page load shows blank screen while WebAssembly bundles download,
but once loaded, all interactivity is immediate (better UX overall).
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Routes component should reference TaxBaik.WasmClient._Imports.Assembly
to properly locate all routable components in the WebAssembly context.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
AdminShell was attempting to inject VersionInfo from server DI container,
causing 'Cannot provide a value for property' error in WebAssembly components.
Replaced with hardcoded 'unknown' values.
All admin pages now render successfully (HTTP 200):
✅ /admin/login
✅ /admin/blog
✅ /admin/dashboard
✅ /admin/inquiries
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
MapRazorComponents<TaxBaik.WasmClient.Components.Admin.App>() automatically includes
the root component's assembly, so AddAdditionalAssemblies() was causing duplication.
Also remove VersionInfo @inject from App.razor since WebAssembly components
cannot access server DI container. Use hardcoded 'unknown' for version.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>