Add saving new token to AppState

This commit is contained in:
Ivan Yaremenchuk 2022-08-28 09:19:21 -05:00
parent b529f55ea9
commit 51a28e55cd
4 changed files with 38 additions and 10 deletions

View File

@ -6,10 +6,10 @@ namespace NftFaucetRadzen.Models;
public class StateStorage
{
public IReadOnlyCollection<INetwork> Networks { get; set; }
public IReadOnlyCollection<IProvider> Providers { get; set; }
public IReadOnlyCollection<IContract> Contracts { get; set; }
public IReadOnlyCollection<IToken> Tokens { get; set; }
public ICollection<INetwork> Networks { get; set; }
public ICollection<IProvider> Providers { get; set; }
public ICollection<IContract> Contracts { get; set; }
public ICollection<IToken> Tokens { get; set; }
public Guid[] SelectedNetworks { get; set; }
public Guid[] SelectedProviders { get; set; }

View File

@ -1,8 +1,10 @@
using System.Globalization;
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using Newtonsoft.Json;
using NftFaucetRadzen.Components;
using NftFaucetRadzen.Components.CardList;
using NftFaucetRadzen.Models;
using NftFaucetRadzen.Plugins;
using Radzen;
@ -28,16 +30,14 @@ public partial class TokensPage : BasicComponent
protected override void OnInitialized()
{
// ToDo: Add loading from IndexedDB
Tokens = Array.Empty<IToken>();
RefreshData();
}
private IToken[] Tokens { get; set; }
private CardListItem[] Data { get; set; }
private void RefreshData()
{
Data = Tokens.Select(MapCardListItem).ToArray();
Data = AppState?.Storage?.Tokens?.Select(MapCardListItem).ToArray() ?? Array.Empty<CardListItem>();
}
private CardListItem MapCardListItem(IToken token)
@ -71,8 +71,26 @@ public partial class TokensPage : BasicComponent
private async Task OpenCreateTokenDialog()
{
await DialogService.OpenAsync<CreateTokenPage>("Create new token",
var newFileModel = (NewFileModel) await DialogService.OpenAsync<CreateTokenPage>("Create new token",
new Dictionary<string, object>(),
new DialogOptions() { Width = "700px", Height = "570px", Resizable = true, Draggable = true });
var token = new Token
{
Id = Guid.NewGuid(),
Name = newFileModel.Name,
Description = newFileModel.Description,
CreatedAt = DateTime.Now,
Image = new TokenMedia
{
FileName = newFileModel.FileName,
FileSize = newFileModel.FileSize!.Value,
FileData = newFileModel.FileData,
},
};
AppState.Storage.Tokens ??= new List<IToken>();
AppState.Storage.Tokens.Add(token);
RefreshData();
StateHasChangedSafe();
}
}

View File

@ -2,5 +2,7 @@ namespace NftFaucetRadzen.Plugins;
public interface ITokenMedia
{
}
public string FileData { get; }
public string FileName { get; }
public long FileSize { get; }
}

View File

@ -0,0 +1,8 @@
namespace NftFaucetRadzen.Plugins;
public class TokenMedia : ITokenMedia
{
public string FileData { get; set; }
public string FileName { get; set; }
public long FileSize { get; set; }
}