Fix some NRE for viewer app

This commit is contained in:
Ivan Yaremenchuk 2022-08-27 16:18:49 -05:00
parent 33074796df
commit d92043f896
3 changed files with 17 additions and 12 deletions

View File

@ -6,7 +6,9 @@
<RadzenHeading Size="H1" Text="Select network" /> <RadzenHeading Size="H1" Text="Select network" />
<RadzenTabs RenderMode="TabRenderMode.Client"> <RadzenTabs RenderMode="TabRenderMode.Client">
<Tabs> <Tabs>
@foreach (var grouping in NetworksLookup) @if (NetworksLookup != null)
{
foreach (var grouping in NetworksLookup)
{ {
var networkType = grouping.Key; var networkType = grouping.Key;
var networks = grouping.ToArray(); var networks = grouping.ToArray();
@ -14,6 +16,7 @@
<CardList Data="@networks" @bind-SelectedItems="@AppState.Storage.SelectedNetworks"/> <CardList Data="@networks" @bind-SelectedItems="@AppState.Storage.SelectedNetworks"/>
</RadzenTabsItem> </RadzenTabsItem>
} }
}
</Tabs> </Tabs>
</RadzenTabs> </RadzenTabs>
</RadzenContent> </RadzenContent>

View File

@ -26,8 +26,10 @@ public partial class NetworkPage : BasicComponent
protected override void OnInitialized() protected override void OnInitialized()
{ {
PluginLoader.EnsurePluginsLoaded(); PluginLoader?.EnsurePluginsLoaded();
NetworksLookup = PluginLoader.NetworkPlugins.SelectMany(x => x.GetNetworks()).OrderBy(x => x.ChainId ?? ulong.MaxValue).ToLookup(x => x.Type, MapCardListItem); var networkPlugins = PluginLoader?.NetworkPlugins;
var networks = networkPlugins?.SelectMany(x => x?.GetNetworks()).Where(x => x != null).OrderBy(x => x.ChainId ?? ulong.MaxValue).ToArray() ?? Array.Empty<INetwork>();
NetworksLookup = networks.ToLookup(x => x.Type, MapCardListItem);
} }
private ILookup<NetworkType, CardListItem> NetworksLookup { get; set; } private ILookup<NetworkType, CardListItem> NetworksLookup { get; set; }

View File

@ -6,10 +6,10 @@ namespace NftFaucetRadzen.Shared;
public partial class NavMenu : BasicComponent public partial class NavMenu : BasicComponent
{ {
protected Guid? SelectedNetworkId => AppState.Storage.SelectedNetworks?.FirstOrDefault(); protected Guid? SelectedNetworkId => AppState?.Storage?.SelectedNetworks?.FirstOrDefault();
protected string SelectedNetworkName => PluginLoader.NetworkPlugins.SelectMany(x => x.GetNetworks()).FirstOrDefault(x => x.Id == SelectedNetworkId)?.ShortName; protected string SelectedNetworkName => PluginLoader?.NetworkPlugins?.SelectMany(x => x.GetNetworks()).FirstOrDefault(x => x.Id == SelectedNetworkId)?.ShortName;
protected Guid? SelectedProviderId => AppState.Storage.SelectedProviders?.FirstOrDefault(); protected Guid? SelectedProviderId => AppState?.Storage?.SelectedProviders?.FirstOrDefault();
protected string SelectedProviderName => PluginLoader.ProviderPlugins.SelectMany(x => x.GetProviders()).FirstOrDefault(x => x.Id == SelectedProviderId)?.ShortName; protected string SelectedProviderName => PluginLoader?.ProviderPlugins?.SelectMany(x => x.GetProviders()).FirstOrDefault(x => x.Id == SelectedProviderId)?.ShortName;
private bool CollapseNavMenu { get; set; } = true; private bool CollapseNavMenu { get; set; } = true;