@@ -89,6 +89,9 @@ public partial class AutoComplete
8989
9090 private List < string > ? _filterItems ;
9191
92+ [ NotNull ]
93+ private DropdownMenu ? _dropdown = default ;
94+
9295 /// <summary>
9396 /// <inheritdoc/>
9497 /// </summary>
@@ -114,6 +117,14 @@ protected override void OnParametersSet()
114117 Items ??= [ ] ;
115118 }
116119
120+ private bool _render = true ;
121+
122+ /// <summary>
123+ /// <inheritdoc/>
124+ /// </summary>
125+ /// <returns></returns>
126+ protected override bool ShouldRender ( ) => _render ;
127+
117128 /// <summary>
118129 /// Callback method when a candidate item is clicked
119130 /// </summary>
@@ -135,9 +146,6 @@ private async Task OnClickItem(string val)
135146 [ JSInvokable ]
136147 public override async Task TriggerFilter ( string val )
137148 {
138- // Store the current input value to prevent it from being overwritten
139- var currentInputValue = val ;
140-
141149 if ( OnCustomFilter != null )
142150 {
143151 var items = await OnCustomFilter ( val ) ;
@@ -161,14 +169,7 @@ public override async Task TriggerFilter(string val)
161169 _filterItems = [ .. _filterItems . Take ( DisplayCount . Value ) ] ;
162170 }
163171
164- // Use currentInputValue here instead of potentially stale val
165- CurrentValue = currentInputValue ;
166-
167- // Only trigger StateHasChanged if no binding is present
168- if ( ! ValueChanged . HasDelegate )
169- {
170- StateHasChanged ( ) ;
171- }
172+ await TriggerChange ( val ) ;
172173 }
173174
174175 /// <summary>
@@ -178,16 +179,14 @@ public override async Task TriggerFilter(string val)
178179 [ JSInvokable ]
179180 public override Task TriggerChange ( string val )
180181 {
181- // Only update CurrentValue if the value has actually changed
182- // This prevents overwriting the user's input
183- if ( CurrentValue != val )
182+ _render = false ;
183+ CurrentValue = val ;
184+ if ( ! ValueChanged . HasDelegate )
184185 {
185- CurrentValue = val ;
186- if ( ! ValueChanged . HasDelegate )
187- {
188- StateHasChanged ( ) ;
189- }
186+ StateHasChanged ( ) ;
190187 }
188+ _render = true ;
189+ _dropdown . Render ( Rows ) ;
191190 return Task . CompletedTask ;
192191 }
193192}
0 commit comments