@page "/counter"
@using System.Text.Json;
@using VeloeKemonoPartyApp.Data;
@using VeloeKemonoPartyApp.Services;
@inject KemonoHttpClient HttpClient
@if (!CreatorList.Any())
{
if (Message != "")
{
}
else
{
Loading favorites list...
}
}
else
{
@foreach (var creator in FilteredCreators)
{
|
|
@creator.favorited
|
}
}
@code {
private string SearchText { get; set; }
private string Message { get; set; } = "";
private List CreatorList { get; set; }
protected override async Task OnInitializedAsync()
{
CreatorList = new List();
SearchText = "";
int i = 0;
do
{
try
{
var json = Preferences.Get("favorites", "[]");
CreatorList = JsonSerializer.Deserialize>(json);
if (CreatorList.Count == 0)
{
Message = "Empty";
}
return;
}
catch (Exception ex)
{
await Task.Delay(1000);
}
i++;
}
while (i < 5);
Message = "Getting data failed!";
}
private List FilteredCreators => CreatorList.Where(
creator => creator.name.ToLower().Contains(SearchText.ToLower())).Take(100).ToList();
private async Task OpenLink(string link)
{
await Launcher.OpenAsync(link);
}
private void AddToFavorite(Creator creator)
{
CreatorList.Add(creator);
Preferences.Set("favorites", JsonSerializer.Serialize(CreatorList));
}
private void RemoveFromFavorite(Creator creator)
{
CreatorList.Remove(creator);
Preferences.Set("favorites", JsonSerializer.Serialize(CreatorList));
}
}