Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace Bit.BlazorUI;
private bool _isResponsiveMode;
private bool _inputSearchHasFocus;
private List<TItem> _selectedItems = [];
private List<TItem> _lastShowItems = [];
private List<TItem> _lastShownItems = [];
private Virtualize<TItem>? _virtualizeElement;
private string _scrollContainerId = string.Empty;
private string _dropdownTextContainerId = string.Empty;
Expand Down Expand Up @@ -953,7 +953,7 @@ private async Task AddOrRemoveSelectedItem(TItem? item, bool addDynamic = false)

private void UpdateSelectedItemsFromValues()
{
var items = ItemsProvider is not null ? _lastShowItems : Items;
var items = ItemsProvider is null ? Items : _lastShownItems;
if (items is null) return;

if (ItemsProvider is null)
Expand All @@ -974,6 +974,11 @@ private void UpdateSelectedItemsFromValues()

_selectedItems.Add(item);
}

if (ItemsProvider is not null)
{
_selectedItems.RemoveAll(si => Values.Contains(GetValue(si)) is false);
}
}
else
{
Expand Down Expand Up @@ -1089,15 +1094,15 @@ private async ValueTask FocusOnComboBoxInput()

private ICollection<TItem> GetSearchedItems()
{
if (Items is null) return [];
var items = ItemsProvider is null ? Items : _lastShownItems;
if (items is null) return [];

return _searchText.HasNoValue()
? Items
? items
: SearchFunction is not null
? SearchFunction.Invoke(Items, _searchText!)
: Items.Where(i => GetItemType(i) == BitDropdownItemType.Normal
&& (GetText(i)?.Contains(_searchText!, StringComparison.OrdinalIgnoreCase) ?? false))
.ToArray();
? SearchFunction.Invoke(items, _searchText!)
: [.. items.Where(i => GetItemType(i) == BitDropdownItemType.Normal &&
GetText(i)?.Contains(_searchText!, StringComparison.OrdinalIgnoreCase) is true)];
}

private string GetSearchBoxClasses()
Expand Down Expand Up @@ -1208,7 +1213,7 @@ private async ValueTask<ItemsProviderResult<TItem>> InternalItemsProvider(ItemsP

if (request.CancellationToken.IsCancellationRequested) return default;

_lastShowItems = [.. providerResult.Items];
_lastShownItems = [.. providerResult.Items];

UpdateSelectedItemsFromValues();
await InvokeAsync(StateHasChanged);
Expand Down Expand Up @@ -1331,7 +1336,7 @@ private async Task AddDynamicItem()
if (hasItem) return;
}

var searchItems = ItemsProvider is not null ? _lastShowItems : Items;
var searchItems = ItemsProvider is not null ? _lastShownItems : Items;
if (searchItems is not null && searchItems.Count > 0)
{
var item = FindItemFunction is not null ?
Expand Down Expand Up @@ -1442,9 +1447,10 @@ private void SetIsSelected(TItem item, bool value)

private void SetIsSelectedForSelectedItems()
{
if (Items is null) return;
var items = ItemsProvider is null ? Items : _lastShownItems;
if (items is null) return;

foreach (var it in Items)
foreach (var it in items)
{
SetIsSelected(it, false);
}
Expand Down
Loading