Skip to content

Commit

Permalink
refactor: 更新内部逻辑
Browse files Browse the repository at this point in the history
  • Loading branch information
ArgoZhang committed Jan 24, 2025
1 parent 7647103 commit 488695e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<span class="form-select-append"><i class="@Icon"></i></span>
<span class="form-select-append ac-loading"><i class="@LoadingIcon"></i></span>
<ul class="dropdown-menu">
@foreach (var item in Rows)
@foreach (var item in _filterItems)

Check warning on line 20 in src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor

View workflow job for this annotation

GitHub Actions / run test

Dereference of a possibly null reference.
{
<li @key="item" class="dropdown-item" @onclick="() => OnClickItem(item)">
@if (ItemTemplate == null)
Expand All @@ -30,7 +30,7 @@
}
</li>
}
@if (ShowNoDataTip && Rows.Count == 0)
@if (ShowNoDataTip && _filterItems.Count == 0)
{
<li class="dropdown-item">@NoDataTip</li>
}
Expand Down
17 changes: 7 additions & 10 deletions src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,7 @@ public partial class AutoComplete
/// <summary>
/// 获得/设置 UI 呈现数据集合
/// </summary>
[NotNull]
private List<string>? FilterItems { get; set; }
private List<string>? _filterItems;

/// <summary>
/// <inheritdoc/>
Expand All @@ -110,12 +109,12 @@ protected override void OnParametersSet()
{
base.OnParametersSet();

Icon ??= IconTheme.GetIconByKey(ComponentIcons.AutoCompleteIcon);
LoadingIcon ??= IconTheme.GetIconByKey(ComponentIcons.LoadingIcon);
NoDataTip ??= Localizer[nameof(NoDataTip)];
PlaceHolder ??= Localizer[nameof(PlaceHolder)];
Icon ??= IconTheme.GetIconByKey(ComponentIcons.AutoCompleteIcon);

Items ??= [];
_filterItems ??= Items?.ToList() ?? [];
}

/// <summary>
Expand All @@ -130,8 +129,6 @@ private async Task OnClickItem(string val)
}
}

private List<string> Rows => FilterItems ?? Items.ToList();

/// <summary>
/// TriggerFilter 方法
/// </summary>
Expand All @@ -142,24 +139,24 @@ public async Task TriggerFilter(string val)
if (OnCustomFilter != null)
{
var items = await OnCustomFilter(val);
FilterItems = items.ToList();
_filterItems = items.ToList();
}
else if (string.IsNullOrEmpty(val))
{
FilterItems = Items.ToList();
_filterItems = Items.ToList();
}
else
{
var comparison = IgnoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;
var items = IsLikeMatch
? Items.Where(s => s.Contains(val, comparison))
: Items.Where(s => s.StartsWith(val, comparison));
FilterItems = items.ToList();
_filterItems = items.ToList();
}

if (DisplayCount != null)
{
FilterItems = FilterItems.Take(DisplayCount.Value).ToList();
_filterItems = _filterItems.Take(DisplayCount.Value).ToList();
}
StateHasChanged();
}
Expand Down

0 comments on commit 488695e

Please sign in to comment.