diff --git a/UI_IMPROVEMENT_PLAN.md b/UI_IMPROVEMENT_PLAN.md index e4b7394..8826baa 100644 --- a/UI_IMPROVEMENT_PLAN.md +++ b/UI_IMPROVEMENT_PLAN.md @@ -177,7 +177,7 @@ Split into two PRs on delivery because the header path touches ~15 pages. ### Phase 5 — Home page split - **U-10** Extract `` and `` components. Home stacks them. -- **U-11** Replace the Home `` + `` with `FluentAutocomplete` so the autocomplete UI is uniform with the split dialog. +- **U-11** ~~Replace the Home `` + `` with `FluentAutocomplete` so the autocomplete UI is uniform with the split dialog.~~ **Attempted with `FluentCombobox` in `ceef2c1`, reverted in `2522274` because the UI became unresponsive.** Root cause: rendered per row inside a `@foreach`, three parameters were re-created on every render — `sortedBookingTexts` as a computed `.OrderBy(...)` getter (fresh `IEnumerable` each access), `OptionText="@(t => t)"` and `OptionValue="@(t => t)"` inline lambdas (fresh delegate each render), plus `Autocomplete=Both` which does JS interop per keystroke. Combined, N pending bookings flooded the SignalR circuit with render + interop messages until the whole UI froze. Retry needs: materialise `sortedBookingTexts` to a real field populated in `LoadDataAsync`, extract the identity lambdas to `static readonly Func` fields, and test in the browser with a realistic pending-bookings count before merging. ### Phase 6 — Report componentization