Skip to content

Commit 191a1fc

Browse files
author
Damien LEROY
committed
Fixing issues with topic selection autocomplete
1 parent ce8bc9b commit 191a1fc

File tree

4 files changed

+27
-6
lines changed

4 files changed

+27
-6
lines changed

Pages/Tester.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
<label for="topic" class="col-2 col-form-label text-right">Topic</label>
3838
<div class="col-10">
3939
<div class="input-group autocomplete">
40-
<input type="text" class="form-control" id="topic" placeholder="topic" @bind="_setting.Topic" @oninput="OnTypeTopic">
40+
<input type="text" class="form-control" id="topic" placeholder="topic" @bind="_setting.Topic" @oninput="OnTypeTopic" @onfocusout="OnLostTopicFocus" @onfocusin="OnGetTopicFocus">
4141
@if (_filteredTopics is not null)
4242
{
4343
<ul class="options">

Pages/Tester.razor.cs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,14 +180,33 @@ private void OnSelectSetting(ChangeEventArgs e)
180180

181181
async Task OnTypeTopic(ChangeEventArgs e)
182182
{
183-
var filter = e.Value?.ToString();
183+
if (e != null)
184+
{
185+
_setting.Topic = e.Value.ToString();
186+
}
187+
188+
var filter = _setting.Topic;
189+
await JsRuntime.InvokeVoidAsync("console.log", filter);
184190
await LoadTopics(null);
185-
_filteredTopics = _topics.Where(t => t.Contains(filter ?? string.Empty)).ToList();
191+
_filteredTopics = _topics?.Where(t => t.Contains(filter ?? string.Empty)).ToList();
192+
193+
if (_filteredTopics?.Count == 1 && filter.Equals(_filteredTopics.First(), StringComparison.InvariantCultureIgnoreCase))
194+
_filteredTopics = null;
195+
}
196+
197+
async Task OnLostTopicFocus(FocusEventArgs e)
198+
{
199+
await Task.Delay(200).ContinueWith(t => _filteredTopics = null);
200+
}
201+
202+
async Task OnGetTopicFocus(FocusEventArgs e)
203+
{
204+
await OnTypeTopic(null);
186205
}
187206

188207
private async Task LoadTopics(MouseEventArgs e)
189208
{
190-
if (_topics != null || _isTopicLoading)
209+
if (_topics != null || _isTopicLoading || string.IsNullOrWhiteSpace(_setting.Brokers))
191210
return;
192211

193212
_isTopicLoading = true;

Service/KafkaTesterService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ public async Task<List<string>> GetTopicsAsync(string servers)
8585
}
8686
catch (Exception e)
8787
{
88-
Console.WriteLine(e);
89-
return new List<string>();
88+
_logger.LogError($"Error occured: {e.Message}");
89+
return null;
9090
}
9191
}
9292

wwwroot/css/autocomplete/autocomplete.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
border: 1px solid #ced4da;
1414
border-radius: 0.5rem;
1515
box-shadow: 0 30px 25px 8px rgba(0, 0, 0, 0.1);
16+
max-height: 500px;
17+
overflow: auto;
1618
}
1719

1820
.autocomplete .option {

0 commit comments

Comments
 (0)