Return back selection by guid

This commit is contained in:
Ivan Yaremenchuk 2022-08-26 17:48:40 -05:00
parent af4e26eed8
commit d6eaa8970b
6 changed files with 14 additions and 11 deletions

View File

@ -5,10 +5,10 @@
<Template Context="cardListItem">
<RadzenCard class=@("box"
+ (cardListItem.IsDisabled ? " box-disabled" : string.Empty)
+ (SelectedItems != null && SelectedItems.Contains(cardListItem) ? " box-selected" : string.Empty))
+ (SelectedItems != null && SelectedItems.Contains(cardListItem.Id) ? " box-selected" : string.Empty))
Style="width: 250px;" onclick="@(async () => await ToggleSelection(cardListItem))">
<div class="d-flex flex-row align-items-center">
@if (SelectedItems != null && SelectedItems.Contains(cardListItem))
@if (SelectedItems != null && SelectedItems.Contains(cardListItem.Id))
{
<Checkmark AnchorToTopRightCorner="true"/>
}

View File

@ -6,8 +6,8 @@ namespace NftFaucetRadzen.Components;
public partial class CardList : BasicComponent
{
[Parameter] public CardListItem[] Data { get; set; }
[Parameter] public CardListItem[] SelectedItems { get; set; }
[Parameter] public EventCallback<CardListItem[]> SelectedItemsChanged { get; set; }
[Parameter] public Guid[] SelectedItems { get; set; }
[Parameter] public EventCallback<Guid[]> SelectedItemsChanged { get; set; }
[Parameter] public bool AllowMultipleSelection { get; set; }
[Parameter] public bool AllowUnselect { get; set; }
@ -18,11 +18,11 @@ public partial class CardList : BasicComponent
return;
}
var selectedItems = SelectedItems?.ToList() ?? new List<CardListItem>();
var isAlreadySelected = selectedItems.Contains(item);
var selectedItems = SelectedItems?.ToList() ?? new List<Guid>();
var isAlreadySelected = selectedItems.Contains(item.Id);
if (isAlreadySelected && AllowUnselect)
{
selectedItems.Remove(item);
selectedItems.Remove(item.Id);
}
else if (!isAlreadySelected)
{
@ -30,7 +30,7 @@ public partial class CardList : BasicComponent
{
selectedItems.Clear();
}
selectedItems.Add(item);
selectedItems.Add(item.Id);
}
SelectedItems = selectedItems.ToArray();
await SelectedItemsChanged.InvokeAsync(SelectedItems);

View File

@ -2,6 +2,7 @@ namespace NftFaucetRadzen.Models;
public class CardListItem
{
public Guid Id { get; set; }
public string ImageName { get; set; }
public string Header { get; set; }
public bool IsDisabled { get; set; }

View File

@ -2,6 +2,6 @@ namespace NftFaucetRadzen.Models;
public class StateStorage
{
public CardListItem[] SelectedNetworks { get; set; }
public CardListItem[] SelectedProviders { get; set; }
public Guid[] SelectedNetworks { get; set; }
public Guid[] SelectedProviders { get; set; }
}

View File

@ -48,6 +48,7 @@ public partial class NetworkPage : BasicComponent
private static CardListItem MapCardListItem(NetworkModel model)
=> new CardListItem
{
Id = model.Id,
ImageName = model.ImageName,
Header = model.Name,
IsDisabled = !model.IsSupported,

View File

@ -6,5 +6,6 @@ namespace NftFaucetRadzen.Shared;
public partial class NavMenu : BasicComponent
{
protected string SelectedNetworkName => AppState.Storage.SelectedNetworks?.FirstOrDefault()?.Header;
protected Guid? SelectedNetworkId => AppState.Storage.SelectedNetworks?.FirstOrDefault();
protected string SelectedNetworkName => Settings.Networks.FirstOrDefault(x => x.Id == SelectedNetworkId)?.Name;
}