@page "/" @using System.Text.Json; @using VeloeKemonoPartyApp.Data; @using VeloeKemonoPartyApp.Services; @inject KemonoHttpClient HttpClient
@if (!CreatorList.Any()) { if (Message != "") {

@Message

} else {

Loading creator list...

} } else {
@foreach (var creator in FilteredCreators) {
@creator.name

@creator.service

@if(FavoriteList.Any(item=>item.id==creator.id)){ } else { }

@creator.favorited

}
} @code{ private string SearchText { get; set; } private string Message { get; set; } = ""; private List CreatorList { get; set; } private List FavoriteList = JsonSerializer.Deserialize>(Preferences.Get("favorites", "[]")); protected override async Task OnInitializedAsync() { CreatorList = new List(); SearchText = "Rukis"; int i = 0; do { try { CreatorList = await HttpClient.GetCreatorsList(); 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) { FavoriteList.Add(creator); Preferences.Set("favorites",JsonSerializer.Serialize(FavoriteList)); } private void RemoveFromFavorite(Creator creator) { FavoriteList.Remove(creator); Preferences.Set("favorites", JsonSerializer.Serialize(FavoriteList)); } }