using Microsoft.JSInterop; using Portfolio.Domain.Features.Pokemon; namespace Portfolio.WebUI.Server.Components.Component { public partial class PokemonTable { private List pokemons = new List(); private Dictionary isShiny = new Dictionary(); protected override async Task OnInitializedAsync() { var result = await PokemonService.GetAllPokemonAsync(); if (result is not null) { pokemons = result; pokemons.Sort((x, y) => x.PokemonId.CompareTo(y.PokemonId)); // Initialize dictionary with false (show base image first) foreach (var pokemon in pokemons) { isShiny[pokemon.Id] = false; } } } private void ToggleImage(int Id) { if (isShiny.ContainsKey(Id)) { isShiny[Id] = !isShiny[Id]; } } private async Task ConfirmDelete(int Id) { bool confirm = await JS.InvokeAsync("confirm", "Are you sure you want to delete this Pokémon?"); if (confirm) { await DeletePokemon(Id); } } private async Task DeletePokemon(int Id) { await PokemonService.DeletePokemonAsync(Id); pokemons.RemoveAll(p => p.Id == Id); // Remove from the list locally StateHasChanged(); // Refresh the UI } } }