Files
pos-system/apps
Ho Ngoc Hai 0fdc11de0f
All checks were successful
Build & Deploy to K8s / build-and-deploy (push) Successful in 8m39s
fix(blazor): resolve Lucide DOM conflict causing unhandled error banner on login
Root cause: Lucide JS replaces <i data-lucide> with <svg>, breaking
Blazor's virtual DOM diffing (insertBefore/removeChild on null).
23 components + 2 MutationObservers were calling lucide.createIcons()
concurrently, amplifying the race condition.

Changes:
- Remove all 23 direct lucide.createIcons() JS interop calls from
  layouts and components (AdminLayout, AuthLayout, StaffLayout, etc.)
- Replace dual MutationObserver with single requestIdleCallback poller
  that only runs when browser is idle (after Blazor finishes rendering)
- Auto-suppress Blazor error banner for known harmless Lucide DOM
  mismatch errors (insertBefore/removeChild on null)
- Change login NavigateTo from forceLoad:true to forceLoad:false
  to avoid full WASM runtime reload after successful login
- Simplify launch.json to pos-web only for Claude Code preview

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 13:04:34 +07:00
..